예측 모델링에서 너무 많은 변수에 압도 당했습니까?회귀 문제에서 우리는 후보 추정 자의 매우 큰 집합 일 수있는 예측 변수 세트를 선택하는 경우가 종종 있습니다. 모델을 만들 때 정확한 예측을 산출 할 수있는 의미있는 집합의 예측자를 찾고자합니다. 순방향 선택 및 모든 하위 집합 회귀와 같은 고전적 방법이 항상이 목표를 만족시키는 것은 아닙니다.
Least Absolute Shrinkage and Selection Operator (LASSO) 및 Elastic Net과 같은 최소 회귀 회귀 (LARS) 및 불이행 회귀 분석 방법은 변수 선택에있어보다 새롭고 유망한 방법입니다. R 패키지 "lars"와 "elasticnet"은 이러한 새로운 기술을 적용하기위한 도구를 제공합니다. 패키지에 포함 된 문서는 메소드 자체에 대해 더 많이 배우기위한 좋은 출발점입니다. 새로운 R 통합 기능 사용 JMP 9 이 패키지를 호출하기 위해 결과를 표시하고 그래프를 작성할 수 있습니다. JMP . 체크 아웃 처벌 된 회귀 분석 추가 기능 (액세스 및 다운로드시 무료 SAS 로그인 필요).
불량 회귀 분석 추가 기능을 설치하면 이러한 모델에 맞는 세 가지 도구가 제공됩니다. "R Add-ins"제목 아래에 나타납니다. "LASSO with cross-validation"은 교차 유효성 검사를 사용하여 LASSO 튜닝 매개 변수를 선택하고 튜닝 매개 변수를 조정할 때 매개 변수 추정치가 어떻게 변경되는지 볼 수있게합니다. "처벌 회귀 분석법"도구를 사용하면 LASSO, LARS 및 Forward Stagewise 솔루션을 비교할 수 있습니다. 이 세 가지 방법의 결과는 때로 거의 동일합니다. 마지막으로, "교차 유효성 검사가 포함 된 Elastic Net"은 Elastic Net 솔루션을 플롯하고 교차 유효성 검사를 사용하여 최상의 조합 매개 변수 조합을 선택합니다. Elastic Net에는 두 가지 튜닝 매개 변수가 있기 때문에 까다로운 편이지만 튜닝 매개 변수의 함수로 솔루션을 변경하는 것이 매우 유용하다는 것을 알게되었습니다.
이제 교차 검증을 통해 LASSO를 사용하는 예를 살펴 보겠습니다. "lars"패키지에 포함 된 당뇨병 데이터 세트를 사용하여 아래 스크린 샷에서 결과를 얻습니다. 이 데이터를 통해 우리는 연령, 성별, 체질량 지수, 혈압 및 여러 혈청 측정을 사용하여 당뇨병의 진행을 모델링하려고합니다.

그래프는 약간 이상하게 보입니다. 그러나 많은 정보가 포함되어 있습니다. 튜닝 매개 변수의 함수로 매개 변수 추정치가 어떻게 변하는지를 보여줍니다. 슬라이더를 움직여 조정 매개 변수를 늘리면 오른쪽 변수에 대한 매개 변수 추정 보고서가 표시되어 각 변수가 언제 모델에 입력되는지 확인할 수 있습니다.
체질량 지수는 모델을 입력하는 첫 번째 변수입니다. 우리는 또한 연령이 입력 할 수있는 마지막 변수임을 알았습니다. 이는 나이가 당뇨병 진행에 중요한 역할을하지 않을 수도 있음을 나타냅니다. 추가 기능을 사용하면 교차 유효성 검사 결과를 볼 수 있으므로 튜닝 매개 변수를 선택할 때 도움이됩니다. 튜닝 파라미터가 만족되면 예측 된 값을 데이터 테이블에 저장할 수 있습니다.
Clay Barker는 다음과 같이 썼습니다 : Benjamin and Anders : 죄송합니다. 클레이 바커 쓴 :
Benjamin and Anders : 죄송합니다. 문제가 생겨서 죄송합니다. 불행히도이 문제는 정확히 지적하기가 어렵습니다. 추가 기능에서 R을 호출하기 때문에 문제는 R 설치, 호출되는 R 패키지 또는 추가 기능에서 발생할 수 있습니다. 다음은 몇 가지 제안 사항입니다.
1. 데이터 세트에 누락 된 값이 없는지 확인하십시오. 추가 기능이 완전히 기능하는 플랫폼이 아니기 때문에 누락 된 값을 지원할 수 없었습니다. 따라서 추가 기능을 호출하기 전에 누락 된 값을 전가하십시오.
2. # 1과 같은 이유로 추가 기능은 행 상태 (제외 된 행과 같은)를 무시합니다.
삼. 추가 기능은 최소 제곱만 수행하도록 설계되었습니다. 로지스틱 회귀와 비슷한 접근법에 관심이 있다면 penmized generalized linear 모델에 맞추기 위해 glmnet 패키지를 호출하기 위해 R과 비슷한 인터페이스를 구축 할 수 있습니다.
거기에 제안을 가지고 다른 JMP 사용자가 있습니까?
Anders는 다음과 같이 적었습니다. Benjamin과 같은 문제가 있습니다. 거의... Anders 쓴 :
나는 벤자민과 같은 문제가있다. 거의 컴퓨터를 창밖으로 던져 버렸습니다. 이 추가 기능은 나를 위해 작동하지 않습니다. 설상가상으로이 애드 인을 작동시키는 방법에 대한 피 묻은 문서는 없습니다! 로지스틱 회귀를해야하고 많은 변수가 있고 Stepwise를 피하기 때문에 매우 좌절감을 느낍니다.
Gabriel Andraos는 다음과 같이 썼습니다. 친애하는 클레이. 이 맑은 P는 주셔서 감사합니다 ... 가브리엘 안드라오스 쓴 :
친애하는 클레이. 이 명확한 발표에 감사드립니다. 가장 예측 변수를 선택하기 위해 JMP 9.0에서 파티션 플랫폼을 사용하는 것보다이 기법이 더 좋은 방법입니까?
베스트,
Clay Barker는 다음과 같이 적었습니다. 안녕 가브리엘, 아주 좋은 questi입니다. 클레이 바커 쓴 :
안녕 가브리엘, 아주 좋은 질문입니다. 일반적으로 특정 데이터 세트에서 어떤 기술이 더 잘 수행되는지는 말할 수 없습니다. 따라서 두 기법을 모두 시험해보고 결과를 비교하는 것이 좋습니다. LARS 또는 LASSO와 같은 것을 사용하여 예측 모델을 작성하는 잠재적 이점 중 하나는 결과 선형 모델을 해석하기가 더 쉽다는 것입니다.
Benjamin은 다음과 같이 적었습니다. Clay, 이것을 창조해 주셔서 감사합니다. 나는 입을 열었다. 베냐민 쓴 :
점토,
이것을 만들어 주셔서 감사합니다. R과 필수 패키지 (lars와 elasticnet)를 설치했고 R이 lars 명령을 인식했는지 확인했습니다. JMP 9.0.0에서 추가 기능을 볼 수 있으며 적절한 대화 상자가 나타납니다. 그러나 데이터를 선택하고 실행 한 후에는 아무 일도 일어나지 않습니다. 대화 상자가 닫히고 CPU가 아무런 변화가 없음을 확인했습니다. 이미 R을 열어 보았을 때와 열지 않은 상태에서 JMP를 다시 시작한 후에 시도했습니다. 어떤 suggsetions?
감사!
베냐민