Sto lavorando a un progetto che mostrerebbe la potenziale influenza di un gruppo di eventi su un risultato. Sto usando il pacchetto glmnet(), in particolare usando la funzione di Poisson. Qui è il mio codice:Differenza tra glmnet() e cv.glmnet() in R?
# de <- data imported from sql connection
x <- model.matrix(~.,data = de[,2:7])
y <- (de[,1])
reg <- cv.glmnet(x,y, family = "poisson", alpha = 1)
reg1 <- glmnet(x,y, family = "poisson", alpha = 1)
**Co <- coef(?reg or reg1?,s=???)**
summ <- summary(Co)
c <- data.frame(Name= rownames(Co)[summ$i],
Lambda= summ$x)
c2 <- c[with(c, order(-Lambda)), ]
L'inizio importa una grande quantità di dati dal mio database in SQL. Quindi lo metto in formato matrice e separo la risposta dai predittori.
Questo è il punto in cui sono confuso: non riesco a capire esattamente quale sia la differenza tra la funzione glmnet() e la funzione cv.glmnet(). Mi rendo conto che la funzione cv.glmnet() è una cross-validation k-fold di glmnet(), ma cosa significa esattamente in termini pratici? Forniscono lo stesso valore per lambda, ma voglio essere sicuro che non manchi qualcosa di importante sulla differenza tra i due.
Non sono sicuro del motivo per cui funziona correttamente quando si specifica alpha = 1 (presumibilmente il valore predefinito), ma non se lo lascio fuori?
Grazie in anticipo!
Prova a guardare 'trama (reg)'. – Roland
** Non fare mai affidamento sulla sequenza lambda predefinita di glmnet! ** Problema notorio. Fornisci sempre la tua sequenza. Quindi ottieni il valore lambda ottimale in seguito da 'fit $ lambda.min' e usalo con il parametro' s = lambda.min' in tutte le chiamate a 'predichi()', 'coef()' ecc. – smci
@smci perché no usando lambda.1se? Esattamente questo è usato da prevedere() – Tonja