lm() 擬合線性模型linear module ,用來進行回歸、single stratum方差分析,協方差分析
lm(formula,data,subset,weights,na.action,【other args】)
lm(y ~ x,data) 這樣是最常見設置的參數 如lm(formula=earn~height,data=wages)
formula 指定回歸模型的公式
~ 表示預測,讀作“y由x預測”
data 數據框,包含響應變量和獨立變量
1 在運行lm()前,先畫出變量間的散點圖,觀察關系
2 運行lm,賦值給lm object
3. print([lm object]) 查看截距intercept,斜率
summary([lm object]) 查看這個模型的詳細信息
備注:
如果是多元回歸模型,即lm(y~x+z) 如 mod2<-lm(earn~height+ed,data=wages)
示例
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
1. 先畫散點圖,觀察回歸規律
ggplot(data=data.frame(x= c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131),y=c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)),mapping = aes(x,y))+geom_point()
2.擬合回歸
relation<-lm(y~x)
relation
summary(relation)
基於得到的回歸函數,預測新值
a<-data.frame(x=170) #一個值也要以數據框格式傳入
result<-predict(relation,a)
result
predict 備注:
- 線性回歸擬合函數后,predict依據模型不只是預測新的自變量對應的一個值,更常用的是預測值的置信區間如
- attach(faithful) #將數據集加載到R的search path.那么數據集中的對象可以通過它們的names來訪問
- head(faithful) #查看數據集的前5行
- eruption.lm=lm(eruptions~waiting) #擬合線性回歸模型
- newdata=data.frame(waiting=80)
- glimpse(newdata)
- predict(eruption.lm,newdata,interval = "predict") #根據模型預測waiting=80時的eruptions 置信區間
-
如果predict時,不指定自變量,則基於原模型對原自變量的y都預測一遍 如as.data.frame(predict(eruption.lm,interval="confidence",level=0.95))
-