设为首页 加入收藏

TOP

【R】多元线性回归(七)
2017-10-10 12:09:59 】 浏览:10127
Tags:多元 线性 回归
ot;)
 
        fit      lwr      upr
1  9.037174 8.004911 10.06944
2 11.301729 9.866851 12.73661
 
这里newdata提供了两个全新的点供模型来预测。还可以用interval指定返回置信区间(confidence)或者预测区间(prediction),这也反映了统计与机器学习的一个差异——可解释性。注意置信区间考虑的是平均值,而预测区间考虑的是单个观测值,所以预测区间永远比置信区间广,因此预测区间考虑了单个观测值的不可约误差;而平均值同时也把不可约误差给抵消掉了。
 
(2)相对重要性
 
有的时候需要解释模型中各个自变量对因变量的重要程度,简单处理可以直接看系数即可,《R语言实战》里自定义了一个relweights()函数可以计算各个变量的权重:
 
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))
 
    # correlations between original predictors and new orthogonal variables
    lambda <- evec %*% delta %*% t(evec)
    lambdasq <- lambda^2
 
    # regression coefficients of Y on orthogonal variables
    beta <- solve(lambda) %*% rxy
    rsquare <- colSums(beta^2)
    rawwgt <- lambdasq %*% beta^2
    import <- (rawwgt/rsquare) * 100
    lbls <- names(fit$model[2:nvar])
    rownames(import) <- lbls
    colnames(import) <- "Weights"
 
    # plot results
    barplot(t(import), names.arg = lbls, ylab = "% of R-Square",
        xlab = "Predictor Variables", main = "Relative Importance of Predictor Variables",
        sub = paste("R-Square = ", round(rsquare, digits = 3)),
        ...)
    return(import)
}
 
不要在意算法原理和代码逻辑这种细节,直接看结果:
 
fit <- lm(Murder ~ Population + Illiteracy + Income +
            Frost, data = states)
relweights(fit, col = "lightgrey")
 
             Weights
Population 14.723401
Illiteracy 59.000195
Income      5.488962
Frost      20.787442
 
 
fit$coefficients
 
 (Intercept)   Population   Illiteracy       Income        Frost
1.2345634112 0.0002236754 4.1428365903 0.0000644247 0.0005813055
 
barplot(fit$coefficients[2:5])
 
 
在本例中,相对权重与系数的排序结果一致。推荐用相对权重。
首页 上一页 4 5 6 7 下一页 尾页 7/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇“ML_for_Hackers”[1] 下一篇用贝叶斯判别分析再次预测股票涨..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目