4 扩展案例 考试成绩的回归分析
在a.txt文件中保存下列数据,作为成绩的参考值
2.0 3.3 4.0
3.3 2.0 3.7
4.0 4.3 4.0
2.3 0.0 3.3
2.4 2.0 4.0
读出a.txt
a<-read.table("a.txt",header=FALSE)
Header是表头,没有表头就用FALSE(默认),有表头就用TRUE,
> class(a)
[1] "data.frame"
表明是数据框类的R对象
> head(a)
V1 V2 V3
1 2.0 3.3 4.0
2 3.3 2.0 3.7
3 4.0 4.3 4.0
4 2.3 0.0 3.3
5 2.4 2.0 4.0
这是查看刚刚的数据是否已经读入,由于缺少表头行,R自动表列名设置成为V1,V2,V3,行好出现在每一行的最左边。
我们用其中考试成绩(a的第一列)预测期末考试的成绩(a的第二列):
lma<-lm(a[,2]~a[,1])
这里调用lm()函数(lm是linear model的缩写),让R拟合下面的预测方程
期末考试的成绩预测值=β0+β1×期中考试成绩
其中,β0和β1都是用本例的数据估计出来的常数,换句话说,我们用数据中的数 对(期中考试成绩,期末考试成绩)拟合了一条直线,拟合过程是用经典的最小二乘法。
如何确定β0和β1 βi的估计值保存在lma$coefficients中,以上面例子为例,翘楚如下代码
> lma$cofficients
得到的结果是
(Intercept) a[, 1]
-0.4595620 0.9927007
表明β0=-0.4595620 β1 =0.9927007
同样我们可以通过其中考试成绩和测验成绩预测期末考试成绩,可以使用几号+
> lmb >-lm(a[,2]~a[,1]+a[,3])
然后同理在lmb中可以得到β0和β1
注意,+号并不表示计算两个量的和。它仅仅是预测变量(predictor variable)的分隔符