R语言-回归

定义:

  回归是统计学的核心,它其实是一个广义的概念,通常指那些用一个或多个预测变量来预测响应变量.既:从一堆数据中获取最优模型参数

1.线性回归

  1.1简单线性回归

  案例:女性预测身高和体重的关系

  结论:身高和体重成正比关系

1 fit <- lm(weight ~ height,data = women)
2 summary(fit)
3 plot(women$height,women$weight,xlab = ‘Height inches‘,ylab = ‘Weight pounds‘)
4 abline(fit)

  1.2添加多项式来提升预测精度

   结论:模型的方差解释率提升到99.9%,表示二次项提高了模型的拟合度

1 fit2 <- lm(weight ~ height + I(height^2),data = women)
2 summary(fit2)
3 plot(women$height,women$weight,xlab = ‘Height inches‘,ylab = ‘Weight pounds‘)
4 lines(women$height,fitted(fit2))

  1.3多元线性回归

  案例探究:探究美国州的犯罪率和其他因素的关系,包括人口,文盲率,平均收入,天气

  结论:谋杀率和人口,文盲率呈正相关,和天气,收入呈负相关

1 states <- as.data.frame(state.x77[,c("Murder", "Population",
2                                      "Illiteracy", "Income", "Frost")])
3 cor(states)
4 library(car)
5 scatterplotMatrix(states,spread = F,smoother.args = list(lty=2),main=‘Scatter Plot Matrix‘)

  结论:文盲率的回归系数是4.14,说明在控制其他变量不变的情况下,文盲率提升1%,谋杀率就会提高4.14%

# 多元线性回归1 fit3 <- lm(Murder~Population+Illiteracy+Income+Frost,data = states)
2 summary(fit3)

  1.4回归诊断

  结论:文盲率改变1%,谋杀率在95%的置信区间[2.38,5.9]之间变化,因为frost的置信区间包含0,所以可以认为温度的改变与谋杀率无关

1 confint(fit3)

  结论:除了Nevada一个点,其余的点都很好的符合了模型

1 par(mfrow=c(2,2))
2 plot(fit3)

  学生化残差分布图展示了除了Nevada一个离群点,其他点都很好的符合了模型

 1 residplot <- function(fit,nbreaks=10){
 2   z <- rstudent(fit)
 3   hist(z,breaks = nbreaks,freq = F,xlab = ‘Studentized Residual‘,main = ‘Distribution of Errors‘)
 4   rug(jitter(z),col = ‘brown‘)
 5   curve(dnorm(x,mean=mean(z),sd=sd(z)),add=T,col=‘blue‘,lwd=2)
 6   lines(density(z)$x,density(z)$y,col=‘red‘,lwd=2,lty=2)
 7   legend(‘topright‘,legend = c(‘Normal Curve‘,‘KernelDensity Curve‘),lty = 1:2,col = c(‘blue‘,‘red‘),cex = .7)
 8 }
 9
10 residplot(fit3)

  1.5 异常观测值

    1.5.1 离群点:指的是模型预测观测效果

       此处可以看到Nevada是数据集中的离群点

1 library(car)
2 outlierTest(fit3)

    1.5.2 高杠杆值点:与其他观测变量有关的离群点

        可以通过以下的帽子图进行观测,,一般来说若帽子值的均值大于帽子均值的2倍或者3倍,就是高杠杆点

1 hat.plot <- function(fit){
2   p <- length(coefficients(fit3))
3   n <- length(fitted(fit3))
4   plot(hatvalues(fit3),main = ‘Index Plot of Hat Values‘)
5   abline(h=c(2,3)*p/n,col=‘red‘,lty=2)
6   identify(1:n,hatvalues(fit3),names(hatvalues(fit3)))
7 }
8 hat.plot(fit3)

    1.5.3强影响点:对模型参数影响有比例失调的点

          使用cook‘s D值大于4/(n-k-1)表示是强影响点

