在这个部分里,我们会为大家介绍如何使用R进行基础回归和相关分析,以及模型作图、置信区间的预估和展示。
A. 简单线性回归
我们使用数据集thuesen作为这一部分的例子,如下导入:
> library(ISwR)
> attach(thuesen)
我们使用函数lm( linear model,线性模型 )进行线性分析:
> lm(short.velocity~blood.glucose)
Call:
lm(formula = short.velocity ~ blood.glucose)
Coefficients:
(Intercept) blood.glucose
1.09781 0.02196
#Tips:函数lm()里面的参数是模型方程,波浪号(~)可以认为是“通过...来描述”。它在之前出现过几次,比如图形展示部分箱式图boxplot(),t检验,anova检验里等等。
#Tips:lm()函数的原始输出格式非常简单。你能看见的只有估计出来的截距α与斜率β。可以看出最优拟合直线为:short.velocity=1.098+0.0220*blood.glucose,但是没有给出其他任何像显著性检验之类的信息。
#Tips:其实,函数lm()可以处理比简单线性回归复杂很多的模型。除了一个解释变量与一个因变量之外,模型方程还能描述很多其他的情况。比如,要在y上通过x1,x2,x3进行多元线性回归分析(后文会介绍),可以通过y~x1+x2+x3来完成。
如果要获悉模型的其他信息,可以使用summary():
> summary(lm(short.velocity~blood.glucose))
Call:
lm(formula = short.velocity ~ blood.glucose)
Residuals:
Min 1Q Median 3Q Max
-0.40141 -0.14760 -0.02202 0.03001 0.43490
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.09781 0.11748 9.345 6.26e-09 ***
blood.glucose 0.02196 0.01045 2.101 0.0479 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.2167 on 21 degrees of freedom
(1 observation deleted due to missingness)
Multiple R-squared: 0.1737, Adjusted R-squared: 0.1343