|
可以使用 reshape 包 里面的 melt函数
> w1<-c(2012,2010,2011,2011,2012,2012)
> sy1<-c(20,30,40,50,60,40)
> sy2<-c(30,40,50,60,70,80)
> d<-data.frame(w1,sy1,sy2)
> library(reshape2)
> d<-melt(d,id=("w1"))
> d
w1 variable value
1 2012 sy1 20
2 2010 sy1 30
3 2011 sy1 40
4 2011 sy1 50
5 2012 sy1 60
6 2012 sy1 40
7 2012 sy2 30
8 2010 sy2 40
9 2011 sy2 50
10 2011 sy2 60
11 2012 sy2 70
12 2012 sy2 80
> d1<-head(d,6)
> d1
w1 variable value
1 2012 sy1 20
2 2010 sy1 30
3 2011 sy1 40
4 2011 sy1 50
5 2012 sy1 60
6 2012 sy1 40
> fit<-lm(d1$value~d1$w1+I(d1$w1^2))
> fit
Call:
lm(formula = d1$value ~ d1$w1 + I(d1$w1^2))
Coefficients:
(Intercept) d1$w1 I(d1$w1^2)
-40451220 40225 -10
> summary(fit)
Call:
lm(formula = d1$value ~ d1$w1 + I(d1$w1^2))
Residuals:
1 2 3 4 5 6
-2.000e+01 1.824e-08 -5.000e+00 5.000e+00 2.000e+01 5.178e-13
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -4.045e+07 6.215e+07 -0.651 0.562
d1$w1 4.022e+04 6.180e+04 0.651 0.562
I(d1$w1^2) -1.000e+01 1.537e+01 -0.651 0.562
Residual standard error: 16.83 on 3 degrees of freedom
Multiple R-squared: 0.15, Adjusted R-squared: -0.4167
F-statistic: 0.2647 on 2 and 3 DF, p-value: 0.7837
> plot(d1$w1,d1$value)
> lines(d1$w1, fitted(fit),type="b",col="red")
|