博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
相对重要性
阅读量:5876 次
发布时间:2019-06-19

本文共 2154 字,大约阅读时间需要 7 分钟。

hot3.png

  • 概念

简单就是说“哪些预测变量对响应变量影响最大”?或者“哪些变对预测最为重要”

  • 预测变量不相关

直接计算预测变量与响应变量之间的相关系数,进行排序即可

  • 预测变量有相关性
  • 利用比较标准化回归系数得出

标准化回归系数:在回归分析前,用scale()函数将数据标准化为均值为0,标准差为1的数据集,这样用R回归即可得到标准化的回归系数。注意:scale()函数返回的是一个矩阵,而lm()函数要求一个数据框,需要用一个中间步骤转换下。

它表示当其他预测变量不变时,该预测变量一个标准差的变化可引起的响应变量的预期变化(以标准差单位度量)

> states <- as.data.frame(state.x77[,c("Murder", "Population",+                                      "Illiteracy", "Income", "Frost")])> zstates <- as.data.frame(scale(states))> zfit <- lm(Murder~Population + Income + Illiteracy + Frost, data=zstates)> coef(zfit) #提取模型的系数  (Intercept)    Population        Income    Illiteracy         Frost -2.054026e-16  2.705095e-01  1.072372e-02  6.840496e-01  8.185407e-03 #可以看出 Illiteracy最大,Frost最小

 

  • 相对权重方法

一种比较有前景的新方法,它是对所有可能子模型添加一个预测变量引起的R平方平均增加量的一个近似值

> relweights <- function(fit,...){+   R <- cor(fit$model)+   nvar <- ncol(R)+   rxx <- R[2:nvar, 2:nvar]+   rxy <- R[2:nvar, 1]+   svd <- eigen(rxx)+   evec <- svd$vectors+   ev <- svd$values+   delta <- diag(sqrt(ev))+   lambda <- evec %*% delta %*% t(evec)+   lambdasq <- lambda ^ 2+   beta <- solve(lambda) %*% rxy+   rsquare <- colSums(beta ^ 2)+   rawwgt <- lambdasq %*% beta ^ 2+   import <- (rawwgt / rsquare) * 100+   import <- as.data.frame(import)+   row.names(import) <- names(fit$model[2:nvar])+   names(import) <- "Weights"+   import <- import[order(import),1, drop=FALSE]+   dotchart(import$Weights, labels=row.names(import),+            xlab="% of R-Square", pch=19,+            main="Relative Importance of Predictor Variables",+            sub=paste("Total R-Square=", round(rsquare, digits=3)),+            ...)+   return(import)+   }

 

  • relweights()函数的应用

也可以使用这种方法,较为直观

#如下图> states <- as.data.frame(state.x77[,c("Murder", "Population",+                                        "Illiteracy", "Income", "Frost")])> fit <- lm(Murder ~ Population + Illiteracy + Income + Frost, data=states)> relweights(fit, col="blue")             WeightsIncome      5.488962Population 14.723401Frost      20.787442Illiteracy 59.000195

07080815_2sD7.png

从图中可以看出各个预测变量对模型方差的解释程度(R平方=0.567),Illiteracy解释了59%的R平方。。。根据相对权重Illiteracy具有最大的相对重要性,依次是Frost、Population、Income

 

转载于:https://my.oschina.net/u/1785519/blog/1563527

你可能感兴趣的文章
第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法
查看>>
网络环境场景以及模拟工具netem
查看>>
图片预览
查看>>
js用定时器实现进度条
查看>>
memcache cas 乐观锁
查看>>
Java数据结构漫谈-Stack
查看>>
推荐《人月神话》32周年中文纪念版
查看>>
【教程】如何定制自己的信息源
查看>>
20111113
查看>>
LeetCode 411: Minimum Unique Word Abbreviation
查看>>
软件工程第二次作业-个人实战
查看>>
To: throughout the year, can MBT Baridi
查看>>
精通javascript笔记(智能社)——简易tab选项卡及应用面向对象方法实现
查看>>
How to use Git and svn together
查看>>
位运算符与逻辑运算符在操作逻辑型数据时的区别
查看>>
【WPF】控件使用-宽度自动适应窗口大小
查看>>
C++中的对象的赋值和复制
查看>>
Python day2
查看>>
当我们谈论CloudTable时究竟在谈论什么?
查看>>
map和flatMap
查看>>