1 cutoff <- 4/(nrow(states)-length(fit3$coefficients)-2)
2 plot(fit3,which=4,cook.levels=cutoff)
3 abline(h=cutoff,lty=2,col=‘red‘)

      1.5.4还可以通过气泡图来展示哪些是离群点,强影响点和高杠杆值点

1 influencePlot(fit3,id.method=‘identify‘,main=‘Infulence Plot‘,sub=‘Circle size is proportional to cook distance‘)

  1.6选择最佳的模型

    1.6.1使用anova比较

      结论:由于检验不显著,不需要吧Income和Forst加入到变量中

1 fit5 <- lm(Murder ~ Population+Illiteracy,data = states)
2 anova(fit3,fit5)

    1.6.2使用AIC比较

      结论:同上

1 fit5 <- lm(Murder ~ Population+Illiteracy,data = states)
2 AIC(fit3,fit5)

    1.6.3变量选择

           结论:开始时模型包含4个变量,在每一步中,AIC列提供了一个删除变量后的AIC值第一次删除AIC从97.75下降到95.75,第二次从93.76,再删除变量会增加AIC所以回归停止

1 library(MASS)
2 stepAIC(fit3,direction = ‘backward‘)

    1.6.4使用自定义韩式计算相对权重

      结论:可以看到每个预测变量对模型方差的解释程度和影响权重

 1 relweights <- function(fit,...){
 2   R <- cor(fit$model)
 3   nvar <- ncol(R)
 4   rxx <- R[2:nvar,2:nvar]
 5   rxy <- R[2:nvar,1]
 6   svd <- eigen(rxx)
 7   evec <- svd$vectors
 8   ev <- svd$values
 9   delta <- diag(sqrt(ev))
10   lambda <- evec %*% delta %*% t(evec)
11   lambdasq <- lambda ^ 2
12   beta <- solve(lambda) %*% rxy
13   rsquare <- colSums(beta ^ 2)
14   rawwgt <- lambdasq %*% beta ^ 2
15   import <- (rawwgt / rsquare) * 100
16   import <- as.data.frame(import)
17   row.names(import) <- names(fit$model[2:nvar])
18   names(import) <- ‘Weights‘
19   import <- import[order(import),1,drop=F]
20   dotchart(import$Weights,labels = row.names(import),xlab = ‘% of R-Square‘,pch=19,
21            main = ‘Relative Importance of Predictor Variables‘,
22            sub=paste(‘Total R-Square=‘,round(rsquare,digits = 3)),...)23   return(import)# 调用24   relweights(fit3,col=‘blue‘)

原文地址:https://www.cnblogs.com/luhuajun/p/8445891.html

时间: 2024-11-06 13:24:32

R语言-回归的相关文章

R语言回归中的Hosmer-Lemeshow拟合优度检验

原文链接:http://tecdat.cn/?p=6166 在依赖模型得出结论或预测未来结果之前,我们应尽可能检查我们假设的模型是否正确指定.也就是说,数据不会与模型所做的假设冲突.对于二元结果,逻辑回归是最流行的建模方法.在这篇文章中,我们将看一下 Hosmer-Lemeshow逻辑回归的拟合优度检验. Hosmer-Lemeshow拟合优度检验 Hosmer-Lemeshow拟合优度检验是基于根据预测的概率或风险将样本分开.具体而言,基于估计的参数值,对于样本中的每个观察,基于每个观察的协变

R语言 回归的多面性

回归是一个令人困惑的词,因为它有许多特殊变种(见表8-1).对于回归模型的拟合,R提 供的强大而丰富的功能和选项也同样令人困惑.例如,2005年Vito Ricci创建的列表表明,R中做 回归分析的函数已超过了205个(http://cran.r-project.org/doc/contrib/Ricci-refcardregression.pdf). 表8-1 回归分析的各种变体 回归类型 用 途 简单线性 用一个量化的解释变量预测一个量化的响应变量 多项式 用一个量化的解释变量预测一个量化的

R语言︱XGBoost极端梯度上升以及forecastxgb(预测)+xgboost(回归)双案例解读

R语言︱XGBoost极端梯度上升以及forecastxgb(预测)+xgboost(回归)双案例解读 XGBoost不仅仅可以用来做分类还可以做时间序列方面的预测,而且已经有人做的很好,可以见最后的案例. 应用一:XGBoost用来做预测 -------------------------------------------------- 一.XGBoost来历 xgboost的全称是eXtreme Gradient Boosting.正如其名,它是Gradient Boosting Mach

R语言实战(四)回归

本文对应<R语言实战>第8章:回归 回归是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量.效标变量或结果变量)的方法.通常,回归分析可以用来挑选与相应变量相关的解释变量,可以描述两者的关系,也可以生成一个等式,通过解释变量来预测响应变量. 回归分析的各种变体 回归类型 用途 简单线性 用一个量化的解释变量预测一个量化的响应变量 多项式 用一个量化的解释变量预测一个量化的响应变量,模型的关系是n阶多项式 多元线性 用两个或多个量化的解释变量预测一个

利用R语言+逻辑回归实现自动化运营

摘要 逻辑回归是最常见的二分类算法之一,由于是有监督学习,训练阶段需要输入标签,而同时在变量较多的情况下,需要先经过一些降维处理,本文主要讲解如果通过R语言来自动化实现变量的降维以及变量转换,训练,测试,覆盖率以及准确度效果评估,以及生成最终评分配置表,而在标签与训练数据在可以自动化生成的情况下,配置表是能自动生成的.其中每个步骤都有详细的实现代码. 主要步骤 实现细节 1.生成训练数据 如类似下面的格式 lable var1 var2 var3 var4 var5 var6 var7 var8

R语言数据分析系列之九 - 逻辑回归

R语言数据分析系列之九 -- by comaple.zhang 本节将一下逻辑回归和R语言实现,逻辑回归(LR,LogisticRegression)其实属于广义回归模型,根据因变量的类型和服从的分布可以分为,普通多元线性回归模型,和逻辑回归,逻辑回归是指因变量是离散并且取值范围为{0,1}两类,如果离散变量取值是多项即变为 multi-class classification,所以LR模型是一个二分类模型,可以用来做CTR预测等.那么我们现在来引出逻辑回归如何做二分类问题. 问题引入 在多元线

回归预测及R语言实现 Part2 回归R语言实现

下面是回归分析的各种变体的简单介绍,解释变量和相应变量就是指自变量和因变量. 常用普通最小二乘(OLS)回归法来拟合实现简单线性.多项式和多元线性等回归模型.最小二乘法的基本原理前面已经说明了,使得预测值和观察值之差最小. R中实现拟合线性模型最基本的函数是lm(),应用格式为: myfit <- lm(Y~X1+X2+-+Xk,data) data为观测数据,应该为一个data.frame,前面是拟合表达式,Y是因变量,X1-Xk是自变量,+用来分隔不同的自变量的,还有可能用到的其他符号的说明

用R语言的quantreg包进行分位数回归

什么是分位数回归 分位数回归(Quantile Regression)是计量经济学的研究前沿方向之一,它利用解释变量的多个分位数(例如四分位.十分位.百分位等)来得到被解释变量的条件分布的相应的分位数方程. 与传统的OLS只得到均值方程相比,分位数回归可以更详细地描述变量的统计分布.它是给定回归变量X,估计响应变量Y条件分位数的一个基本方法:它不仅可以度量回归变量在分布中心的影响,而且还可以度量在分布上尾和下尾的影响,因此较之经典的最小二乘回归具有独特的优势.众所周知,经典的最小二乘回归是针对因

用R语言进行分位数回归:基础篇

用R语言进行分位数回归:基础篇 詹鹏 (北京师范大学经济管理学院 北京) http://www.xiaowanxue.com/up_files/2012121819040.html 原文地址:https://www.cnblogs.com/jwg-fendi/p/10069488.html