나는 다음을하고 싶다 :
1) 베타 계수를 얻기위한 OLS 회귀 (벌칙 없음) ; 는 회귀에 사용되는 변수를 나타냅니다. 나는 이것을한다
lm.model = lm(y~ 0 + x)
betas = coefficients(lm.model)
2) 벌칙 용어를 사용한 올가미 회귀 선택 기준은 다음과 같이 주어진 베이지안 정보 기준 (BIC)이어야합니다.
여기서 는 변수 / 회귀 자 수, 는 관측치 수, 는 1) 단계에서 얻은 초기 베타를 나타냅니다. 이 특정 값에 대한 회귀 결과를 원합니다.이 값은 사용 된 회귀 변수마다 다릅니다. 따라서 세 개의 변수가 있으면 세 개의 다른 값 있습니다.
OLS- 올가미 최적화 문제는 다음과 같습니다.
lars 또는 glmnet 패키지로 R에서 어떻게 할 수 있습니까? 람다를 지정하는 방법을 찾을 수 없으며 실행하면 올바른 결과를 얻을 수 있는지 확실하지 않습니다.
lars.model <- lars(x,y,type = "lasso", intercept = FALSE)
predict.lars(lars.model, type="coefficients", mode="lambda")
도움을 주셔서 감사합니다.
최신 정보:
지금 다음 코드를 사용했습니다.
fits.cv = cv.glmnet(x,y,type="mse",penalty.factor = pnlty)
lmin = as.numeric(fits.cv[9]) #lambda.min
fits = glmnet(x,y, alpha=1, intercept=FALSE, penalty.factor = pnlty)
coef = coef(fits, s = lmin)
1 행에서 지정된 페널티 팩터 ( λ j = log ( T )로 교차 검증을 사용합니다.), 각 회귀 변수마다 다릅니다. 2 행은 최소 평균 교차 검증 오류를 제공하는 람다 인 fits.cv의 "lambda.min"을 선택합니다. 3 행은 데이터에대해 올가미 맞춤 ()을 수행합니다. 다시 페널티 팩터λ를사용했습니다. 4행은 2 행에서 선택한"최적"λ에속하는 피팅에서 계수를 추출합니다.alpha=1
이제 최소화 문제의 최적 솔루션을 나타내는 회귀 변수에 대한 베타 계수가 있습니다.
내 이해와 코드가 정확합니까?
$\alpha$