刚刚学matlab,想做一个蒙特卡洛的模拟,但是每次运行时都会出现Undefined function 'ols' for input arguments of type 'double',不知道原因也不知道解决办法,快疯了,求各位大神指导,万分感谢。因为要用matlab做其它作业,所以比较急。
程序如下:
nobs = 1000; nvar = 2; ntrials = 10000;
beta = ones(nvar,1);
x = [ones(nobs,1) randn(nobs,nvar-1)];
bout = zeros(ntrials,nvar);
for i=1:ntrials;
evec = randn(nobs,1);
y = x*beta + evec;
out=ols(y,x); bout(i,:)=out.beta';
end
bmean = mean(bout); bstd = std(bout); % find mean and std of bhats
fprintf(1,'Mean of the bhats \n');
for i=1:nvar; fprintf(1,'%8.4f \n',bmean(1,i)); end;
fprintf(1,'Std deviation of the bhats \n');
for i=1:nvar; fprintf(1,'%8.4f \n',bstd(1,i)); end;
hist(bout); ylabel('frequency of parameter outcomes');
xlabel('Estimated parameter values');
第八行的out=ols(y,x),到这里就运行不下去了
legend('\alpha','\beta_1')