#r #pls
#r #пожалуйста
Вопрос:
Я рассчитал модель PLS с помощью пакета «PLS», и я хочу отобразить объясненную дисперсию Y. Я попытался просмотреть созданную переменную, но не смог найти ничего, связанного с ней. Однако я могу найти объяснение дисперсии X и общую дисперсию X. Когда я использую функцию summary в своей модели, я вижу нужные мне числа, но я не могу выяснить, как их извлечь, чтобы я мог нанести их на график.
Идеальным сценарием было бы, если бы существовал график по умолчанию, содержащий объяснения дисперсии как X, так и Y, но я не думаю, что это так.
library(pls)
data <- (data containing y for Y and everything else for X)
plsmodel <- plsr(y~., ncomp=10, data=data, validation="CV", scale=TRUE, segment.type="random", method="simpls")
View(plsmodel)
summary(plsmodel)
Data: X dimension: 70 19
Y dimension: 70 1
Fit method: simpls
Number of components considered: 10
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 10 comps
CV 315.5 148.4 121.3 110.7 115.2 114.7 116.3 126.2 145.9 143.4 144.1
adjCV 315.5 147.9 120.2 110.4 112.9 112.8 114.1 123.2 141.4 139.2 139.8
TRAINING: % variance explained
1 comps 2 comps 3 comps 4 comps 5 comps 6 comps 7 comps 8 comps 9 comps 10 comps
X 86.88 91.50 94.95 95.98 98.19 98.79 99.08 99.28 99.52 99.74
y 79.79 87.86 89.78 92.48 93.26 93.87 94.19 94.40 94.53 94.64
Это последняя строка резюме, которое я ищу.
Ответ №1:
Вы можете посмотреть на сводный код следующим образом:
pls:::summary.mvr
Вы можете получить информацию следующим образом:
# X Variance
cumsum(explvar(plsmodel))
# Y Variance
drop(R2(plsmodel, estimate = "train", intercept = FALSE)$val)