Why there is no possibility to pass only 1 explanatory variable to model in glmnet
function from glmnet
package when it is possible in glm
function from base?
Code and error are below:
> modelX<-glm( ifelse(train$cliks <1,0,1)~(sparseYY[,40]), family="binomial")
> summary(modelX)
Call:
glm(formula = ifelse(train$cliks < 1, 0, 1) ~ (sparseYY[, 40]),
family = "binomial")
Deviance Residuals:
Min 1Q Median 3Q Max
-0.2076 -0.2076 -0.2076 -0.2076 2.8641
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.82627 0.00823 -464.896 <2e-16 ***
sparseYY[, 40] -0.25844 0.15962 -1.619 0.105
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 146326 on 709677 degrees of freedom
Residual deviance: 146323 on 709676 degrees of freedom
AIC: 146327
Number of Fisher Scoring iterations: 6
> modelY<-glmnet( y =ifelse(train$cliks <1,0,1), x =(sparseYY[,40]), family="binomial" )
Błąd wif (is.null(np) | (np[2] <= 1)) stop("x should be a matrix with 2 or more columns")
x = cbind(sparseYY[, 40], 0)
– Gothenburgglmnet
package implements regularization methods. What would be the purpose of applying LASSO or rigde to fit a model with only one explanatory variable? Why would you want to shrink your one coefficient (ridge) or set it equal to zero (LASSO)? These methods only start to make sense atk >= 2
. – Quevedo