各类统计方法R语言实现(五)

今天是各类统计方法R语言实现的第五期,我们主要介绍简单线性回归和多项式回归。

基础知识

什么是回归?

回归分析指用一个或多个自变量来预测因变量的方法。

简而言之,就是用已知的变量预测未知的变量,比如临床模型构建,常常使用的是回归来构建。

在医学中,Elisa等多种实验的标准曲线绘制使用的就是回归的的方法。

回归能做什么?

①挑选与因变量相关的自变量。

②描述自变量与因变量的关系。

③通过自变量预测因变量。

常见回归类型汇总

(引自R语言实战(第二版)) 未来我们将介绍其中大部分方法。

简单线性回归(最小二乘法)

基础概念

最小二乘法的目的:使得回归模型的预测值与真实值的差值最小,具体表现为残差平方和最小。

简单线性模型:回归模型包含一个自变量和一个因变量,且二者成线性。

使用最小二乘法构建简单线性回归模型的假设:

①正态性:对于固定自变量,因变量成正态分布。

②独立性:因变量取值相互独立。

③线性:自变量和因变量之间为线性相关。

④同方差性:因变量方差不随自变量的水平不同而变化。

使用lm()构建回归模型常用符号与代码

(引自R语言实战)

数据输入

使用的数据自变量为身高(英寸),因变量为体重(磅),首先构建简单线性模型

data(women)
summary(women)
##      height         weight     
##  Min.   :58.0   Min.   :115.0  
##  1st Qu.:61.5   1st Qu.:124.5  
##  Median :65.0   Median :135.0  
##  Mean   :65.0   Mean   :136.7  
##  3rd Qu.:68.5   3rd Qu.:148.0  
##  Max.   :72.0   Max.   :164.0

代码展示

#模型拟合
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 ***
## height        3.45000    0.09114   37.85 1.09e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.525 on 13 degrees of freedom
## Multiple R-squared:  0.991,  Adjusted R-squared:  0.9903 
## F-statistic:  1433 on 1 and 13 DF,  p-value: 1.091e-14
##利用模型计算预测值
fitted(fit)
##        1        2        3        4        5        6        7        8 
## 112.5833 116.0333 119.4833 122.9333 126.3833 129.8333 133.2833 136.7333 
##        9       10       11       12       13       14       15 
## 140.1833 143.6333 147.0833 150.5333 153.9833 157.4333 160.8833
#计算每一个预测值与实际值之间的差值,即残差
residuals(fit)
##           1           2           3           4           5           6 
##  2.41666667  0.96666667  0.51666667  0.06666667 -0.38333333 -0.83333333 
##           7           8           9          10          11          12 
## -1.28333333 -1.73333333 -1.18333333 -1.63333333 -1.08333333 -0.53333333 
##          13          14          15 
##  0.01666667  1.56666667  3.11666667
#可视化
plot(women$height,women$weight,
     xlab="Height (in inches)",
     ylab="Weight(in pounds)")
abline(fit)

img

结果解读:

构建的模型为Y=-87.51667+3.45X,由于身高不可能为0,因此截距项没有实际意义。回归系数p=1.09e-14,非常显著。表明身高每增高1英寸,体重将预期增加3.45磅。

R方为0.991,表示模型可以解释99.1%的方差。

从图形中可以看出可以用曲线提高预测精度,所以我们接下来尝试多项式回归。

多项式回归(最小二乘法)

多项式回归模型的关系为n阶多项式,我们首先尝试二次项

#二次项模型拟合
fit2<-lm(weight ~ height + I(height^2),data = women)

