glm을 실행할 때 오류“시스템이 계산적으로 특이하다”


29

glm 추정을 실행하기 위해 튼튼베이스 패키지를 사용하고 있습니다. 그러나 그렇게하면 다음과 같은 오류가 발생합니다.

Error in solve.default(crossprod(X, DiagB * X)/nobs, EEq) : 
  system is computationally singular: reciprocal condition number = 1.66807e-16

이것은 무엇을 의미 / 표시합니까? 어떻게 디버깅 할 수 있습니까?

추신. 답을 구하기 위해 무언가 (공식 / 사양 또는 데이터)가 필요하면 기꺼이 제공해 드리겠습니다.

답변:


26

이는 설계 행렬이 되돌릴 수 없으므로 회귀 모형을 개발하는 데 사용할 수 없음을 의미합니다. 이것은 선형 의존 열, 즉 강하게 상관 된 변수에서 비롯됩니다. 변수의 쌍별 공분산 (또는 상관)을 조사하여 제거 할 수있는 변수가 있는지 조사하십시오. 공분산 (또는 상관) >> 0을 찾고 있습니다. 또는 단계별 단계별 회귀 분석을 사용하여이 변수 선택을 자동화 할 수도 있습니다.

이것은 또한 관측치보다 더 많은 변수를 가지고 있기 때문에 발생할 수 있으며,이 경우 설계 행렬이 전체 순위가 아닐 수 있습니다. 이 문제를 해결하기는 다소 까다 롭지 만 방법이 있습니다. 올가미 회귀 분석은 데이터가 "긴"보다 "더 넓게"잘 작동한다고 생각합니다.

명심하십시오 : 올가미 또는 단계적 선택을 시도하면 다중 선 선형성을 처리하는 것보다 변수 선택 측면에서 훨씬 더 많은 일을합니다.


감사합니다. 두 가지 질문이 있습니다. 1. r에서 어떤 절차를 알고 있습니까?이 절차를 디버깅하는 데 도움이 될까요? 2. glmrob () 대신 glm ()을 사용하여 정확히 동일한 데이터에서 동일한 모델을 실행하면 오류가 발생하지 않습니다. 의미가 있거나 glmrob의 오류를 의미합니다 () 기능?
NK1

2

이 오류에 오랜 시간을 보냈지만이 페이지를 확인하여 해결했습니다.

https://www.kaggle.com/c/house-prices-advanced-regression-techniques/discussion/24586

기본적으로 마우스가 사용하는 방법을 변경할 수 있습니다. ppn을 사용하고 있었고 장바구니로 변경했습니다.


2
답변 텍스트 내에 답변을 포함 시키십시오. 이렇게하면 사람들이 책을 읽을 가능성이 높고 주제가 아닌 너무 짧게 삭제할 가능성이 줄어 듭니다.
Carl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.