内容纲要
 
什么是回归问题:简单的说,就是研究y和x之间关系的问题
 
前提知识
1)R语言基础
2)gglot2包
 
回归包括
1)线性回归:一元,多元
2)广义线性回归:逻辑回归,其他
3)非线性回归
 
回归要做的事情
1)确定回归方程:初始方程
2)分析多重共线性问题,去掉或添加变量(线性或者非线性)
3)预测和控制
4)参数可信度分析,预测可信度分析,去掉奇异点
 
来个简单实例,看看看看一元线性回归的处理步骤
例子
已知:
x<-c(0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.20,0.21,0.23)
y<-c(42.0,43.5,45.0,45.5,45.0,47.5,49.0,53.0,50.0,55.0,55.0,60.0)
求一元线性回归模型,并且对结果进行分析?
 
步骤
1)画图,如果可以的话:
plot(x,y)
得到散点图:
一元线性回归
2)分析:可能是一元线性关系
 
3)初步建模
lm.sol<-lm(y ~ 1+x)#表示y=a+bx
 
4)分析结果
summary(lm.sol)

> summary(lm.sol)
Call:
lm(formula = y ~ 1 + x)#最后模型表示y=a+bx
Residuals:#残差的五点分布,就是箱线图的那五个点,最小值,下四分位,均值,上四分位,最大值
    Min      1Q  Median      3Q     Max
-2.0431 -0.7056  0.1694  0.6633  2.2653
Coefficients:#参数系数分析
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)   28.493      1.580   18.04 5.88e-09 ***#a分析,星越多越好,p值越小越好
x            130.835      9.683   13.51 9.50e-08 ***#b分析
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.319 on 10 degrees of freedom#整体的残差分析,越小越好
Multiple R-squared:  0.9481, Adjusted R-squared:  0.9429 #相关系数分析,越大越好
F-statistic: 182.6 on 1 and 10 DF,  p-value: 9.505e-08#整体模型的F统计分析,p越小越好
 
5)对模型参数进行区间估计:
beta.int(lm.sol)
tip:可以用attributes(lm.sol)看有啥可以用的属性
---
beta.int<-function(fm,alpha=0.05){
  A<-summary(fm)$coefficients#取出系数
  df<-fm$df.residual#取出残差
  left<-A[,1]-A[,2]*qt(1-alpha/2, df)#计算分布,df是自由度,注意公式和r软件的不太一样,公式是alpha/2,r是1-alpha/2
  right<-A[,1]+A[,2]*qt(1-alpha/2, df)
  rowname<-dimnames(A)[[1]]#获得系数名称
  colname<-c("Estimate", "Left", "Right")#设置列名,即预测的系数值,在置信度范围内的系数最小和最大值
  matrix(c(A[,1], left, right), ncol=3,
         dimnames = list(rowname, colname ))  #返回结果
}
---
> beta.int(lm.sol)
             Estimate      Left     Right
(Intercept)  28.49282  24.97279  32.01285
x           130.83483 109.25892 152.41074
 
6)用模型进行预测,并求预测的区间
new<-data.frame(x=0.16)
lm.pred<-predict(lm.sol,new,interval = "prediction",level = 0.95)
lm.pred
> lm.pred
       fit      lwr      upr
1 49.42639 46.36621 52.48657#标准预测结果,最小最大可能预测结果
 
至此,一个简单的一元线性回归模型解决实际问题的步骤就完成了。接下来我们再看更复杂的例子。