PLS в R: извлечение значений статистики PRESS
Я относительно новичок в R и в настоящее время нахожусь в процессе построения модели PLS с использованием пакета pls. У меня есть два независимых набора данных одинакового размера, первый используется здесь для калибровки модели. Набор данных состоит из нескольких переменных ответа (y) и 101 объясняющей переменной (x) для 28 наблюдений. Однако переменные ответа будут отдельно включены в модель PLS. Текущий код выглядит следующим образом:
# load data
data <- read.table("....txt", header=TRUE)
data <- as.data.frame(data)
# define response variables (y)
HEIGHT <- as.numeric(unlist(data[2]))
FBM <- as.numeric(unlist(data[3]))
N <- as.numeric(unlist(data[4]))
C <- as.numeric(unlist(data[5]))
CHL <- as.numeric(unlist(data[6]))
# generate matrix containing the explanatory (x) variables only
spectra <-(data[8:ncol(data)])
# calibrate PLS model using LOO and 20 components
library(pls)
refl.pls <- plsr(N ~ as.matrix(spectra), ncomp=20, validation = "LOO", jackknife = TRUE)
# visualize RMSEP -vs- number of components
plot(RMSEP(refl.pls), legendpos = "topright")
# calculate explained variance for x & y variables
summary(refl.pls)
В настоящее время я достиг точки, в которой мне нужно определить для каждой переменной ответа оптимальное количество компонентов, которые необходимо включить в мою модель PLS. Значения RMSEP уже дают достойную индикацию. Тем не менее, я также хотел бы основывать свое решение на статистике PRESS (прогнозируемая остаточная сумма квадратов) в соответствии с различными исследованиями, сопоставимыми с тем, которое я провожу. Короче говоря, я хотел бы извлечь статистику PRESS для каждой модели PLS с n компонентами.
Я просмотрел документацию пакета pls и через Интернет, но, к сожалению, не смог найти ответ. Если здесь есть кто-нибудь, кто мог бы помочь мне в правильном направлении, это было бы очень признательно!
1 ответ
Вы можете найти значения ПРЕСС в mvr
объект.
refl.pls$validation$PRESS
Вы можете увидеть это либо, исследуя объект непосредственно с str
или внимательно изучив документацию. Вы заметите, если вы посмотрите на ?mvr
вы увидите следующее:
validation if validation was requested, the results of the
cross-validation. See mvrCv for details.
Проверка действительно была запрошена, поэтому мы следуем этому ?mvrCv
где вы найдете:
PRESS a matrix of PRESS values for models with 1, ...,
ncomp components. Each row corresponds to one response variable.