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.