计量经济学简单线性回归OLS的Matlab程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档