회귀 분석을위한 Box Cox 변환


9

하나의 예측 변수 (예 : (x, y))로 일부 데이터에 선형 모델을 맞추려고합니다. 데이터는 x의 작은 값에 대해 y 값이 직선에 꼭 맞지만 x 값이 증가함에 따라 y 값이 더욱 변동 적입니다. 다음은 그러한 데이터의 예입니다 (R 코드).

y = c(3.2,3.4,3.5,3.8,4.2,5.5,4.5,6.8,7.4,5.9)
x = seq(1,10,1)

아래 그림과 같이 단순히 선형 맞춤을 수행하는 것보다 데이터에 더 잘 맞는 전력 변환 (박스 콕스?)이 있는지 궁금합니다.

fit = lm(y ~ x)

내가 알기로 Box Cox와 같은 변환의 목적은 더 잘 맞지 않고 모델의 가정을 충족시키는 것입니다. 그것은 더 잘 맞거나 더 잘 맞지 않거나 많은 변화가 없을 수 있지만 가정을 위반하지 않는 것이 될 것입니다.
Peter Flom

비선형 변환은 선형 관계를 비선형으로 만들 것입니다 (때로는 x를 변환하고 수정할 수도 있습니다). 그러나 변환은 곡선을 직선화하고 동시에 이분산성을 감소시킬 수 있습니다 (동일한 변환으로 두 가지를 모두 수행 할 수는 없지만). 해당 데이터의 경우 로그 변환이 다소 도움이됩니다.
Glen_b-복지 주 모니카

4
두 개의 극단적 인 중간 (제 5) 값을 사용하는 , 도시에있어서 stats.stackexchange.com/questions/35711/...은 대수 (파라미터 0 박스 콕스 변환)에 적합 할 것이다 나타내는 선형화 관계. 첫 번째, 여섯 번째 및 마지막 값을 사용하면 역수 (매개 변수 -1)가 양호 함을 나타냅니다. 이것은 0과 -1 사이의 거의 모든 매개 변수가 작동 할 수 있음을 나타냅니다. 얼마나 적은 데이터가 있는지를 감안할 때 그 범위는 놀랍지 않습니다. 어떤 단조 재 발현은 이러한 데이터의 변화를 안정하지 않습니다. y
whuber

답변:


6

R이 설치된 상태로 제공되는 MASS 패키지에는 다음 boxcox()기능을 사용할 수 있습니다. 데이터를 읽은 후 다음을 수행하십시오.

library(MASS)
boxcox(y ~ x)

그런 다음 생성 된 그래프를 보면 boxcox 변환 매개 변수의 95 % 신뢰 구간이 그래픽으로 표시됩니다. 그러나 실제로이를 수행하기에 충분한 데이터 (n = 10)가 없으면 결과 신뢰 구간은 거의 -2에서 2로갑니다. 최대 우도 추정치는 약 0입니다 (이전에 언급 한 로그 변환). 실제 데이터에 더 많은 관측치가있는 경우이를 시도해야합니다.

다른 사람들이 말했듯 이이 변환은 실제로 분산을 안정화하려고합니다. 이것은 이론에서 분명하지 않은데, 그것이하는 일은 일정한 분산을 가정하는 정규 분포 기반 우도 함수를 최대화하는 것입니다. 정규 기반 가능성을 최대화하면 잔차 분포를 정규화하려고 시도 할 수 있지만 실제로 가능성을 최대화하는 데 주된 기여는 분산을 안정화하는 데 있습니다. 우리가 최대화 할 가능성이 일정한 분산 정규 분포 패밀리를 기반으로한다는 점을 감안할 때 이것은 그리 놀라운 일이 아닙니다!

한 번 XLispStat에서 슬라이더 기반 데모를 작성했습니다.


3

선형 관계가 있지만 분산이 같지 않은 경우 일반적으로 동일한 분산의 선형 관계를 얻으려면 x와 y를 모두 변환해야합니다 (또는 변형되지 않은 변수에 대해 가중 최소 제곱 회귀 분석을 사용해야 함).

AVAS 절차를 사용하여 가능한 변환을 제안 할 수 있습니다.


데이터를 살펴보십시오. 는 에서 까지의 대해 단조롭게 추세를 나타냅니다 . 그런 다음 에서 에서 사이의 체계적으로 많이 진동합니다 . 이는 연속 단조 표현 이 분산을 안정화시키는 데 성공 하지 못함을 의미합니다 . 가중 최소 제곱에 대한 당신의 제안은이 한계에 비추어 유망 해 보이지만 어떻게 가중치를 선택해야합니까? yx15x510y
whuber

@whuber에 동의
브로콜리

1
나는이 특정 데이터 세트에 대해 @whuber에 동의합니다.이 데이터는 신속하게 설명하기 위해 만들어 졌다고 가정합니다 (따라서 인간의 무작위성 / 현실성이 없음을 보여줍니다). 내 응답은 불균형이 일반적인 경우에 대한 일반적인 조언입니다.
Greg Snow

x에 따라 분산이 증가 glm하면 포아송 링크 함수 가있는 프레임 워크가이를 줄일 수 있습니까?
Roman Luštrik

3
포아송 회귀 분석 @ RomanLuštrik은 고려해야 할 것이지만, 데이터가 아닌 과학에 기초하여 선택해야합니다. 위의 데이터에는 에 대한 비정 수가 포함되어 있으므로 포아송 회귀 분석에서 비정 수를 이해하려면 몇 가지 유형의 가중치 또는 관측 창이 있어야합니다. 반응 변수가 카운트를 나타내고 데이터의 과학이 포아송 분포와 일치하는 경우에만 고려해야합니다. y
Greg Snow

1

음, R에서 이것을 시도 할 수 있습니다 :

library(MASS)
boxcox(y~x)
plot(1/y^2~x) # since the profile likelihood has a maximum near 2

여기에 이미지 설명을 입력하십시오

그러나 그것은 실제로 '데이터에 더 적합합니다'라는 의미에 달려 있습니다.


-2

x에 대한 모든 데이터가 음수가 아닌 경우 상자 cox 변환을 사용할 수 있습니다 ... matlab을 사용할 수있는 변환의 매개 변수 람다의 이상적인 값을 추정 할 수 있습니다 ... http://www.mathworks.in/ help / finance / boxcox.html


1
여기서 "이상적"은 질문에서 요구 된 것 이외의 것을 의미합니다. 이 문제는 분산을 안정화 시키려고하는 반면, Matlab 솔루션은 분산을 가능한 한 정규 분포에 가깝게 만들려고합니다.
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.