##展示模型
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 ' ' 1
## 
## Residual standard error: 0.3841 on 12 degrees of freedom
## Multiple R-squared:  0.9995, Adjusted R-squared:  0.9994 
## F-statistic: 1.139e+04 on 2 and 12 DF,  p-value: < 2.2e-16
##利用模型计算预测值
fitted(fit2)
##        1        2        3        4        5        6        7        8 
## 115.1029 117.4731 120.0094 122.7118 125.5804 128.6151 131.8159 135.1828 
##        9       10       11       12       13       14       15 
## 138.7159 142.4151 146.2804 150.3118 154.5094 158.8731 163.4029
#计算每一个预测值与实际值之间的差值,即残差
residuals(fit2)
##            1            2            3            4            5            6 
## -0.102941176 -0.473109244 -0.009405301  0.288170653  0.419618617  0.384938591 
##            7            8            9           10           11           12 
##  0.184130575 -0.182805430  0.284130575 -0.415061409 -0.280381383 -0.311829347 
##           13           14           15 
## -0.509405301  0.126890756  0.597058824
#可视化

plot(women$height,women$weight,
     xlab="Height(in inches)",
     ylab="Weight(in lbs)")
lines(women$height,fitted(fit2))

img

可以看到模型方差解释度为 0.9995,二次项显著,表明对于该数据多项式回归拟合效果更好。

#二次项模型拟合
fit3<-lm(weight ~ height + I(height^2)+ I(height^3),data = women)

##展示模型
summary(fit3)
## 
## Call:
## lm(formula = weight ~ height + I(height^2) + I(height^3), data = women)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.40677 -0.17391  0.03091  0.12051  0.42191 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)   
## (Intercept) -8.967e+02  2.946e+02  -3.044  0.01116 * 
## height       4.641e+01  1.366e+01   3.399  0.00594 **
## I(height^2) -7.462e-01  2.105e-01  -3.544  0.00460 **
## I(height^3)  4.253e-03  1.079e-03   3.940  0.00231 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2583 on 11 degrees of freedom
## Multiple R-squared:  0.9998, Adjusted R-squared:  0.9997 
## F-statistic: 1.679e+04 on 3 and 11 DF,  p-value: < 2.2e-16
##利用模型计算预测值
fitted(fit2)
##        1        2        3        4        5        6        7        8 
## 115.1029 117.4731 120.0094 122.7118 125.5804 128.6151 131.8159 135.1828 
##        9       10       11       12       13       14       15 
## 138.7159 142.4151 146.2804 150.3118 154.5094 158.8731 163.4029
#计算每一个预测值与实际值之间的差值,即残差
residuals(fit3)
##            1            2            3            4            5            6 
##  0.361437908 -0.406769374 -0.188012641 -0.007807225  0.108331538  0.134888314 
##            7            8            9           10           11           12 
##  0.046347770 -0.182805430  0.421913381 -0.165011133  0.030905696 -0.015851469 
##           13           14           15 
## -0.330797960  0.060550887  0.132679739
#可视化

plot(women$height,women$weight,
     xlab="Height(in inches)",
     ylab="Weight(in lbs)")
lines(women$height,fitted(fit3))

img

可以看到模型方差解释度为 0.9998,三次项显著,效果也不错。

好了,今天的R语言实现统计方法系列推文暂时告一段落,我们下次再见吧!小伙伴们如果有什么统计上的问题,或者如果想要学习什么方面的生物信息内容,可以在微信群或者知识星球提问,没准哪天的推文就是专门解答你的问题哦!

(0)

