首页 > 编程知识 正文

一元线性回归模型解释,一元线性回归模型实验报告

时间:2023-05-05 13:08:49 阅读:171235 作者:4931

#一元线性回归模型如下。

整体回归函数中y和x的关系是线性的,也是非线性的。 线性回归模型的“线性”有两种解释。

)1)变量是线性的,y的条件平均是x的线性函数

)2)参数是线性的,y的条件平均是参数的线性函数

线性回归模型主要是指相对于参数呈“线性”。 因为如果相对于参数是线性的,则可以用同样的方法估计参数。

#参数估计——最小二乘法假设针对一元线性回归模型,从总体获得了n组观察值(X1,Y1 )、(X2,Y2 )、(Xn,Yn )。 可以用无数条曲线拟合平面上的这n个点。 要求样本回归函数尽可能好地拟合该值。 总的来看,这条直线位于样本数据中心是最合理的。 用于选择最佳拟合曲线的准则可以确定为总拟合误差最小,也就是说,总残差最小。 可以从以下三个标准中选择。

)1)用“残差和最小”确定直线位置是一种方法。 但是,很快就发现“残差和”的计算存在相互抵消的问题。

)2)用“残差的绝对值和最小”来确定直线的位置也是一种方法。 但是,绝对值的计算很麻烦。

(3)最小二乘法的原则是用“残差平方和最小”确定直线位置。 最小二乘法除了容易计算外,得到的推算量也具有优良的特性。 该方法对异常值非常敏感。

最常用的是普通的最小二乘法(Ordinary Least Square,OLS )。 选择的回归模型应确保所有观察值的残差平方和最小。 (q为残差平方和) )。

样本回归模型:

残差平方和:

把这条直线用q确定为最小,即确定,当成变量,把它们看作q的函数,就变成了求极值的问题,可以通过求导数得到。 求出对q2个评价对象参数的偏导数:

解得:

###最小二乘法c实现# include iostream # include fstream # includevectorusingnamespacestd;

class LeastSquare{

双精度a,b;

公共:

leastsquare(constvectordoublex,const vectordouble y ) )。

{

double t1=0,t2=0,t3=0,t4=0;

for(intI=0; ix.size (; I )

{

t1 =x[i]x[i];

t2 =x[i];

t3 =x[i]y[i];

t4 =y[i];

}

a=(T3X.size(-T2T4)/)/(t1x.size )- t2t2);

//b=(T4-at2 )/x.size );

b=(T1T4-T2T3 )/)/(t1x.size )- t2*t2 );

}

双精度(const双精度) const{return a*x b; }void print () const (cout lt ); lt; ' y='lt; lt; alt; lt; ' x 'lt; lt; blt; lt; 'n '; };

intmain(intargc,char *argv[] ) ) ) ) ) ) ) ) ) int main ) ) ) int main ) ) ) int argc,char *argv[] ) ) ) ) ) ) ) int

{

if(argc!=2)

{

cout“usage : datafile.txt”endl;

返回- 1;

}

else

{

vectordouble x;

ifstreamin(argv[1];

for (双精度; ind; )

x.push_back(d );

int sz=x.size (;

vectordoubley(x.Begin )、sz/2和x.end );

x.resize(SZ/2;

lastsquarels(x,y );

ls.print (;

插座; lt; “Input x:n”; double x0; wile(cingt; gt; x0 ) {coutlt; lt; ' y='lt; lt; ls.Gety(x0 ) lt; lt; endl; 插座; lt; “Input x:n”; } }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。