相对重要性

  • 概念

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

  • 预测变量不相关

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

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

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

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

> 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平方平均增长量的一个近似值it

> 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()函数的应用

也能够使用这种方法,较为直观io

#以下图
> 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")
             Weights
Income      5.488962
Population 14.723401
Frost      20.787442
Illiteracy 59.000195

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

相关文章
相关标签/搜索