一、 先导知识:
1—1:基本命令
1.赋值向量: x = c(1, 6, 2)
2.求向量长度: length(x)
3.两向量相加: x+y
4.查看列表对象及消除列表对象:ls(),rm(x)
5.建立矩阵:x = matrix(data = c(1,2,3,4), nrow = 2, ncol = 2)
6.涉及随机数,希望用户重复我们的结果: set.seed(3),y = rnorm(100)
7.求均值,求方差,求标准差:mean(y),var(y),sd(y)
1—2:图形
1.更多plot: ?plot
2.指示R创建图形的工作到此为止: dev.off()
3.在a,b之间建立一个整数向量,lenth为等距点:seq(0,1,length=10) 0,1之间等距的10个数
1—3:索引数据
1.取矩阵的某几个点:A[ c(1,3), c(2,4) ] 即取(1,2), (1,4), (3,2), (3,4)
2.取某行:A[1, ]:取第1行
3.不取某行,用负号"-" 表示:A[ -c(1,3), ] 不包括第1,3行
4.输出矩阵的行列数:dim(A)
二、实验知识:
1.载入库函数
library(MASS)
library(ISLR)
2.简单回归
〇调用变量
1.引用变量前,需用attach() 告知R允许在指定的数据框里的变量通过变量名调用
attach(Auto)
lm.fit = lm(response~predictor) #基本句法 以上两句 <=> lm.fit = lm(response~predictor, data = Auto)
plot(predictor, response)
①读取csv文件
1. **headers = 'T' ** 告知R,文件的第一行包含变量名,**ns.strings = "?" ** 告知R若缺失,则标号"?"
eg: Auto = read.table("Auto.data", headers = T, na.strings = "?")
2.剔除缺失数据的行:Auto = na.omit(Auto)
②查找置信区间
confidence()
③predict()函数可以计算置信区间和预测区间
- 对 置信区间 和 预测区间 的 理解
- predict(lm.fit, data.frame(predictor = (c(5, 10, 15))), interval = “confidence”)
- predict(lm.fit, data.frame(predictor = (c(5, 10, 15))), interval = “prediction”)
④画图
- 1.网上图源:各种标题的填写方式
-
2.小细节
-
1.plot(X, Y, (col = “COLOR”), (pch ="+" pch选项创建不同的图形符号)) //散点图
-
2.abline(lm.fit, (lwd = CONSTANT), (col = “COLOR”))//在plot之后的图上做最小二乘回归
-
3.par(mfrow = c(2,2)) //把绘图区域分次2 X 2
-
4.plot()之后,再用identify(),此时单击图上的某点将引导R打印指定变量上这个点的值:
plot(horsepower, mpg)
identify(horsepower, mpg, name) -
5.在指定的数据集中,summary()函数对每个变量给出一个数值汇总
-
-
3.对lm的输出直接用plot()命令将自动生成四幅诊断图。一般情况下,这个命令每次生成一幅图,按下Enter键将生成下一幅图,用par()函数可以将显示屏分割成独立地面板,如此可同时查看多个图
-
将图形保存在文件里
pdf("Figure.pdf") # 或者jpeg("Figure.jpeg") plot(x,y,col="green“) dev.off() #指示用R创建图形的工作到此为止
-
pairs() 变量与变量之间的散点图
①pairs(Auto) #用于建立指定数据集中每一对变量的散点图矩阵 ②pairs(~ mpg + displacement + horsepower + weight + acceleration, Auto) # 为数据集变量的子集
⑤残差
也可用resuduals()函数计算线性回归拟合的残差,rstudent()函数计算学生化残差,也可以此绘制残差对拟合值的散点图
plot(predict(lm.fit), residuals(lm.fit))
plot(predict(lm.fit), rstudent(lm.fit))
3.多元线性回归
1.lm.fit = lm(y~x1+x2+x3, data = DATASET)
summary(lm.fit)
也可以用它们的名字访问summary(详看?summary)的各个组成部分
2.lm.fit = lm(y~., data = DATASET) //表示对所有的预测变量
3.lm.fit = lm(y~x1+x2+x3, data = DATASET)
4.lm.fit = lm(y~.-age, data = DATASET) //表示对除age变量外的所有预测变量进行回归
②交互项
语句lstat : black将lstat 和 black的交互项纳入模型
语句lstat * age 将lstat, age和交互项lstat x age同时作为预测变量,它是lstat + age + lstat : age的简写形式
lm(medv~lstat*age, data = DATASET)
4.预测变量的非线性变换
I(x^2) //创建预测变量X^2
lm.fit2 = lm(medv~lstat + I(lstat ^2)) //建立medv对lstat和lstat^2的回归
②anova()
该函数进一步量化二次拟合在何种程度优于线性拟合
anova(lm.fit, lm.fit2)