> 50K 변수를 사용하여 올가미 또는 능선 회귀에서 수축 매개 변수를 추정하는 방법은 무엇입니까?


36

변수가 50,000 개 이상인 모델에 올가미 또는 능선 회귀를 사용하고 싶습니다. R의 소프트웨어 패키지를 사용하고 싶습니다. 수축 매개 변수 ( )를 어떻게 추정 할 수 있습니까?λ

편집 :

여기에 내가 지적한 요점이있다 :

set.seed (123)
Y <- runif (1000)
Xv <- sample(c(1,0), size= 1000*1000,  replace = T)
X <- matrix(Xv, nrow = 1000, ncol = 1000)

mydf <- data.frame(Y, X)

require(MASS)
lm.ridge(Y ~ ., mydf)

plot(lm.ridge(Y ~ ., mydf,
              lambda = seq(0,0.1,0.001)))

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

내 질문은 : 어떤 가 내 모델에 가장 적합한 지 어떻게 알 수 있습니까?λ


3
평활화 파라미터는 통계적으로 추정 할 수 없지만, 예를 들어 교차 검증을 사용하여 표본 외 적합을 최대화하기 위해 선택되어 사용됩니다. LASSO와 R의 Ridge Regression에 대한 표준 패키지에는이를위한 기능이 내장되어 있다고 생각합니다.
매크로

4
동의하지 않습니다-혼합 모델 접근법을 사용하여 스무딩 매개 변수를 추정 할 수 있습니다. Reml 방법은 계층 적 베이 방법과 같이 존재합니다. 값 비싼 교차 검증이 필요하지 않습니다.
chanceislogic

1
@probabilityislogic 정보를 주셔서 감사합니다. 스크립트에 대한 자세한 내용이 없다면 reml을 사용하여이를 수행하는 방법이 거의 없습니다.
John

2
능선 회귀 분석의 경우 일회성 교차 검증은 기본적으로 무료이며 (Allen 's PRESS 통계)이 방법이 합리적으로 좋은 방법이라는 것을 알았습니다. 그러나 기능이 거의 모든 기능을 불안정하게 사용할 수 있으며 매개 변수와 정규화 매개 변수를 능가하는 완전히 베이지안 접근 방식 이보다 신뢰할 수있는 솔루션 일 가능성이 높습니다 (확률 학이 제안한 것처럼). 베이지안 방법이 마음에 들지 않으면 배깅을 사용하고 매번 람다를 다시 추정하십시오.
Dikran Marsupial

2
@Macro-(18 개월 후에는 답변이 없습니다). 혼합 모형 접근법에는 에만 의존 하지만 에는 의존 하지 않는 두 개의 추가 항이 있습니다. 이들은 및여기서 는 베타 수이고 X는 예측 행렬입니다. 첫 번째 항은 에서 유래합니다. 여기서 는 오차 분산입니다. 두 번째 용어는 에 꽂을 때 불확실성을 설명하기위한 REML 수정 입니다. λβklog(λ)log|XTX+λI|kβN(0,σ2λ1)σ2β=β^
probabilityislogic

답변:


25

cv.glmnetR 패키지 glmnet 의 함수 는 불평형 회귀 문제에 사용되는 값 의 그리드에서 자동 교차 검증을 수행합니다 . 특히 올가미의 경우. glmnet 패키지는 및 벌칙 의 조합 일반적인 탄력적 네트 페널티를 지원합니다 . 버전 1.7.3 기준. 매개 변수를 0 으로하는 패키지 는 릿지 회귀를 제공합니다 (최소한이 기능은 최근까지 문서화되지 않았습니다).λ112α

교차 검증은 각 에 대해 예상되는 일반화 오차의 추정치 이며 는이 추정치의 최소화기로 현명하게 선택 될 수 있습니다. 이 함수는 의 두 값을 반환합니다 . 최소화 기 및 항상 더 큰는 예측 된 일반화 오차 측면에서 성능이 최소의 하나의 표준 오차 내에있는 덜 복잡한 모델을 생성 하는 휴리스틱 선택입니다 . glmnet 패키지에서 일반화 오류를 측정하기위한 다양한 손실 기능을 선택할 수 있습니다. 인수 는 손실 함수를 지정합니다.λλcv.glmnetλlambda.minlambda.1seλtype.measure

대안 적으로, R 패키지 mgcv 는 페널티 파라미터의 자동 선택을 포함하는 2 차 벌칙 화에 대한 광범위한 가능성을 포함한다. 구현 된 방법에는 의견에서 언급 한 바와 같이 일반화 교차 검증 및 REML이 포함됩니다. 자세한 내용은 패키지 저자 책 : Wood, SN (2006) 일반화 추가 모델 : R, CRC 소개 에서 찾을 수 있습니다 .


1
당신은 아마 추가 할 수 있습니다 그 cv.glmnet반환이 개 값 , 및 ( "하나의 표준 오류"규칙). λlambda.minlambda.1se
chl

@chl, 제안 해 주셔서 감사합니다. 나는 그것을 추가했을 것입니다.
NRH

15

이 답변은 MATLAB에만 해당되지만 기본 개념은 R에 익숙한 것과 매우 유사해야합니다.

MATLAB의 경우 교차 검증이 활성화 된 상태에서 올가미를 실행할 수 있습니다.

그렇게하면, 올가미 함수는 두 가지 중요한 파라미터 값을보고합니다

  1. 교차 검증 된 평균 제곱 오차를 최소화하는 람다 값
  2. CVMSE가 최소의 하나의 표준 오차 내에있는 수축량이 가장 큰 람다 값입니다.

람다와 CVMSE의 관계를 검사하는 데 사용할 수있는 멋진 작은 차트도 있습니다.

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

일반적으로 파란색 선과 녹색 선 사이에있는 람다 값을 선택합니다.

다음 블로그 게시물에는 몇 가지 예제를 기반으로 한 데모 코드가 포함되어 있습니다.

Tibshirani, R. (1996). 올가미를 통한 회귀 수축 및 선택. J. 로얄. 통계 학자. Soc B., Vol. 58, 1 번, 267-288 페이지).

http://blogs.mathworks.com/loren/2011/11/29/subset-selection-and-regularization-part-2/


10

효과적인 자유도를 가진 AIC를 사용하는 효과적인 AIC를 사용하여 성공을 거두었습니다. 효과적인 df에 대해서는 Gray JASA 87 : 942 1992를 참조하십시오. 이는 선형 및 로지스틱 모델 의 R 패키지 에서 페널티에 적용됩니다. 이 기능은 효과적인 AIC를 최적화하는 수축 계수를 해결하는 데 사용할 수 있습니다. 차등 수축을 수행하는 방법 (예 : 상호 작용에 대한 더 많은 수축)을 보여주는 사례 연구는 Med 17 : 909, 1998의 Harrell et al Stat입니다.L2rmsrms pentrace


매우 흥미로운 답변 인 것 같습니다. 조금 더 자세히 설명 하시겠습니까?
Yair Daon

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.