LASSO 변수 추적 플롯 해석


15

나는 glmnet패키지를 처음 접했고 결과를 해석하는 방법을 여전히 확신하지 못한다. 누구든지 다음 추적 플롯을 읽도록 도와 줄 수 있습니까?

다음을 실행하여 그래프를 얻었습니다.

library(glmnet)
return <- matrix(ret.ff.zoo[which(index(ret.ff.zoo)==beta.df$date[2]), ])
data   <- matrix(unlist(beta.df[which(beta.df$date==beta.df$date[2]), ][ ,-1]), 
                 ncol=num.factors)
model  <- cv.glmnet(data, return, standardize=TRUE)

op <- par(mfrow=c(1, 2))
plot(model$glmnet.fit, "norm",   label=TRUE)
plot(model$glmnet.fit, "lambda", label=TRUE)
par(op)

여기에 이미지 설명을 입력하십시오

답변:


20

두 플롯에서 각 색상 선은 모델에서 다른 계수로 얻은 값을 나타냅니다. 람다 는 정규화 항 (L1 표준)에 주어진 가중치이므로 람다는 0에 가까울수록 모델의 손실 함수는 OLS 손실 함수에 접근합니다. 이 콘크리트를 만들기 위해 LASSO 손실 함수를 지정할 수있는 한 가지 방법이 있습니다.

β에스에스영형=아르 민 [아르 자형에스에스(β)+λL1- 노름(β)]

따라서 람다가 매우 작은 경우 LASSO 솔루션은 OLS 솔루션에 매우 가까워 야하며 모든 계수가 모형에 있어야합니다. 람다가 커짐에 따라 정규화 항이 더 큰 효과를 나타내며 모형에 더 적은 수의 변수가 표시됩니다 (더 많은 계수가 0을 가지므로).

위에서 언급했듯이 L1 규범 은 LASSO의 정규화 용어입니다. 아마도 그것을 보는 더 좋은 방법은 x 축이 L1 규범이 취할 수 있는 최대 허용 값이라는 것 입니다. 따라서 L1 규범이 작 으면 정규화가 많이 이루어집니다. 따라서 L1 규범 0은 빈 모델을 제공하며 L1 규범을 증가 시키면 계수가 0이 아닌 값을 취하므로 변수가 모델에 "입력"됩니다.

왼쪽의 플롯과 오른쪽의 플롯은 기본적으로 다른 스케일로 동일한 것을 표시합니다.


2
매우 깔끔한 답변, 감사합니다! 위의 그래프, 즉 최종 모델에서 "최상의 예측 변수"를 추론 할 수 있습니까?
Mayou

4
아닙니다. 교차 검증 또는 다른 검증 절차가 필요합니다. L1 규범의 어떤 값 (또는 동등하게 어떤 log (lambda))이 최상의 예측 능력을 가진 모델을 산출하는지 알려줄 것입니다.
JAW

11
가장 강력한 예측 변수를 결정하려는 경우 모형에 일찍 들어가는 변수가 가장 예측적이고 나중에 모형에 들어가는 변수는 덜 중요하다는 증거로 플롯을 해석 할 수 있습니다. "최상의 모델"을 원하는 경우 일반적으로 교차 검증을 통해 찾을 수 있습니다. glmnet 패키지를 사용하여이를 달성하는 일반적인 방법은 stats.stackexchange.com/a/68350/8451 입니다. 나는 강하게 : 당신이 다운로드 무료 ESLII에서 짧은 올가미 장 (3.4.2 및 3.4.3) 읽기 권장 www-stat.stanford.edu/~tibs/ElemStatLearn
데이비드 막스

@David Marx, 음모 상단의 숫자는 무엇을 의미합니까? 교차 검증을 통해 최상의 모델을 선택하는 방법.
jeza

@DavidMarx는 오랜 시간이 지났지 만 다른 궁금한 점이 있다면 그 가중치에서 0으로 평가되지 않은 계수의 수입니다.
Ian Belcher
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.