例子:销售额x与流通费率y
xx = c(1.5,2.8,4.5,7.5,10.5,13.5,15.1,16.5,19.5,22.5,24.5,26.5) yy = c(7.0,5.5,4.6,3.6,2.9,2.7,2.5,2.4,2.2,2.1,1.9,1.8) tt<-data.frame(xx,yy) names(tt)<-c("x","y") plot(tt$x,tt$y) # 直线回归(R2值不理想) lm.1=lm(y~x,data=tt) summary(lm.1) # 多项式回归,假设用二次多项式方程y=a+bx+cx2 lm.2=lm(y~x+I(x^2),data=tt) summary(lm.2) plot(tt$x,tt$y) lines(tt$x,fitted(lm.2)) # 对数法,y=a+blogx lm.log=lm(y~log(x),data=tt) summary(lm.log) plot(tt$x,tt$y) lines(tt$x,fitted(lm.log)) # 指数法,y=aebx lm.exp=lm(log(y)~x,data=tt) summary(lm.exp) plot(tt$x,tt$y) lines(tt$x,exp(fitted(lm.exp))) # 幂函数法,y=axb lm.pow=lm(log(y)~log(x),data=tt) summary(lm.pow) plot(tt$x,tt$y) lines(tt$x,exp(fitted(lm.pow)))
对比以上各种拟合回归过程得出结论是幂函数法为最佳