Подход к сравнению регрессионных моделей PLS - PullRequest
0 голосов
/ 20 февраля 2019

Я хотел бы сравнить две отрегулированные регрессионные модели PLS.Но я не нашел бы подход к этому.В моем искусственном примере:

#Packages
library(pls)
library(car)

#First simulate some data
set.seed(123)
bands=20
data <- data.frame(matrix(runif(60*bands),ncol=bands))
colnames(data) <- paste0(1:bands)
data$nitrogen <- rpois(60,10)
data$carbon <- rpois(60,10)
data$time <- c(rep(1,30),rep(2,30))
#

#define explanatory variables (x)

spectra1 <- as.matrix(data[1:30,1:20])
spectra2 <- as.matrix(data[31:60,1:20])

#Build PLS model 1
d1<-data[data$time==1,]
mod_pls1 <- plsr(carbon + nitrogen ~ spectra1,
ncomp = 20, data =d1, validation = "LOO", jackknife = TRUE)
#

#Build PLS model 2
d2<-data[data$time==2,]
mod_pls2 <- plsr(carbon + nitrogen ~ spectra2,
ncomp = 20, data =d2, validation = "LOO", jackknife = TRUE)
#

#Comparing PLS model 1 and 2
manova(mod_pls1,mod_pls2)
#

Вывод является ошибкой:

Error in as.data.frame.default(data) : 
  cannot coerce class ""mvr"" to a data.frame

И моим желаемым выводом является значение ap, которое объясняет, является ли mod_pls1 подобным или нет mod_pls2.Пожалуйста, любой участник мог бы помочь мне найти статистическое решение для этого?Спасибо!

...