약 60 개의 예측 변수와 30 개의 관측치가있는 다변량 선형 회귀 모형을 적합 시키려고하기 때문에 p> n 때문에 정규 회귀 분석에 glmnet 패키지를 사용하고 있습니다.
나는 문서와 다른 질문을 겪었지만 여전히 결과를 해석 할 수 없습니다. 여기에는 샘플 코드가 있습니다 (예측 자 20 명과 단순화하기 위해 10 개의 관측치가 있음).
num rows = numobservs 및 num cols = num predictors 및 반응 변수를 나타내는 벡터 y를 가진 행렬 x를 만듭니다.
> x=matrix(rnorm(10*20),10,20)
> y=rnorm(10)
알파를 기본값으로 유지하는 glmnet 모델에 적합합니다 (올가미 패널티의 경우 1).
> fit1=glmnet(x,y)
> print(fit1)
람다 값이 감소함에 따라 다른 예측을 얻는다는 것을 이해합니다 (즉, 페널티)
Call: glmnet(x = x, y = y)
Df %Dev Lambda
[1,] 0 0.00000 0.890700
[2,] 1 0.06159 0.850200
[3,] 1 0.11770 0.811500
[4,] 1 0.16880 0.774600
.
.
.
[96,] 10 0.99740 0.010730
[97,] 10 0.99760 0.010240
[98,] 10 0.99780 0.009775
[99,] 10 0.99800 0.009331
[100,] 10 0.99820 0.008907
이제 베타 값이 예를 들어 glmnet
> predict(fit1,type="coef", s = 0.008907)
21 x 1 sparse Matrix of class "dgCMatrix"
1
(Intercept) -0.08872364
V1 0.23734885
V2 -0.35472137
V3 -0.08088463
V4 .
V5 .
V6 .
V7 0.31127123
V8 .
V9 .
V10 .
V11 0.10636867
V12 .
V13 -0.20328200
V14 -0.77717745
V15 .
V16 -0.25924281
V17 .
V18 .
V19 -0.57989929
V20 -0.22522859
대신에 람다를 선택하면
cv <- cv.glmnet(x,y)
model=glmnet(x,y,lambda=cv$lambda.min)
모든 변수는 (.)입니다.
의심과 질문 :
- 람다를 선택하는 방법에 대해 잘 모르겠습니다.
- 다른 모델에 맞게 비 (.) 변수를 사용해야합니까? 내 경우에는 가능한 한 많은 변수를 유지하고 싶습니다.
- p- 값, 즉 어떤 변수가 반응을 유의하게 예측하는지 어떻게 알 수 있습니까?
통계 지식이 부족하여 죄송합니다. 도움을 주셔서 감사합니다.