λ로그( λ )∑나는| β나는|
이를 위해 다음과 같은 상관 및 비 상관 데이터를 만들었습니다.
x_uncorr <- matrix(runif(30000), nrow=10000)
y_uncorr <- 1 + 2*x_uncorr[,1] - x_uncorr[,2] + .5*x_uncorr[,3]
sigma <- matrix(c( 1, -.5, 0,
-.5, 1, -.5,
0, -.5, 1), nrow=3, byrow=TRUE
)
x_corr <- x_uncorr %*% sqrtm(sigma)
y_corr <- y_uncorr <- 1 + 2*x_corr[,1] - x_corr[,2] + .5*x_corr[,3]
데이터 x_uncorr
에 관련이없는 열이 있습니다
> round(cor(x_uncorr), 2)
[,1] [,2] [,3]
[1,] 1.00 0.01 0.00
[2,] 0.01 1.00 -0.01
[3,] 0.00 -0.01 1.00
동안 x_corr
열 사이에 미리 설정된 상관 관계가
> round(cor(x_corr), 2)
[,1] [,2] [,3]
[1,] 1.00 -0.49 0.00
[2,] -0.49 1.00 -0.51
[3,] 0.00 -0.51 1.00
이제 두 경우 모두에 대한 올가미 플롯을 살펴 보겠습니다. 먼저 상관되지 않은 데이터
gnet_uncorr <- glmnet(x_uncorr, y_uncorr)
plot(gnet_uncorr)
몇 가지 특징
- 예측 변수는 실제 선형 회귀 계수의 크기 순서대로 모형에 들어갑니다.
- ∑나는| β나는|∑나는| β나는|
- 새 예측 변수가 모형에 입력되면 모델에 이미있는 모든 예측 변수의 계수 경로 기울기에 영향을줍니다. 예를 들어, 두 번째 예측 변수가 모형에 진입하면 첫 번째 계수 경로의 기울기가 반으로 줄어 듭니다. 세 번째 예측 변수가 모형에 들어갈 때 계수 경로의 기울기는 원래 값의 1/3입니다.
이것들은 상관없는 데이터로 올가미 회귀에 적용되는 일반적인 사실이며 모두 손으로 증명하거나 (좋은 운동!) 문헌에서 찾을 수 있습니다.
이제 상관 된 데이터를 수행 할 수 있습니다
gnet_corr <- glmnet(x_corr, y_corr)
plot(gnet_corr)
이 플롯과 관련이없는 경우를 비교하여 읽을 수 있습니다.
- 제 1 및 제 2 예측 자 경로는 상관되어 있지만, 제 3 예측자가 모형에 진입 할 때까지 상관되지 않은 경우와 동일한 구조를 갖는다. 이것은 두 예측 변수 사례의 특별한 기능입니다. 관심이 있다면 다른 대답으로 설명 할 수 있습니다. 현재 토론에서 조금 멀리 떨어져 있습니다.
- ∑ | β나는|
이제 자동차 데이터 세트에서 플롯을보고 흥미로운 것들을 읽어 보겠습니다 (이 토론을 읽기 쉽도록 플롯을 재현했습니다).
경고 한마디 : 나는 곡선이 표준화 된 계수를 보여 준다는 가정에 근거하여 다음과 같은 분석을 썼다 . 표준화되지 않은 계수는 차원이없고 비교할 수 없으므로 예측 중요성 측면에서 결론을 도출 할 수 없습니다. 다음 분석이 유효하려면 그림이 표준화 된 계수 인 척하고 표준화 된 계수 경로에 대한 자체 분석을 수행하십시오.
- 당신이 말하는
wt
것처럼 , 예측 자는 매우 중요해 보입니다. 모델에 먼저 들어가고 최종 값으로 천천히 꾸준히 강하합니다. 약간의 울퉁불퉁 한 주행을 만드는 몇 가지 상관 관계가 있으며, am
특히 들어갈 때 과감한 효과가있는 것으로 보입니다.
am
또한 중요합니다. 나중에 와서 폭력적인 방식으로 wt
경사에 영향을 미치기 때문에 와 관련이 wt
있습니다. 또한과 상관 관계 carb
와 qsec
그 입력 할 때 우리가 경사의 예측 연화가 표시되지 않기 때문에. 이 4 개의 변수가 입력 된 후에는 상관 관계가없는 패턴이 보이 므로 결국 모든 예측 변수와 상관이없는 것 같습니다.
- x 축에서 약 2.25에 무언가가 들어가지만 경로 자체는 알 수 없으므로
cyl
및 wt
매개 변수에 미치는 영향으로 만 감지 할 수 있습니다 .
cyl
꽤 매력적입니다. 두 번째로 들어가므로 작은 모델에 중요합니다. 다른 변수, 특히 am
입력 후에는 더 이상 중요하지 않으며 추세가 반전되어 결국 완전히 제거됩니다. cyl
프로세스의 끝에서 입력되는 변수에 의해 그 효과 가 완전히 포착되는 것처럼 보입니다 . 를 사용하는 것이 더 적합한 지 cyl
또는 보완적인 변수 그룹 을 사용하는 것이 실제로는 바이어스 편차 트레이드 오프에 달려 있습니다. 최종 모델에 그룹을두면 분산이 크게 증가하지만 더 낮은 바이어스가이를 보완 할 수 있습니다!
그것은이 음모에서 정보를 읽는 법을 배우는 작은 소개입니다. 나는 그들이 재미 있다고 생각한다!
훌륭한 분석에 감사드립니다. 간단히 말하면 wt, am 및 cyl이 mpg의 가장 중요한 세 가지 예측 변수라고 할 수 있습니다. 또한 예측을위한 모델을 작성하려는 경우 wt, am 및 cyl? 또는 다른 조합. 또한 분석을 위해 최상의 람다가 필요하지 않은 것 같습니다. 능선 회귀 에서처럼 중요하지 않습니까?
나는의 경우를 말하고 싶지만 wt
와 am
그들이 중요하다, 명확한이다. cyl
훨씬 더 미묘하지만 작은 모델에서는 중요하지만 큰 모델에서는 전혀 관련이 없습니다.
나는 단지 그림에 근거하여 무엇을 포함 시킬지 결정할 수 없으며, 실제로는 당신이하는 일의 맥락에 답해야합니다. 당신은 당신이 다음 세 예측 모델을 원하는 경우 말할 수 있습니다 wt
, am
그리고 cyl
그들은 사물의 웅대 한 계획에 관련된으로, 좋은 선택을하고, 작은 모델에서 적절한 효과 크기를 갖는 결국해야한다. 이것은 작은 세 개의 예측 변수 모델을 원할 외부 이유가 있다고 가정합니다.
사실,이 유형의 분석은 전체 람다 스펙트럼을 살펴보고 다양한 모델 복잡성에 대한 관계를 억제 할 수 있습니다. 즉, 최종 모델의 경우 최적의 람다 튜닝이 매우 중요하다고 생각합니다. 다른 제약 조건이 없으면 교차 유효성 검사를 사용 하여이 스펙트럼에서 가장 예측 가능한 람다가 어디에 있는지 찾은 다음 해당 람다를 사용하여 최종 모델 및 최종 분석합니다.
λ
다른 한편으로, 때로는 모델이 얼마나 복잡 할 수 있는지 (구현 비용, 레거시 시스템, 설명 적 미니멀리즘, 비즈니스 해석 성, 미학적 가부장제)에 대한 외부의 제약이 있으며 이러한 종류의 검사는 데이터의 형태를 이해하는 데 실제로 도움이 될 수 있습니다. 최적의 모형보다 작은 모형을 선택하여 장단점을 조정하십시오.
-1
에서glmnet(as.matrix(mtcars[-1]), mtcars[,1])
.