博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单线性回归和多项式回归
阅读量:6163 次
发布时间:2019-06-21

本文共 3861 字,大约阅读时间需要 12 分钟。

hot3.png

简单线性回归: 当回归模型中包含一个因变量和自变量时,

多项式回归:当只有一个与预测变量,但同时包含变量的幂(如,X^2,X^3)

多元线性回归:当有不止一个预测变量时

 

  • 简单线性回归

#欲利用身高的预测体重,如图1> par(ask=TRUE)> opar <- par(no.readonly = TRUE) #复制一份当前的图形参数设置> fit <- lm(weight ~ height, data = women)> summary(fit)   #单词为概要、摘要的意思, 拟合模型的详细结果Call:lm(formula = weight ~ height, data = women)Residuals:    Min      1Q  Median      3Q     Max -1.7333 -1.1333 -0.3833  0.7417  3.1167 Coefficients:             Estimate Std. Error t value Pr(>|t|)    (Intercept) -87.51667    5.93694  -14.74 1.71e-09 ***     #截距(Intercept)height        3.45000    0.09114   37.85 1.09e-14 ***     #回归系数 为3.45---Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 1.525 on 13 degrees of freedomMultiple R-squared:  0.991,	Adjusted R-squared:  0.9903    #Multiple R-squared:判定系数 ,Adjusted R-squared:调整判定系数F-statistic:  1433 on 1 and 13 DF,  p-value: 1.091e-14> women$weight [1] 115 117 120 123 126 129 132 135 139 142 146 150 154 159 164> fitted(fit)   #列出拟合模型的预测值       1        2        3        4        5        6        7        8        9       10 112.5833 116.0333 119.4833 122.9333 126.3833 129.8333 133.2833 136.7333 140.1833 143.6333       11       12       13       14       15 147.0833 150.5333 153.9833 157.4333 160.8833 > residuals(fit) #列出拟合模型的残差值          1           2           3           4           5           6           7  2.41666667  0.96666667  0.51666667  0.06666667 -0.38333333 -0.83333333 -1.28333333           8           9          10          11          12          13          14 -1.73333333 -1.18333333 -1.63333333 -1.08333333 -0.53333333  0.01666667  1.56666667          15  3.11666667 > plot(women$height,women$weight,   #画出散点图+      xlab = "heiht",+      ylab = "weight")Hit 
to see next plot: abline(fit) > abline(fit) #画出参考线

 

07074806_F4zl.png

                            图1

通过输出结果,可以得到预测等式:

Weight = -87.52 + 3.45*Height

因为身高不可能为0,所以没必要给截距项一个物理解释,它仅仅是一个常量调整项,

在Pr(>| t |)栏,可以看到回归系数(3.45)显著不为0(p<0.0.1),表明身高每增高1英寸,体重将预期增加3.45磅。

R平方项(0.991)表明模型可以解释体重99.1%的方差,它也是实际和预测值之间相关系数的平方。

残差标准误(1.53lbs)则可认为是模型用身高预测提供的平均误差

F 统计量检验所有的预测变量与此相应变量是否都在某各几率水平之上,由于是简单回只有一个预测变量,此处F检验等同于身高回归系数的 t 检验

由图1,可以看到可以用一个弯曲的曲线来提高预测的精度,拟合一个多项式回归试试

  • 多项式回归
#接着上述的例子,添加一个二项式(X^2)来提高回归的预测精度,如图2> fit2 <- lm(weight ~ height + I(height^2),data=women)  #I(height^2)表示身高的平方项> summary(fit2)Call:lm(formula = weight ~ height + I(height^2), data = women)Residuals:     Min       1Q   Median       3Q      Max -0.50941 -0.29611 -0.00941  0.28615  0.59706 Coefficients:             Estimate Std. Error t value Pr(>|t|)    (Intercept) 261  .87818   25.19677  10.393 2.36e-07 ***height       -7.34832    0.77769  -9.449 6.58e-07 ***I(height^2)   0.08306    0.00598  13.891 9.32e-09 ***---Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 0.3841 on 12 degrees of freedomMultiple R-squared:  0.9995,	Adjusted R-squared:  0.9994 F-statistic: 1.139e+04 on 2 and 12 DF,  p-value: < 2.2e-16> plot(women$height,women$weight,  #画图的时候注意加上women$+      xlab = "height",+      ylab = "weight")> lines(women$height,fitted(fit2)) #注意:通过lines(x,y)添加参考线 x表示身高,fitted(fit)回归的预测值

 

07074807_W68o.png

                                    图2

新的预测等式为:

    Weight = 261.88- 7.35*Height + 0.083*Height^2

在 p < 0.001水平下,回归系数都非常的显著,模型的方差解释率已经增加到99.9%,二次项的显著性(t = 13.89,p <0.001)表明包含了二次项提高了模型的拟合度

 

  • 线性模型与非线性模型

多项式等式仍可认为是线性回归模型,因为等式仍是预测变量的加权和形式,即使这样的模型

07074807_DsmW.png

 仍可认为是线性模型(参数项是线性的),能用这样的表达式进行拟合

         Y ~log(X1) + sin(X2)

 

相反,下面的例子才能算是真正的非线性模型:

  07074807_Cuo4.png

 

  • 拟合三次多项式
  • scatterplot()绘制二元关系图

使用car包中的scatterplot()函数,它可以很容易、方便地绘制二元关系图

#如下图3>library(car)> scatterplot(weight~height,data = women,+             spread= F,  #选项删除残差正负均方根在平滑曲线上的展开和非对称信息+             smoother.args =list(lty =2), #选择设置loess拟合曲线为虚线+             pch =19, #符号设置为实心圆+             xlab = "Height(inches)",+             ylab = "Weight(bs.)"

07074807_b72S.png

                    图3

功能加强的图形,既提供了身高和体重的散点图、线性拟合曲线和平滑拟合(loess)曲线,还在相应边界展示了每个变量的箱线图

 

转载于:https://my.oschina.net/u/1785519/blog/1563511

你可能感兴趣的文章
检测oracle数据库坏块的方法
查看>>
SQL server 安装教程
查看>>
Linux下ftp和ssh详解
查看>>
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
查看>>
js时间和时间戳之间如何转换(汇总)
查看>>
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
查看>>
java中string和int的相互转换
查看>>
P1666 前缀单词
查看>>
HTML.2文本
查看>>
Ubuntu unity安装Indicator-Multiload
查看>>
解决Eclipse中新建jsp文件ISO8859-1 编码问题
查看>>
7.对象创建型模式-总结
查看>>
【论文阅读】Classification of breast cancer histology images using transfer learning
查看>>
移动端处理图片懒加载
查看>>
jQuery.on() 函数详解
查看>>
谈缓存和Redis
查看>>
【转】百度地图api,根据多点注标坐标范围计算地图缩放级别zoom自适应地图
查看>>
用户调研(补)
查看>>
ExtJS之开篇:我来了
查看>>
☆1018
查看>>