Estoy tratando de ver si elegir la regresión de cresta , LASSO , la regresión de componentes principales (PCR) o los mínimos cuadrados parciales (PLS) en una situación en la que hay un gran número de variables / características ( ) y un menor número de muestras ( ), y mi objetivo es la predicción.
Este es mi entendimiento:
La regresión de cresta reduce los coeficientes de regresión, pero usa todos los coeficientes sin convertirlos en.
LASSO también reduce los coeficientes, pero también los pone a, lo que significa que también puede hacer una selección de variables.
La regresión del componente principal trunca los componentes de modo que vuelve menor que ; descartará los componentes .
El mínimo cuadrado parcial también construye un conjunto de combinaciones lineales de las entradas para la regresión, pero a diferencia de la PCR, utiliza (además de ) para la reducción de la dimensionalidad. La principal diferencia práctica entre la regresión de PCR y PLS es que la PCR a menudo necesita más componentes que PLS para lograr el mismo error de predicción ( ver aquí ).X
Considere los siguientes datos ficticios (los datos reales con los que estoy tratando de trabajar son similares):
#random population of 200 subjects with 1000 variables
M <- matrix(rep(0,200*100),200,1000)
for (i in 1:200) {
set.seed(i)
M[i,] <- ifelse(runif(1000)<0.5,-1,1)
}
rownames(M) <- 1:200
#random yvars
set.seed(1234)
u <- rnorm(1000)
g <- as.vector(crossprod(t(M),u))
h2 <- 0.5
set.seed(234)
y <- g + rnorm(200,mean=0,sd=sqrt((1-h2)/h2*var(g)))
myd <- data.frame(y=y, M)
Implementación de cuatro métodos:
require(glmnet)
# LASSO
fit1=glmnet(M,y, family="gaussian", alpha=1)
# Ridge
fit1=glmnet(M,y, family="gaussian", alpha=0)
# PLS
require(pls)
fit3 <- plsr(y ~ ., ncomp = 198, data = myd, validation = "LOO")
# taking 198 components and using leave-one-out cross validation
summary(fit3)
plot(RMSEP(fit3), legendpos = "topright")
# PCR
fit4 <- pcr(y ~ ., ncomp = 198, data = myd, validation = "LOO")
La mejor descripción de los datos es:
, la mayoría de las veces p > 10 n ;
Las variables ( e Y ) se correlacionan entre sí con diferentes grados.
Mi pregunta es qué estrategia puede ser mejor para esta situación. ¿Por qué?