- 原理,最小二乘法
- 步骤:建立回归模型,求解回归模型中的参数,对回归模型进行检验
- 例子
- 数据:身高-体重
> h=c(171,175,159,155,152,158,154,164,168,166,159,164)
> w=c(57,64,41,38,35,44,41,51,57,49,47,46)
> plot(w~h+1)
自定义函数
> lxy<-function(x,y){n=length(x);sum(x*y)-sum(x)*sum(y)/n}
> b=lxy(h,w)/lxy(h,h)
> a=mean(w)-b*mean(h)
> b
[1] 1.15906
> a
[1] -140.3644
> lines(h,a+b*h)
建立线性模型
> h=c(171,175,159,155,152,158,154,164,168,166,159,164)
> length(h)
[1] 12
> w=c(57,64,41,38,35,44,41,51,57,49,47,46)
> length(w)
[1] 12
> a=lm(w~1+h)
> a
Call:
lm(formula = w ~ 1 + h)
Coefficients:
(Intercept) h
-140.364 1.159
lm()线性模型函数
适用于多元线性模型的基本函数是lm(),其调用形式是
fitted.model<-lm(formula,data=data.frame)
其中formula 为模型公式.data.frame 为数据框。返回值为线性模型结果的对象放在fitted.model中,例如:
fm2<-lm(y ~ x1+x2,data=production)
适用于y关于x1和x2 的多元回归模型(隐含着截距项)。
y~1+x或y~x 均表示y=a+bx 有截距形式的线性模型
线性模型的汇总数据,t检验,summary()函数
> summary(a)
Call:
lm(formula = w ~ 1 + h)
Residuals:
Min 1Q Median 3Q Max
-3.721 -1.699 0.210 1.807 3.074
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -140.3644 17.5026 -8.02 1.15e-05 ***
h 1.1591 0.1079 10.74 8.21e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.546 on 10 degrees of freedom
Multiple R-squared: 0.9203, Adjusted R-squared: 0.9123
F-statistic: 115.4 on 1 and 10 DF, p-value: 8.21e-07