로지스틱 회귀 분석에서 모델 선택 및 모델 성능


9

로지스틱 회귀 분석에서 모델 선택 및 모델 성능에 대한 질문이 있습니다. 세 가지 다른 가설을 기반으로하는 세 가지 모델이 있습니다. 처음 두 모델 (z 및 x로 이름 지정)은 각 모델에서 하나의 설명 변수 만 가지며 세 번째 모델 (w로 이름 지정)은 더 복잡합니다. 나는 w 모델에 대한 변수 선택을 위해 AIC를 사용하고 종속 변수를 가장 잘 설명하는 세 가지 모델 중 어느 것을 비교하기 위해 AIC를 사용하고 있습니다. w 모델의 AIC가 가장 낮으며 모델의 예측 능력에 대한 아이디어를 얻기 위해 해당 모델에 대한 성능 통계를 수행하려고합니다. 내가 아는 것은이 모델이 다른 두 모델보다 낫지 만 그것이 얼마나 좋지는 않다는 것입니다.

모델을 배우기 위해 모든 데이터를 사용했기 때문에 (세 모델을 모두 비교할 수 있도록) 모델 성능을 어떻게 처리해야합니까? 내가 수집 한 것에서 AIC를 사용하여 모델 선택에서 얻은 최종 모델에 대해 k- 폴드 교차 검증을 수행 할 수는 없지만 모든 설명 변수가 포함 된 처음부터 시작해야합니까?이 맞습니까? 나는 그것이 AIC로 선택한 최종 모델이라고 생각합니다. 그것이 얼마나 잘 수행되고 있는지 알고 싶지만 모델이 바이어스 될 수 있도록 모든 데이터에 대해 훈련했다는 것을 알고 있습니다. 따라서 모든 접힘에서 모든 설명 변수로 처음부터 시작해야하는 경우 일부 접힘에 대해 다른 최종 모델을 얻게됩니다. 가장 예측 가능한 검정력을 제공 한 접힘에서 모형을 선택하고이를 비교하기 위해 전체 데이터 세트에 적용 할 수 있습니까? 다른 두 모델 (z 및 x)과 AIC? 아니면 어떻게 작동합니까?

내 질문의 두 번째 부분은 매개 변수 초과에 대한 기본 질문입니다. 156 개의 데이터 포인트가 있고 52는 1이고 나머지는 0입니다. w 모델에 대해 선택할 수있는 설명 변수가 14 개 있습니다. 매개 변수로 인해 모든 것을 포함 할 수는 없다는 것을 알고 있습니다. 관찰 변수 그룹의 10 % 만 관찰해야합니다. 나를 위해 5입니다. 생태학의 질문에 대답하려고합니다. 생태학을 기반으로 의존성을 가장 잘 설명하는 시작 변수를 선택해도됩니까? 또는 시작 설명 변수를 어떻게 선택합니까? 일부 변수를 완전히 제외하는 것이 옳지 않습니다.

그래서 세 가지 질문이 있습니다.

  • 교차 검증으로 전체 데이터 세트에 대해 훈련 된 모델에서 성능을 테스트해도 괜찮습니까?
  • 그렇지 않은 경우 교차 검증을 수행 할 때 최종 모델을 어떻게 선택합니까?
  • 매개 변수를 초과하도록 시작 변수를 어떻게 선택합니까?

지저분한 질문과 무지에 대해 죄송합니다. 비슷한 질문을 받았지만 여전히 약간 혼란스러워합니다. 모든 생각과 제안을 감사하십시오.

답변:


7

모델의 유효성을 검사하기 위해 테스트 데이터 세트를 사용하는 것이 좋습니다. 그러나 자신이 한 일에 정직한 한, 모델이 데이터에서 얼마나 잘 수행했는지를 여전히 말할 수 있습니다. 실제로 할 수없는 것은 다른 데이터 에서이 작업을 잘 수행한다는 것입니다 . 불행히도, 많은 출판 된 기사들은 적어도이 잘못된 개념을 암시합니다.

물어

생태학을 기반으로 의존성을 가장 잘 설명하는 시작 변수를 선택해도 괜찮습니까?

괜찮을뿐만 아니라 자동 구성표보다 낫습니다. 실제로 이들은 최종 변수가 될 수도 있습니다 . 그것은 해당 분야의 지식 범위에 따라 다소 다릅니다. 연구 대상에 대해 잘 모르는 경우보다 탐색적인 접근 방식이 필요할 수 있습니다. 그러나 특정 변수가 모형에 있어야한다고 생각할만한 충분한 이유가 있다면 반드시 넣어야합니다. 그리고 중요하지 않더라도 변수를 그대로 두어야합니다.


1

