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.
Другие вопросы по тегам