r语言 第15天 线性回归和方差分析 324页

yi = β0 + β1xi + εi 

yi = β0 + β1ui + β2vi + β3wi + εi 

oneway.test 

 kruskal.test         anova


线性回归
yi = β0 + β1xi + εi 

lm(y~x)


yi = β0 + β1ui + β2vi + β3wi + εi 

> lm(y ~ u + v + w)


1  保存回归模型

> m <- lm(y ~ u + v + w) 

anova(m) 

coefficients(m)   ===     coef(m) 

confint(m) 

deviance(m)     残差平方和

effects(m) 

fitted(m) 

residuals(m)       ===     resid(m)         模型残差

summary(m) 

vcov(m) 

可以:

> summary(lm(y ~ u + v + w))



2   summary()


> summary(a)

Call:
lm(formula = y ~ x)              定义
Residuals:                             残差分析
   1    2    3    4 
-0.1 -0.2  0.7 -0.4 
Coefficients:                            
            Estimate Std. Error t value                Estimate回归的参数

(Intercept)   1.0000     0.7246   1.380            T统计值

x             0.1000     0.2646   0.378                  p值  越小越好
            Pr(>|t|)
(Intercept)    0.302
x              0.742
Residual standard error: 0.5916 on 2 degrees of freedom
Multiple R-squared:  0.06667, Adjusted R-squared:   -0.4                 R^2  越高越好
F-statistic: 0.1429 on 1 and 2 DF,  p-value: 0.7418                                模型是否有意义


3   无截距的线性回归

> lm(y ~ x + 0) 

yi = βxi + εi 


4   > lm(y ~ u*v) 

模型为    yi = β0 + β1ui + β2vi + β3uivi + εi

y ~ u + v + w + u:v:w 

yi = β0 + β1ui + β2vi + β3wi + β4uiviwi + εi 


5  选择最佳的回归

> full.model <- lm(y ~ x1 + x2 + x3 + x4) 

> reduced.model <- step(full.model, direction="backward") 

即看看y=x1   y=x1+x2  。。。。。。。y=x1+x2+x3+x4  哪个好


6  对data的子集回归

> lm(y ~ x, subset=1:100)          # Use only x[1:100] 


7  对于yi = β0 + β1(ui + vi) + εi 

要使用  > lm(y ~ I(u + v))         而> lm(y ~ u + v)  是不好使的


8  多项式回归

> lm(y ~ poly(x,3,raw=TRUE))                ====      > lm(y ~ x + I(x^2) + I(x^3)) 

yi = β0 + β1xi + β2xi2 + β3xi3 + εi 

而> x_sq <- x^2 

> x_cub <- x^3 

> m <- lm(y ~ x + x_sq + x_cub)     是错误的


9   > lm(log(y) ~ x) 



10   画出残差图,使用which=1这个参数

> m <- lm(y ~ x) 

> plot(m, which=1) 


11     influence.measures     返回有用的数据


12  检查残差自相关


13  预测

> m <- lm(y ~ u + v + w) 

> preds <- data.frame(u=3.1, v=4.0, w=5.5) 

> predict(m, newdata=preds) 

如果要预测的数据包含好几行,你可以每一行得到一个预测值

> preds <- data.frame(u=c(3.0, 3.1, 3.2, 3.3), v=c(3.9, 4.0, 4.1, 4.2), w=c(5.3, 5.5, 5.7, 5.9) ) 

> predict(m, newdata=preds)       

1        2        3        4 

11.97277 12.31374 12.65472 12.99569 


14  预测区间

> predict(m, newdata=preds, interval="prediction") 

15   > interaction.plot(pred1, pred2, resp) 

























































































































































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值