모델 선택을 수행하려는 경우 체리 피킹 대신 철저한 검색을 수행하고 각 모델에 가중치를 부여하는 것이 좋습니다. 14 개의 변수 만있을 수 있습니다. 16384 개의 다른 모델은 특히 표본 크기가 작기 때문에 엄청나게 크지 않습니다. 또한 다음과 같이 정의 된 정규화 된 가중치를 살펴볼 것입니다.

wm=[lexp(12[AIClAICm])]1

이 가중치는 AIC가 로그 가능성의 두 배 + 베타 수의 두 배 음수라고 가정합니다. 가장 좋은 모델의 무게가1그런 다음 사용하십시오. 그렇지 않으면 총 중량에 가까운 모델의 결과를 평균화해야합니다.1. 일반적으로 발생하는 것은 "핵심"변수 그룹이 항상 포함되어야하며, "핵심이 아닌"세트에 대한 불확실성과 무게가 큰 모델에는 나타나지 않는 중요하지 않은 변수의 세 번째 세트입니다.

AIC를 BIC 또는 다른 페널티 기반 IC로 대체하여 가중치가 사용 된 특정 복잡도 페널티에 얼마나 의존하는지 확인할 수도 있습니다.


가능한 모든 모델에서 AIC를 사용하는 것은 성능에 대해 궁금한 극도로 다양한 프로세스입니다. 일반적으로 광범위하게 말하면, 이것을 변수 선택 문제로 생각하는 것이 아니라 처벌 (수축) 문제로 생각하는 것이 항상 논리적입니다.
Frank Harrell

모델 선택에 극도의 다중성이없는 프로세스가 있습니까? 당신은 거대한 이산 공간을 다루고 있습니다-이것은 항상 많은 수의 비교로 이어집니다. 문제는 모델에 대한 암시 적 선행이 합리적인 것인지 아닌지에 대한 것입니다.
확률

잘 넣어 그러나 나는 대부분의 모델 선택 연습이 불필요하다고 생각합니다 (즉, parsimony는 당신의 친구가 아닙니다).
Frank Harrell

또한 Bayes Factors가 예를 들어 정규 분포 또는 t 분포를 사용할지 여부와 같은 모델 구조 문제에 가장 적합하다고 생각합니다. 공변량 선택에는 쓸모가 없지만 수축에 비해 비효율적입니다.
probabilityislogic

늦은 의견에 대해 죄송하지만 R에서 이것을 계산하는 쉬운 방법을 알고 있습니까? 목록이나 행렬에 AIC : s가 있습니다. 나는 R에 상당히 익숙하지 않으므로 복잡한 함수 작성이 어렵습니다. 감사!
mael

0

"교차 유효성 검사로 전체 데이터 세트에 대해 훈련 된 모델에서 성능을 테스트해도 괜찮습니까?" 아니요, 괜찮다고 생각하지 않습니다. 3 가지 모델 모두를 데이터 세트의 동일한 서브 세트에 맞아야합니다. 그런 다음 교차 검증을 수행하여 어느 것이 더 나은지 확인하십시오.


1
내가 당신을 올바르게 이해한다면 모든 모델에 대해 하나의 훈련과 하나의 테스트 세트 만 사용해야합니까? 그래도 마지막 모델에 5 개의 변수를 사용할 수 있습니까? 아니면 매개 변수가 초과 될 위험이 있습니까? 그리고 하나의 교육 및 테스트 세트로 위험하지 않습니까? 내가 가지고있는 상대적으로 작은 데이터로 분할이 어디에 있는지에 따라 크게 달라 지므로 걱정할 것이 없습니까? 그렇지 않으면 이것이 가장 올바른 방법이라고 생각합니다.
mael

0

교차 검증으로 전체 데이터 세트에 대해 훈련 된 모델에서 성능을 테스트해도 괜찮습니까?

나는 그렇게 생각하지 않는다. 아마도 더 나은 방법은 반복 교차 검증을 사용하여 세 가지 모델 각각을 평가하는 것입니다. 사전 지식을 기반으로 기능을 선택 했으므로 기능 선택에 대해 걱정할 필요가 없습니다. 이 방법을 사용하면 모델의 성능을 평가할 수 있습니다.

그렇지 않은 경우 교차 검증을 수행 할 때 최종 모델을 어떻게 선택합니까?

반복 교차 검증을 사용하여 모델의 성능을 평가 한 후 사용 가능한 모든 데이터를 사용하여 최종 모델을 학습 할 수 있습니다.

매개 변수를 초과하도록 시작 변수를 어떻게 선택합니까?

올바르게 이해하는 경우 : 위 기고자가 제안한대로 해당 영역의 사전 지식을 바탕으로 기능을 추가하거나 교차 검증 내에서 기능 선택을 수행하여 과적 합을 피할 수 있습니다. 최종 모델을 학습 할 때 동일한 데이터 선택 절차가 모든 데이터에 적용됩니다. 이 모델을 사용하여 모델의 일반화 된 성능을보고 할 수 없으며 이는 교차 검증 추정치에서 가져와야합니다.

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