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

    •  

       

       

       

       

 

posted on 2022-02-25 13:00  BioinformaticsMaster  阅读(904)  评论(0编辑  收藏  举报

导航