📄 birats_demo_21dec05.m.svn-base
字号:
%
% birats example from WinBUGS
%
dataStruct = struct( ...
'x', [8.0, 15.0, 22.0, 29.0, 36.0], ...
'N', 30, ...
'T', 5, ...
'Omega', [200, 0; 0, 0.2], ...
'mean', [0,0], ...
'prec', [1.0e-6, 0; 0, 1.0e-6], ...
'Y', [ 151, 199, 246, 283, 320; ...
145, 199, 249, 293, 354; ...
147, 214, 263, 312, 328; ...
155, 200, 237, 272, 297; ...
135, 188, 230, 280, 323; ...
159, 210, 252, 298, 331; ...
141, 189, 231, 275, 305; ...
159, 201, 248, 297, 338; ...
177, 236, 285, 350, 376; ...
134, 182, 220, 260, 296; ...
160, 208, 261, 313, 352; ...
143, 188, 220, 273, 314; ...
154, 200, 244, 289, 325; ...
171, 221, 270, 326, 358; ...
163, 216, 242, 281, 312; ...
160, 207, 248, 288, 324; ...
142, 187, 234, 280, 316; ...
156, 203, 243, 283, 317; ...
157, 212, 259, 307, 336; ...
152, 203, 246, 286, 321; ...
154, 205, 253, 298, 334; ...
139, 190, 225, 267, 302; ...
146, 191, 229, 272, 302; ...
157, 211, 250, 285, 323; ...
132, 185, 237, 286, 331; ...
160, 207, 257, 303, 345; ...
169, 216, 261, 295, 333; ...
157, 205, 248, 289, 316; ...
137, 180, 219, 258, 291; ...
153, 200, 244, 286, 324 ] );
init = struct( ...
'mu_beta', [0,0], ...
'tauC', 1, ...
'beta', ...
[100,6;100,6;100,6;100,6;100,6; ...
100,6;100,6;100,6;100,6;100,6; ...
100,6;100,6;100,6;100,6;100,6; ...
100,6;100,6;100,6;100,6;100,6; ...
100,6;100,6;100,6;100,6;100,6; ...
100,6;100,6;100,6;100,6;100,6], ...
'R', [1,0;0,1]);
clear initStructs
initStructs(1) = init;
initStructs(2) = init;
initStructs(3) = init;
[samples, stats, structArray] = matbugs(dataStruct, ...
fullfile(pwd, 'birats_model.txt'), ...
'init', initStructs, ...
'nChains', 3, ...
'view', 1, 'nburnin', 1000, 'nsamples', 1000, ...
'thin', 2, ...
'monitorParams', { 'beta', 'mu_beta', 'R', 'mu', 'sigma' }, ...
'Bugdir', 'C:/Program Files/WinBUGS14');
% Now for the plots.
weights = reshape(dataStruct.Y, prod(size(dataStruct.Y)), 1);
ages = reshape((dataStruct.x' * ones(1, dataStruct.N))', ...
prod(size(dataStruct.Y)), 1);
figure; hold on;
plot(ages, weights, 'r+');
% Now plot the betas for each rat.
t = 0:1:40;
for i=1:dataStruct.N
weight_lin = stats.mean.beta(i, 1) + t * stats.mean.beta(i, 2);
plot(t, weight_lin, 'g:');
end
% Now plot the mu_beta
weight_lin = stats.mean.mu_beta(1) + t * stats.mean.mu_beta(2);
h=plot(t, weight_lin, 'k'); set(h, 'linewidth', 3)
title('red = data, green = sampled coef, black = mean coef')
xlabel('age')
ylabel('weight')
% Now just plot the samples straight.
figure; hold on;
colours = 'rgb';
for c=1:3
plot(samples.mu_beta(c,:,1), colours(c));
end
title('mu beta(1)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -