获取R中PCR回归中解释的变异百分比

时间:2015-02-17 23:32:34

标签: r principal-components

我只是想知道在使用PCR回归后如何访问所解释的变异百分比和交叉验证的测试错误。我查看了summary.mvr的文档,但我想我一定错过了什么。有一个简单的方法吗?例如:

library(MASS)
boston = Boston

pcr.fit = pcr(crim ~ ., data = boston, scale = TRUE, validation = "CV")
summary(pcr.fit)

Data:   X dimension: 506 13 
    Y dimension: 506 1
Fit method: svdpc
Number of components considered: 13

VALIDATION: RMSEP
Cross-validated using 10 random segments.
       (Intercept)  1 comps  2 comps  3 comps  4 comps  5 comps  6 comps  7 comps  8 comps  9 comps
CV            8.61    7.174    7.178    6.722    6.703    6.717    6.727    6.729    6.603    6.611
adjCV         8.61    7.173    7.177    6.719    6.699    6.715    6.723    6.724    6.598    6.607
       10 comps  11 comps  12 comps  13 comps
CV        6.624     6.643     6.569     6.498
adjCV     6.619     6.635     6.561     6.490

TRAINING: % variance explained
      1 comps  2 comps  3 comps  4 comps  5 comps  6 comps  7 comps  8 comps  9 comps  10 comps
X       47.70    60.36    69.67    76.45    82.99    88.00    91.14    93.45    95.40     97.04
crim    30.69    30.87    39.27    39.61    39.61    39.86    40.14    42.47    42.55     42.78
      11 comps  12 comps  13 comps
X        98.46     99.52     100.0
crim     43.04     44.13      45.4

我只想访问为预测变量和crim解释的变异百分比。有一个简单的方法吗?

感谢您的帮助!

文森特

2 个答案:

答案 0 :(得分:1)

要获得针对每个预测变量解释的变异百分比,您可以使用:

cumsun(explvar(pcr.fit))

对于交叉验证的测试错误,您可以查看MSEP函数。

此外,如果在这种情况下,您可以使用getS3method("summary","mvr")查看摘要函数的代码,并找出如何从中获取所需的值。

答案 1 :(得分:0)

对于任何偶然发现此问题的人,这是对我有用的命令(如最初问题中的post pcr命令),它可以根据解释的总变化量绘制组件数。

validationplot(pcr.fit, val.type = "R2")