我只是想知道在使用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解释的变异百分比。有一个简单的方法吗?
感谢您的帮助!
文森特
答案 0 :(得分:1)
要获得针对每个预测变量解释的变异百分比,您可以使用:
cumsun(explvar(pcr.fit))
对于交叉验证的测试错误,您可以查看MSEP
函数。
此外,如果在这种情况下,您可以使用getS3method("summary","mvr")
查看摘要函数的代码,并找出如何从中获取所需的值。
答案 1 :(得分:0)
对于任何偶然发现此问题的人,这是对我有用的命令(如最初问题中的post pcr命令),它可以根据解释的总变化量绘制组件数。
validationplot(pcr.fit, val.type = "R2")