计量经济学简单线性回归OLS的Matlab程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计量经济学简单线性回归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) -----------------------------------------------------------------------------------↑
运行结果如下:
-----------------------------------------------------------------------------------↓
>> [b_0 b_1]=OLS_test(20,0.7,2,1,99,1)
ans =
已知参数
beta_0=20
beta_1=0.7
模拟后,OLS估计值为
beta_0=19.394
beta_1=0.72626
>> [b_0 b_1]=OLS_test(20,0.7,100,1,99,1)
ans =
已知参数
beta_0=20
beta_1=0.7
模拟后,OLS估计值为
beta_0=19.894
beta_1=0.70479
>> [b_0 b_1]=OLS_test(20,0.7,10000,1,99,1)
ans =
已知参数
beta_0=20
beta_1=0.7
模拟后,OLS估计值为
beta_0=19.988
beta_1=0.70018