计量经济学简单线性回归OLS的Matlab程序.pdf
计量经济学简单线性回归 OLS 的 Matlab 程序
wxh1000
2011-09-21
先写 OLS.m 的 M 文件,用来代替 regress 函数;
(目前对 regress 函数不太了解,这里特别感谢潘晓炜同学的提醒)
-----------------------------------------------------------------------------------↓
function [beta_0 beta_1]=OLS(y,x)
%Ordinary Linear Regression
%其中 x,y 为样本构成的向量;
%回归方程为 Simple regression: y=beta_0+x*beta_1+u;
%y_mean=mean(y);
%x_mean=mean(x);
%beta_1=((x-x_mean)*(y-y_mean)')/((x-x_mean)*(x-x_mean)');
%beta_0=y_mean-beta_1*x_mean;
%其中 u 为服从 N(0,sigma^2)随机变量;
y_mean=mean(y);
x_mean=mean(x);
beta_1=((x-x_mean)*(y-y_mean)')/((x-x_mean)*(x-x_mean)');
beta_0=y_mean-beta_1*x_mean;
-----------------------------------------------------------------------------------↑
然后写 OLS_test.m 的 M 文件,用来进行模拟;
-----------------------------------------------------------------------------------↓
function [b_0 b_1]=OLS_test(beta_0,beta_1,n,a,b,sigma)
%已知 beta_0,beta_1,由 OLS 回归得 b_0,b_1.两者进行比较得到估计效果;
%y=beta_0+beta_1*x+u 来得到;
%x 为随机向量,u 为服从 N(0,sigma^2)随机变量;
%n 为模拟数据量,比如 1,10,100,1000 等;
%x=a+b*rand(1,n);%产生(a,a+b)区间上的随机向量;
%mu= ;sigma= ;%随机矩阵服从均值为 mu,方差为 sigma 的正态分布
%M= ;N= %M,N 为产生[M,N]的随机矩阵
%x=mu+sqrt(sigma)*randn(M,N);%x 为新生成的矩阵[M,N],服从均值为 mu,
方差为 sigma 的正态分布;
x=a+b*rand(1,n);%产生(a,a+b)区间上的随机向量;
%随机矩阵服从均值为 0,方差为 sigma 的正态分布
u=sqrt(sigma)*randn(1,n);
y=beta_0+beta_1*x+u;
%用 OLS 函数进行回归即可:[beta_0 beta_1]=OLS(y,x);
[b_0 b_1]=OLS(y,x);
sprintf('已知参数\n\tbeta_0=%0.5g\n\tbeta_1=%0.5g\n 模拟后,OLS 估
计值为\n\tbeta_0=%0.5g\n\tbeta_1=%0.5g',beta_0,beta_1,b_0,b_1)
-------------