Разница между пакетами rqPen и Quantreg в R

Я строю модель квантильной регрессии + штраф LASSO для данных о жилье в Бостоне в R. Я нашел 2 пакета, которые могут построить такие модели: rqPen и quantreg. rqPen реализует процесс перекрестной проверки для настройки лямбда-параметра LASSO, поэтому я решил использовать этот. Я рассмотрел 100 различных лямбда-значений, автоматически выбранных алгоритмом, и 10 раз:

library(rqPen)
library(mlbench)
data("BostonHousing")
help(BostonHousing)
x_boston <- data.matrix(BostonHousing[,-14])
y_boston <- BostonHousing[,14]
cv_m1_boston <- cv.rq.pen(x_boston,y_boston, penalty="LASSO", nlambda=100, nfolds=10, tau=.5, cvFunc="AE")

Результаты CV показывают, что наименьшая абсолютная ошибка 4,2 достигается с лямбда-значением 0,46. Эта модель рассматривает только предикторы "zn", "tax", "b" и "lstat" и отправляет в ноль коэффициенты, связанные с остальными предикторами.

m1_boston <- rq.lasso.fit(x_boston[i_train,], y_boston[i_train], tau=0.5, lambda=0.46)

Coefficients:
intercept         crim           zn        indus         chas          nox           rm          age          dis          rad 
27.175724364  0.000000000  0.025560221  0.000000000  0.000000000  0.000000000  0.000000000  0.000000000  0.000000000  0.000000000 
        tax      ptratio            b        lstat 
-0.008151729  0.000000000  0.007577458 -0.495927958 

Я решил построить ту же модель, используя другой пакет, пакет Quantreg, но сохранив значение лямбды. Я ожидал, что модели из двух пакетов будут не совсем одинаковыми, но схожими с точки зрения предикторов, включенных в модели.

library(quantreg)
m2_boston <- rq(medv~., data=BostonHousing[i_train,], tau=0.5,method = "lasso", lambda=0.46)

И я обнаружил, что в этой модели использовались все предикторы, поэтому она полностью отличалась от первой.

Coefficients:
(Intercept)         crim           zn        indus        chas1          nox           rm          age          dis          rad 
15.528274036 -0.128622834  0.038896192  0.007109711  1.385725245 -7.221209356  5.144134214 -0.035033485 -1.075032872  0.165388801 
        tax      ptratio            b        lstat 
-0.010579964 -0.765578313  0.012533729 -0.283032080 

Я делаю что-то неправильно? сбой пакета rqPen в вычислениях?

0 ответов

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