lm() 擬合線性模型linear module


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))

    •  

       

       

       

       

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM