Регрессия PLS в R: тестирование альтернативных спецификаций моделей

В R я хотел бы проверить спецификацию модели частичного наименьшего квадрата (PLS) m1 по отношению к альтернативе m2 без вложенности, применяя J-критерий Дэвидсона-Маккиннона. Для простого линейного результата Y это работает довольно хорошо, используя оценщик plsr, сопровождаемый командой jtest:

# Libraries and data
library(plsr)
library(plsRglm)  
library(lmtest)
Z <- Cornell # illustration dataset coming with the plsrglm package

# Simple linear model
m1 <- plsr(Z$Y ~ Z$X1 + Z$X2 + Z$X3 + Z$X4 + Z$X5 ,2) # including X1
m2 <- plsr(Z$Y ~ Z$X6 + Z$X2 + Z$X3 + Z$X4 + Z$X5 ,2) # including X6 as alternative
jtest(m1,m2)

Однако, если я использую оценщик обобщенной линейной модели (plsRglm) для учета возможного нелинейного распределения результата, например:

# Generalized Model
m1 <- plsRglm(Z$Y ~ Z$X1 + Z$X2 + Z$X3 + Z$X4 + Z$X5 ,2, modele = "pls-glm-family", family=Gamma(link = "log"), pvals.expli=TRUE)
m2 <- plsRglm(Z$Y ~ Z$X6 + Z$X2 + Z$X3 + Z$X4 + Z$X5 ,2, modele = "pls-glm-family", family=Gamma(link = "log"), pvals.expli=TRUE)    

Я сталкиваюсь с ошибкой при использовании jtest:

> jtest(m1,m2)
Error in terms.default(formula1) : no terms component nor attribute
> 

Кажется, что plsRglm не сохраняет объекты класса "формула", которые может обработать jtest. Кто-нибудь предлагает, как отредактировать мой код, чтобы заставить это работать?

Спасибо!

0 ответов

Другие вопросы по тегам