[Matlab篇----回归分析Matlab命令(OLS篇)

[Matlab]篇----回归分析(OLS篇)

一、简介:

最近在做回归分析方面的东西,网上查阅相关资料,通过实际调试,对调试结果进行总结。

回归分析法指利用数据统计原理,对大量统计数据进行数学处理,并确定因变量与某些自变量的相关关系,建立一个相关性较好的回归方程(函数表达式),并加以外推,用于预测今后的因变量的变化的分析方法。根据因变量和自变量的个数分为:一元回归分析和多元回归分析;根据因变量和自变量的函数表达式分为:线性回归分析和非线性回归分析。

分类:

1、根据因变量和自变量的个数来分类:一元回归分析和多元回归分析;

2、根据因变量和自变量的函数表达式来分类:线性回归分析和非线性回归分析。

主要解决的问题:

回归分析法主要解决的问题:

1、确定变量之间是否存在相关关系,若存在,则找出数学表达式;

2、根据一个或几个变量的值,预测或控制另一个或几个变量的值,且要估计这种控制或预测可以达到何种精确度。

回归分析法的步骤

回归分析法的步骤如下:

1、根据自变量与因变量的现有数据以及关系,初步设定回归方程;

2、求出合理的回归系数;

3、进行相关性检验,确定相关系数;

4、在符合相关性要求后,即可根据已得的回归方程与具体条件相结合,来确定事物的未来状况,并计算预测值的置信区间。

有效性和注意事项

**有效性:**用回归分析法进行预测首先要对各个自变量做出预测。若各个自变量可以由人工控制或易于预测,而且回归方程也较为符合实际,则应用回归预测是有效的,否则就很难应用;

**注意事项:**为使回归方程较能符合实际,首先应尽可能定性判断自变量的可能种类和个数,并在观察事物发展规律的基础上定性判断回归方程的可能类型;其次,力求掌握较充分的高质量统计数据,再运用统计方法,利用数学工具和相关软件从定量方面计算或改进定性判断。

二、回归分析OLS

先写OLS.m的M文件,用来代替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;
end

然后写Solve_OLS.m的M文件,用来进行模拟;

function [b_0 b_1]=Solve_OLS(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]=Solve_OLS(20,0.7,2,1,99,1)
ans =
已知参数
	beta_0=20
	beta_1=0.7
 模拟后,OLS 估计值为
	beta_0=-10.527
	beta_1=1.0462
b_0 =
 -10.526596648236350
b_1 =
   1.046173953504647
>>  [b_0 b_1]=Solve_OLS(20,0.7,100,1,99,1)
ans =
已知参数
	beta_0=20
	beta_1=0.7
 模拟后,OLS 估计值为
	beta_0=19.959
	beta_1=0.6994
b_0 =
  19.959265445464375
b_1 =
   0.699398956547863
>>  [b_0 b_1]=Solve_OLS(20,0.7,10000,1,99,1)
ans =
已知参数
	beta_0=20
	beta_1=0.7
 模拟后,OLS 估计值为
	beta_0=19.989
	beta_1=0.7002
b_0 =

  19.988943598135016

b_1 =

   0.700196440073060
>> 

你可能感兴趣的:(matlab,OLS,回归分析,matlab)