yi = β0 + β1xi + εi
yi = β0 + β1ui + β2vi + β3wi + εi
oneway.test
kruskal.test anova
线性回归
yi = β0 + β1xi + εilm(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)