Я обнаружил некоторые проблемы при применении метода лассо с разреженной группой с использованием функции cvSGL
для пакета SGL
.
У меня следующие вопросы:
- Взгляд накод для
SGL:::center_scale
, кажется, он не учитывает размер выборки данных.
SGL:::center_scale
#Output
function (X, standardize) {
means <- apply(X, 2, mean)
X <- t(t(X) - means)
X.transform <- list(X.means = means)
if (standardize == TRUE) {
var <- apply(X, 2, function(x) (sqrt(sum(x^2))))
X <- t(t(X)/var)
X.transform$X.scale <- var
}
else {
X.transform$X.scale <- 1
}
return(list(x = X, X.transform = X.transform))
}
Следовательно, стандартное отклонение выборки прогнозируемой переменной измеряется несколько больше.
Правильно ли мое понимание того, что это может привести к чрезмерно большим коэффициентам?
может ли модель оцениваться пакетом SGL с термином перехвата (или постоянным термином)
Пакет SGL
, по-видимому, не обеспечивает функцию оценки путем включения термина перехвата.
В cvFit[["fit"]]
я могу видеть только бета прогнозируемых переменных в соответствии с lambda
, за исключением постоянного члена. Значение cvFit[["fit"]][["intercept"]]
является средним значением переменной y
.
Его можно оценить, добавив 1
к первому столбцу прогнозируемой переменной X
, но в этом случае ожидается возникновение проблем при центрировании и стандартизации прогнозируемых переменных.
ВКроме того, пакет SPG
добавляет штраф ко всем прогнозируемым переменным. Даже если оценка выполняется путем добавления 1
к первому столбцу пояснительной переменной X
, как описано выше, постоянный член можно оценить как 0
.