다중 회귀 분석을 수행 할 때 예측 변수를 언제 변환해야합니까?


10

현재 대학원 수준에서 첫 번째 적용된 선형 회귀 클래스를 사용하고 있으며 다중 선형 회귀 분석에서 예측 변수 변환으로 어려움을 겪고 있습니다. 내가 사용하는 텍스트 인 Kutner et al "Applied Linear Statistical Models"는 내가 가진 질문을 다루지 않는 것 같습니다. (여러 예측 변수를 변환하기위한 Box-Cox 방법이 있음을 제안하는 것 제외).

반응 변수와 여러 예측 변수에 직면 할 때 각 예측 변수와 어떤 조건을 충족 시키려고 노력합니까? 나는 우리가 궁극적으로 오차 분산의 불변성과 정규 분포 분포 오차 (적어도 지금까지 배운 기술에서)를 찾고 있음을 이해합니다. 나는 해결책이있는 곳으로 많은 연습이 돌아 왔습니다 y ~ x1 + (1/x2) + log(x3). 하나 이상의 예측 변수가 변환되었습니다.

y ~ x1 및 관련 진단 (잔류, 잔차 대 y, 잔차 대 x 등)을 쉽게 볼 수 있기 때문에 간단한 선형 회귀 분석의 이론적 근거를 이해하고 y ~ log ( x1) 우리의 가정에 더 잘 맞습니다.

많은 예측 변수가있을 때 예측 변수를 변환 할시기를 이해하기에 좋은 곳이 있습니까?

미리 감사드립니다. 매트

답변:


3

나는 당신의 질문에 답한다 : 논리적 인 조건 아닌 변환을 적절하게 만드는 조건이 언제 존재 하는지 어떻게 탐지 하는가 ? 탐색, 특히 그래픽 데이터 탐색을 통해 데이터 분석을 북 엔드하는 것이 항상 좋습니다. (다양한 테스트를 수행 할 수 있지만 여기서는 그래픽 EDA에 중점을 둘 것입니다.)

각 변수의 일 변량 분포에 대한 초기 개요는 커널 밀도 도표가 히스토그램보다 낫습니다. 여러 변수를 사용하면 산점도 행렬이 편리 할 수 ​​있습니다. Lowess는 시작시 항상 권장됩니다. 이렇게하면 관계가 대략 선형인지 여부를 신속하고 불쾌하게 확인할 수 있습니다. John Fox의 자동차 패키지는 다음과 같이 유용하게 결합됩니다.

library(car)
scatterplot.matrix(data)

변수를 열로 사용하십시오. 변수가 많은 경우 개별 도표가 작을 수 있습니다. 플롯 창을 최대화하면 산점도는 개별적으로 검사 할 플롯을 골라 낼 수있을 정도로 커야하며 단일 플롯을 만들어야합니다. 예 :

windows()
plot(density(X[,3]))
rug(x[,3])
windows()
plot(x[,3], y)
lines(lowess(y~X[,3]))

다중 회귀 모델을 피팅 한 후에는 간단한 선형 회귀 분석과 마찬가지로 데이터를 플로팅하고 확인해야합니다. 잔차에 대한 QQ 도표는 필요에 따라 이전과 유사한 절차에 따라 예측 변수에 대해 잔차의 산점도 행렬을 수행 할 수 있습니다.

windows()
qq.plot(model$residuals)
windows()
scatterplot.matrix(cbind(model$residuals,X))

의심스러운 것이 있으면 개별적으로 플롯 abline(h=0)하고 시각적 가이드로을 추가하십시오 . 상호 작용이있는 경우 X [, 1] * X [, 2] 변수를 작성하고 그에 대한 잔차를 조사 할 수 있습니다. 마찬가지로 잔차 대 X [, 3] ^ 2 등의 산점도를 만들 수 있습니다. 잔차 대 x 이외의 다른 유형의 플롯도 비슷하게 수행 할 수 있습니다. 이들은 모두 플롯되지 않은 다른 x 치수를 무시한다는 것을 명심하십시오. 데이터가 그룹화되어있는 경우 (예 : 실험에서) 한계 플롯 외에도 / 대신 부분 플롯을 만들 수 있습니다.

희망이 도움이됩니다.


2
보다 직접적인 접근 방식을 권장합니다. 회귀 스플라인을 사용하여 (1) 선형성을 가정하지 않고 (2) 모든 변환을 동시에 추정 할 수 있도록 예측 변수의 효과를 모델링합니다. 이것은 2 차 회귀와 유사하며 모든 예측 변수에 제곱 항을 추가합니다. 예를 들어 제한된 입방 스플라인을 사용하면 선형으로 작동하지 않는 각 예측 변수에 대해 하나 이상의 비선형 기본 함수를 모델에 추가합니다.
Frank Harrell

@ 프랭크 나는 종종 제한된 큐빅 스플라인을 좋아합니다. 유일한 부정은 해석 중 하나입니다. 약간 까다 롭고 종종 내 고객을 끕니다. 다항식 항 (중심 후)을 추가하는 것이 더 해석하기
쉬운

의견을 보내 주셔서 감사합니다. 대단히 감사합니다. 나는 당신이 현재 나에게 너무 많은 신용을주고 있다고 생각합니다. 내 질문은 실제로 개별 예측 변수에서 변환이 언제 적용 가능한지 알기 위해 무엇을 찾아야 하는지를 중심으로합니다. 예를 들어 예측 변수가 3 개인 엄격하게 가산적인 모델이있는 경우 적절한 변환을 결정하려면 어떻게해야합니까? 다중 예측 변수의 경우, 우리는 일반적으로 단순한 선형 회귀 분석에서 찾고있는 것과 동일한 원리를 위해 노력하고 있습니까? (즉, 유리한 잔차 대 잔차의 예상 플롯 및 qqplot).
Matt

1
피터 회귀 스플라인은 2 차보다 훨씬 복잡하지 않습니다. 어쨌든 연령 ^ 2가 모형에있을 때 연령 계수를 해석하는 방법을 누가 알 수 있습니까? 그리고 센터링이 어디에서 도움이되는지 모르겠습니다. 스플라인이 동료와 같은 그래프와 잘 맞는다고 해석합니다. 매트는 거의 항상 변화가 필요합니다. 비선형 효과에 맞게 충분한 매개 변수를 추정하기위한 샘플 크기의 적합성에 대한 질문 일뿐입니다. 회귀 스플라인은 변환을 직접 추정하고 "데이터 룩"에 대해 벌칙을 적용하는 적절한 신뢰 구간으로 이어집니다. 잔차에는 간접적 인 접근이 필요합니다.
Frank Harrell

죄송합니다. 여기에 게시가 중단됩니다. 용서하십시오. 마지막 주석에 대해 설명하기 위해 : 텍스트에서 겪은 최근 예제에는 결과 모델 y ~ x1 + log (x2)가 있었고 변환에 대한 유일한 메모는 "x2가 로그 변환에 적합하다는 것이 분명했습니다. " 변환이 적용되는 시점에 대한 감각을 향상 시키려고합니다. y ~ x_i 플롯을보고 단일 예측 사례에서와 같이 진행하는 것으로 충분합니까? 다른 무엇을 고려해야합니까?
Matt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.