相关推荐

  • R数据分析:逻辑斯蒂回归与泊松回归

    今天将逻辑回归和泊松回归放一起给大家写写,因为它两在R中的做法都非常的相似和非常的简单,同时还有两个回归的图形化表达. 什么时候用逻辑回归 Logistic regression, also know ...

  • R语言逻辑回归Logistic回归分析预测股票涨跌

    原文链接:http://tecdat.cn/?p=23449 本文回答了关于逻辑回归的问题:它与线性回归有什么不同,如何在R中用glm()函数拟合和评估这些模型等等? Logistic回归是机器学习从 ...

  • 应该掌握的7种回归模型

    本文转载自博客你应该掌握的7种回归模型!. 线性回归和逻辑回归通常是人们学习预测模型的第一个算法.由于这二者的知名度很大,许多分析人员以为它们就是回归的唯一形式了.而了解更多的学者会知道它们是所有回归 ...

  • R数据分析:一般线性回归的做法和解释

    发现大家做分析做的最多的还是线性回归,很多人咨询的都是线性回归的问题,今天专门出一个线性回归的文章. 在R语言中我们可以非常方便地用基础包中的lm方法做出线性回归.参数的书写也和数学方程一样一样的Y~ ...

  • R笔记:多重线性回归(二)_适用条件考察

    转自个人微信公众号[Memo_Cleon]的统计学习笔记:R笔记:多重线性回归(二)_适用条件考察.书接上回--我们在<<多重线性回归(一)_模型拟合>>一文中已经建立了回归模 ...

  • 限制性立方样条图,一种美的不行的趋势性分析方法(附R语言详细教程)

    2021年4月专题:趋势性分析方法系列 1.最基本的趋势性检验方法 2.利用回归进行趋势性分析 3.限制性立方样条图,一种美的不行的趋势性分析方法 4.Loess回归,非线性趋势性分析,怎么能少了它呢 ...

  • 一款好用且免费的曲线拟合工具CurveFitter

    点组所表示的坐标与函数值之间的关系.曲线拟合可以帮助我们了解数据之间的内在联系,并能预测此类问题在其他离散点下的变化趋势.在实际的数据分析工作中,大多数需要拟合的曲线或曲面都是非线性的,所以常需要借助 ...

  • 使用R语言进行多项式回归、非线性回归模型曲线拟合

    原文链接:http://tecdat.cn/?p=22531 对于线性关系,我们可以进行简单的线性回归.对于其他关系,我们可以尝试拟合一条曲线. 曲线拟合是构建一条曲线或数学函数的过程,它对一系列数据 ...

  • 各类统计方法R语言实现(八)

    [科研绘图点我][付费精品合集][SEER点我] 今天是各类统计方法R语言实现的第八期,我们主要介绍选择"最佳"回归模型与深层次分析. 选择"最佳"回归模型 当 ...

  • 各类统计方法R语言实现(七)

    今天是各类统计方法R语言实现的第七期,我们主要介绍多重共线性.异常观察值的分析和回归模型改进措施. 多重共线性 多重共线性是指线性回归模型中的解释变量之间由于存在强相关关系而使模型估计失真或难以估计准 ...

  • 各类统计方法R语言实现(六)

    今天是各类统计方法R语言实现的第六期,我们主要介绍多元线性回归.回归诊断. 多元线性回归 多元线性回归指的是用多个自变量预测一个因变量,且自变量与因变量之间为线性关系,在分析过程中要考虑交互项的问题. ...

  • 各类统计方法R语言实现(四)

    白介素2的读书笔记,分享临床科研干货,一起见证时间的力量 不知不觉就到第四期了,小伙伴们是否跟着我们的推文一起练习了呢?当然,统计光靠跑代码是不够的,还需要结合理论知识一同学习,可以边复习理论,边跟着 ...

  • 各类统计方法R语言实现(三)

    各位小伙伴们大家好,今天是我们的系列推文"各类统计方法R语言实现"第三篇,今天介绍的主要内容是方差分析. 方差分析适用用于两个及两个以上样本均数差别的显著性检验,其中两组之间的方差 ...

  • 各类统计方法R语言实现(二)​

    各位小伙伴们大家好,今天是我们的系列推文"各类统计方法R语言实现"第二篇,今天介绍的主要内容有:正态性检验.方差齐性检验.t检验.近似t检验. t检验亦称student t检验,是 ...

  • 各类统计方法R语言实现(一)

    无论是在临床研究还是在基础研究中,统计都是非常重要的一关,而在R语言中,可以轻松实现大多数统计方法.因此,今天小编将开启一个全新的系列推文:利用R语言实现各类常用统计方法,希望能对大家有所帮助.由于统 ...

  • R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法

    原文链接:http://tecdat.cn/?p=22251 线性回归时若数据不服从正态分布,会给线性回归的最小二乘估计系数的结果带来误差,所以需要对数据进行结构化转换. 在讨论回归模型中的变换时,我 ...