사용하여 로지스틱 회귀 피팅 lme4가 로 끝을
Error in mer_finalize(ans) : Downdated X'X is not positive definite.
이 오류의 가능한 원인은 명백히 순위 부족입니다. 계급 부족이란 무엇이며 어떻게 해결해야합니까?
caret
에는 findLinearCombos
문제가있는 변수를 알려주 는 함수 가 있습니다.
사용하여 로지스틱 회귀 피팅 lme4가 로 끝을
Error in mer_finalize(ans) : Downdated X'X is not positive definite.
이 오류의 가능한 원인은 명백히 순위 부족입니다. 계급 부족이란 무엇이며 어떻게 해결해야합니까?
caret
에는 findLinearCombos
문제가있는 변수를 알려주 는 함수 가 있습니다.
답변:
이 맥락에서 순위 부족은 원하는 모델을 추정하기에 데이터에 정보가 충분하지 않다고 말합니다. 그것은 많은 기원에서 유래합니다. 여기에서는 명시 적으로 로지스틱 회귀 분석이 아닌 상당히 일반적인 상황에서의 모델링에 대해 이야기하지만 모든 것이 여전히 특정 상황에 적용됩니다.
부족한 데이터는 너무 적은 데이터로 인해 발생할 수 있습니다. 일반적으로 n 개 미만의 데이터 포인트로 n 개의 매개 변수를 고유하게 추정 할 수 없습니다. 프로세스에 노이즈가있는 것처럼 결과가 좋지 않은 것처럼 n 포인트 만 필요한 것은 아닙니다. 알고리즘이 최소한의 오류 의미로 모든 데이터를 나타내는 솔루션을 선택할 수 있도록 더 많은 데이터가 필요합니다. 이것이 우리가 최소 제곱 도구를 사용하는 이유입니다. 얼마나 많은 데이터가 필요합니까? 나는 항상 과거의 삶에서 그 질문을 받았으며 그 대답은 당신이 가진 것보다 많거나 얻을 수있는 것보다 많았습니다. :)
때로는 필요한 것보다 많은 데이터가있을 수 있지만 일부 (너무 많은) 점은 복제입니다. 잡음을 줄이는 데 도움이된다는 점에서 복제는 우수하지만 숫자 순위를 높이는 데 도움이되지는 않습니다. 따라서 두 개의 데이터 포인트 만 있다고 가정하십시오. 점을 통해 고유 한 이차 모형을 추정 할 수 없습니다. 각 점에 대해 백만 번의 반복 실험을 수행해도 여전히 효과적으로 한 쌍의 점만있는 것을 통해 직선 이상의 것을 맞출 수는 없습니다. 기본적으로 복제는 정보 내용을 추가하지 않습니다. 정보가있는 위치에서 노이즈를 줄이는 것만으로 충분합니다.
때로는 잘못된 장소에 정보가 있습니다. 예를 들어, 모든 것이 2 차원의 직선에있는 점이면 2 차원 2 차 모형을 적합 할 수 없습니다. 즉, 평면에서 x = y 선을 따라 흩어져있는 점이 있고 표면 z (x, y)에 대한 모형을 적합한다고 가정합니다. 복제 점이 아닌 수십억 개의 점이 있더라도 상수 모델 이상을 지능적으로 추정하기에 충분한 정보가 있습니다. 놀랍게도, 이것은 샘플 데이터에서 본 일반적인 문제입니다. 사용자는 왜 좋은 모델을 만들 수 없는지 궁금합니다. 문제는 그들이 샘플링 한 바로 그 데이터에 내장되어 있습니다.
때로는 단순히 모델의 선택입니다. 이것은 "충분한 데이터"로 볼 수 있지만 다른 쪽에서는 볼 수 있습니다. 복잡한 모델을 추정하려고하지만 데이터가 충분하지 않습니다.
위의 모든 경우에 대한 답은 현재 부족한 프로세스에 대한 정보를 제공 할 장소에서 지능적으로 샘플링 된 더 많은 데이터를 얻는 것입니다. 실험 설계는 시작하기에 좋은 장소입니다.
그러나 좋은 데이터조차도 때로는 수치 적으로 부적절합니다. (좋은 데이터가 나쁜 이유는 무엇입니까?) 여기서 문제는 모델과 관련이있을 수 있습니다. 그것은 단지 단위를 잘못 선택했을뿐입니다. 문제를 해결하기 위해 수행 된 컴퓨터 프로그래밍에서 비롯 될 수 있습니다. (어! 어디서부터 시작해야합니까?)
먼저 단위와 스케일링에 대해 이야기하겠습니다. 한 변수가 다른 변수보다 수십 배 큰 문제를 해결하려고한다고 가정 해보십시오. 예를 들어, 키와 신발 크기에 문제가 있다고 가정 해보십시오. 높이를 나노 미터로 측정하겠습니다. 제 높이는 약 1,78 억 (1.78e9) 나노 미터입니다. 물론 신발 크기를 킬로 파섹 단위로 측정하도록 선택하겠습니다. 따라서 9.14e-21 킬로 파섹입니다. 회귀 모델링을 수행 할 때 선형 회귀는 선형 선형 대수에 관한 것이며, 여기에는 선형 변수 조합이 포함됩니다. 여기서 문제는이 숫자가 엄청나게 많은 차수 (그리고 같은 단위도 아님)에 의해 다르다는 것입니다. 컴퓨터 프로그램이 컴퓨터가 너무 많은 차수의 차수를 더하거나 빼려고 할 때 (배정 밀도의 경우) 수학이 실패합니다 번호,
트릭은 일반적으로 공통 단위를 사용하는 것이지만 일부 문제에서는 변수가 너무 큰 차수로 변할 때 문제가됩니다. 더 중요한 것은 숫자의 크기를 비슷하게 조정하는 것입니다.
다음으로 큰 숫자와 그 숫자의 작은 변형에 문제가있을 수 있습니다. 따라서 입력이 모두 [1,2] 간격에있는 데이터를 사용하여 중간 정도의 다항식 모델을 작성한다고 가정 해보십시오. 1 또는 2 정도의 제곱, 큐빙 등의 숫자는 배정도 산술 작업시 아무런 문제가 없습니다. 또는 모든 숫자에 1e12를 추가하십시오. 이론적으로 수학은 이것을 허용합니다. 우리가하는 모든 것은 x 축에 구축 한 다항식 모델을 이동시키는 것입니다. 모양은 동일하지만 1e12에서 오른쪽으로 변환됩니다. 실제로 선형 대수학은 계급 부족 문제로 인해 비참하게 실패합니다. 데이터를 번역하는 것 외에는 아무것도하지 않았지만 갑자기 특이 행렬이 나타납니다.
일반적으로 작성된 의견은 "데이터를 중앙에 배치하고 확장"하는 제안입니다. 실제로 이것은 평균이 거의 0에 가깝고 표준 편차가 대략 1이되도록 데이터를 이동 및 스케일링한다고합니다. 이는 대부분의 다항식 모델의 컨디셔닝을 크게 개선하여 순위 부족 문제를 줄입니다.
계급 부족의 다른 이유가 있습니다. 경우에 따라 모델에 직접 내장되어 있습니다. 예를 들어 함수의 파생을 제공한다고 가정하면 함수 자체를 고유하게 유추 할 수 있습니까? 물론, 적분에는 일정한 적분이 포함되므로 일반적으로 어떤 시점에서 함수의 가치에 대한 지식으로 유추되는 알 수없는 매개 변수입니다. 실제로 이것은 때때로 시스템의 특이성이 연구중인 시스템의 기본 특성에서 파생되는 추정 문제에서도 발생합니다.
나는 선형 시스템에서 계급 부족에 대한 많은 이유 중 몇 가지를 분명히 배제했으며, 나는 너무 오랫동안 애무했다. 바라건대 내가 다루는 내용을 간단한 용어로 설명하고 문제를 완화 할 수있는 방법이 있었으면 좋겠다.
행렬의 순위를 정의하려면 선형 대수에 대한 훌륭한 교과서를 참조하거나 Wikipedia 페이지를 참조하십시오 .
행렬 경우 전체 랭크 것으로 알려져 , 그 열이 서로 선형 조합이 아니다. 이 경우, 행렬 는 양의 유한 한 값이므로 역 이 있음을 의미합니다 .
가 전체 순위가 아닌 경우 열 중 하나는 다른 열의 선형 조합이라는 의미에서 다른 열에 의해 완전히 설명됩니다. 간단한 예는 열이 중복 된 경우입니다. 만약 0-1 변수를 가지며, 컬럼은 0 또는 만 1.이 경우 이루어져 경우도 발생할 수 있으며, 행렬의 계수 보다 작은 및 어떤 역이 없다.
로지스틱 회귀를 포함한 많은 회귀 문제의 해결 방법에는 계산 중간 이 포함되므로 모형의 모수를 추정하는 것은 불가능합니다. 호기심, 당신은 확인하실 수 있습니다 여기에 이 용어는 다중 선형 회귀 식에 참여하는 방법.
그것은 절대 순위 부족 때문이었습니다. 그러나 @woodchips에 의해 자세히 설명 된 것처럼 행렬 가 "거의"전체 순위가 아닌 경우 문제가 발생하는 경우가 있습니다. 이 문제는 일반적으로 다중 공선 성 이라고합니다 . 이 문제는 매우 일반적입니다, 당신은 더 많은 관련 게시물에 대처하는 방법을 찾을 수 있습니다 여기에 와 있다 .
user974의 답변은 모델링 관점에서 환상적이며 gui11aume의 답변은 수학 관점에서 환상적입니다. 혼합 모델링 관점, 특히 GLMM ( Generalized Mixed Modeling) 관점 에서 엄격하게 이전 답변을 구체화하고 싶습니다 . 보시다시피 환상적인 패키지 에있는 R 함수 를 참조했습니다 . 또한 로지스틱 회귀 모델에 적합하다고 말합니다.mer_finalize
lme4
이러한 유형의 수치 알고리즘 으로 인해 많은 문제가 발생합니다. 고정 효과의 모델 매트릭스의 매트릭스 구조의 문제는 user974가 암시 한 것처럼 확실히 고려할 가치가 있습니다. 그러나이 평가하는 것은 매우 쉽습니다, 단순히 계산 model.matrix
당신의 formula=
및 data=
모델에 인수를하고 사용하여 결정을 det
기능. 그러나 랜덤 효과는 해석, 수치 추정 루틴 및 고정 효과 (일반적으로 "일반"회귀 모델에서 회귀 계수라고 생각하는) 에 대한 추론을 크게 복잡하게합니다 .
가장 단순한 경우에 임의의 절편 모델 만 적합하다고 가정합니다. 그런 다음 기본적으로 수천 개의 측정되지 않은 이질성 소스가 클러스터 내에서 반복적으로 측정되는 것으로 간주됩니다. "절대"절편을 추정하지만 군집 별 절편에 평균 분포가 0 인 것으로 가정하여 이질성을 설명합니다. 절편은 수렴이 달성 될 때까지 (로그 가능성 또는 근사치가 최대화 될 때까지) 반복적으로 추정되고 모델 효과를 업데이트하는 데 사용됩니다. 혼합 모형은 구상하기가 매우 쉽지만 수학적으로 가능성은 매우 복잡하며 특이점, 국소 최소 점 및 경계점 (홀수 비율 = 0 또는 무한대)의 문제가 발생하기 쉽습니다. 혼합 모형에는 표준 GLM과 같은 이차 가능성이 없습니다.
불행히도 Venerables와 Ripley는 귀하와 같은 수렴 오류 진단에 많은 투자를하지 않았습니다. 그러한 메시지로 이어지는 수많은 가능한 오류를 추측하는 것은 실제로 불가능합니다. 그런 다음 아래에서 사용하는 진단 유형을 고려하십시오.
또는 몇 가지 다른 모델링 접근법을 고려할 수 있습니다.