다중 회귀 분석을 수행 할 때는 예측 변수를 언제 중심에두고 언제 표준화해야합니까?


281

일부 문헌에서는 다른 단위로 여러 설명 변수가있는 회귀를 표준화해야한다고 읽었습니다. (표준화는 평균을 빼고 표준 편차로 나누는 것으로 구성됩니다.) 어떤 경우에 데이터를 표준화해야합니까? 데이터를 중앙에만 배치해야하는 경우가 있습니까 (예 : 표준 편차로 나눔)


11
Andrew Gelman의 블로그에 있는 관련 게시물 .

31
이미 주어진 큰 답변 외에도 능선 회귀 또는 올가미와 같은 벌점 방법을 사용할 때 결과가 더 이상 표준화에 영향을 미치지 않습니다. 그러나 종종 표준화하는 것이 좋습니다. 이 경우 해석과 직접 관련이있는 이유가 아니라 처벌이 다른 설명 변수를보다 동등한 기반으로 처리하기 때문입니다.
NRH

6
@mathieu_r 사이트에 오신 것을 환영합니다! 매우 인기있는 두 가지 질문을 게시했습니다. 두 질문 모두에 대한 훌륭한 답변 중 일부를 찬성 / 수락하는 것을 고려하십시오.)
Macro


1
이 Q & A를 읽었을 때 몇 년 전에 우연히 발견 된 유즈넷 사이트를 생각 나게했습니다. faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html 이것은 간단한 용어로 몇 가지 문제와 고려 사항을 제공합니다. 데이터를 표준화 / 표준화 / 재조정하려는 경우. 나는 그것이 여기에 대한 답변에서 언급 된 것을 보지 못했습니다. 더 많은 머신 러닝 관점에서 주제를 다루지 만 누군가가 여기에 오는 데 도움이 될 수 있습니다.
Paul

답변:


213

회귀 분석 에서 예측 변수의 평균이 이되도록 변수 를 중앙에 배치 하는 것이 좋습니다 . 이로 인해 예측 변수 값이 평균으로 설정 될 때 절편 항이 의 예상 값으로 해석됩니다 . 그렇지 않으면 인터셉터가 예측 변수가 0으로 설정 될 때 의 예상 값으로 해석되며 , 이는 현실적이거나 해석 가능한 상황이 아닐 수 있습니다 (예 : 예측 변수가 키와 몸무게 인 경우 어떻게됩니까?). 회귀 분석의 스케일링 에 대한 또 다른 실질적인 이유 는 한 변수의 규모가 매우 클 때입니다 (예 : 국가의 인구 규모를 예측 변수로 사용하는 경우). 이 경우 회귀 계수는 매우 높을 수 있습니다.0Y i Y i 10 6YiYi컴퓨터 출력을 읽을 때 약간 귀찮을 수있는 작은 크기의 (예 : ) 변수를 예를 들어 수백만의 인구 크기로 변환 할 수 있습니다. 예측을 표준화하는 규칙은 주로 회귀 계수의 단위가 동일하도록 존재합니다.106

@gung이 암시하고 @ MånsT가 명시 적으로 (+1에서 btw로)를 보여 주므로, 센터링 / 스케일링은 회귀 모형의 통계적 추론에 영향을 미치지 않습니다-추정값이 적절하게 조정되고 값이 동일합니다.p

센터링 및 / 또는 스케일링이 유용한 다른 상황 :

  • 다른 척도에있는 변수합하거나 평균화 하려고 할 때 아마도 어떤 종류의 종합 점수를 만들 수 있습니다. 스케일링이 없으면, 하나의 변수가 순전히 스케일로 인해 합계에 더 큰 영향을 미치는 경우가 있으며, 이는 바람직하지 않을 수 있습니다.

  • 계산 및 표기법을 단순화합니다. 예를 들어, 표본 평균에 중심을 둔 값 행렬 의 표본 공분산 행렬 은 단순히 입니다. 유사하게, 일 변량 랜덤 변수 가 평균 중심이 되었다면 이며 관측 된 제곱의 표본 평균을 보면 표본에서 분산을 추정 할 수 있습니다. 가치.XXXvar(X)=E(X2)

  • 전술 한 바와 관련하여, PCA 는 열이 처음 수단에 의해 중심에 놓 였을 때 데이터 매트릭스 의 특이 값 분해 로 해석 될 수있다 .

내가 언급 한 마지막 두 글 머리 기호에는 크기 조정이 필요 하지 않으며, 언급 한 첫 번째 글 머리 기호에는 중심 필요하지 않을 수 있으므로 두 손을 항상 손으로 쓸 필요는 없습니다.


2
+1, 이것들은 내가 생각하지 못한 좋은 점입니다. 명확성을 기하기 위해 연구원이 회귀 분석을하기 전에 설명 변수를 결합하여 표준화해야하는 구체적인 예를 나열하겠습니다. 한 가지 사례는 어린이의 행동 장애에 대한 연구 일 수 있습니다. 연구자들은 부모와 교사 모두로부터 평가를 받고이를 단일 측정 부적합으로 결합하기를 원할 수 있습니다. 또 다른 사례는 주민들의자가 평가를받는 요양원에서의 활동 수준에 대한 연구와 활동을위한 가입 시트의 서명 수입니다.
gung

2
그러나 이론적으로 중심 / 스케일링에 모집단 평균과 표준 편차를 사용해서는 안됩니까? 실제로, 표본 평균 / SD를 사용하는 것만 큼 간단합니까?
AlefSin

3
완성도를 위해 중심이되고 표준화 된 의 가 상관 행렬 이라는이 멋진 대답을 추가하겠습니다 . XXXX
cbeleites

1
@ AlefSin : 실제로 인구 평균 / SD 이외의 것을 사용하고 싶을 수도 있습니다. 내 대답을 참조하십시오. 그러나 센터링 / 스케일링에 사용할 것을 생각해야한다는 요점은 매우 좋습니다.
cbeleites

@ AlefSin, 샘플 평균 / SD를 사용하고 있다고 가정하면 모든 의견이 작성되었습니다. 표본을 중심으로 배치하는 경우 예측 변수가 표본 평균 으로 설정된 경우 의 예상 값을 제외하고 절편 해석이 여전히 동일 합니다 . 세 개의 글 머리 기호에있는 정보는 샘플 수량을 기준으로 가운데 / 스케일 할 때 여전히 적용됩니다. 또한 표본 평균을 중심으로하는 경우 결과는 평균 0 인 변수이지만 표본 표준 편차를 기준으로 한 스케일링은 일반적으로 표준 편차 1 (예 : t- 통계량)의 결과를 생성하지 않습니다. Yi
Macro

143

당신은 상식을 겪었습니다. 그러나 일반적으로 다중 회귀 분석을 위해 데이터를 중앙 집중화하거나 표준화 할 필요는 없습니다. 다른 설명 변수는 거의 항상 다른 스케일에 있습니다 (즉, 다른 단위로 측정). 이것은 문제가되지 않습니다. 베타는 각각의 설명 변수의 단위를 반응 변수의 단위로 적절히 변환하도록 추정된다. 사람들이 때때로 말하는 한 가지는 변수를 먼저 표준화했다면 베타를 중요도의 척도로 해석 할 수 있다는 것입니다. 예를 들어 이고β 2 = .3β1=.6β2=.3첫 번째 설명 변수는 두 번째 설명 변수의 두 배입니다. 불행히도이 아이디어는 호소력이 있지만 유효하지 않습니다. 몇 가지 문제가 있지만 가장 쉬운 방법은 변수에서 가능한 범위 제한을 제어 할 방법이 없다는 것입니다. 서로 다른 설명 변수의 '중요성'을 유추하는 것은 매우 까다로운 철학적 문제입니다. 그 중에는 표준화가 제안입니다 불량 또는 잘못된 는 일반적으로하지 않습니다 단지, 필요 .

센터링이 도움이되는 머리 꼭대기에서 생각할 수있는 유일한 경우는 파워 용어를 만들기 전에입니다. 1 ~ 2 범위 의 변수 있지만 응답 변수와 곡선 관계가 의심되는 경우 항 을 작성하려고합니다 . 먼저 중심에 두지 않으면 제곱 항은 와 밀접한 상관 관계가 있으므로 베타 평가가 흐려질 수 있습니다. 을 중심으로 처음 이 문제에 주소를. X 2 X XXX2XX


(나중에 추가 된 업데이트 :) 내가 언급하지 않은 유사한 사례는 상호 작용 용어를 만드는 것 입니다. 0을 중심으로하지 않는 두 변수에서 교호 작용 / 생성 항이 생성되면 일정량의 공선 성이 유도됩니다 (다양한 요인에 따라 정확한 양으로). 을 중심으로 첫 번째 주소이 잠재적 인 문제를. 자세한 설명은 @Affine의 탁월한 답변을 참조하십시오. 교호 작용 항이 포함 된 경우에만 문제가 되는 공선 성 진단 .


12
사람이 관심이 있다면, 나 또한 여기에 상대 '중요성'을 추론하는 표준화 된 베타 버전을 사용하는 잘못된 생각에 대해 이야기 : 다중 선형 회귀를 위해 가설 테스트

답장을 보내 주셔서 감사합니다. 나는 그것을 이해했다고 생각합니다. 제곱 항은 X가 자체와 상호 작용 한 것으로 생각할 수 있으므로 상호 작용하는 변수에 대한 요점이 더 일반적 일 것입니다.
Abhimanyu Arora

6
Belsley, Kuh 및 Welsch는 1980 년 저서 인 Regression Diagnostics 에서이 상황을 신중하게 분석했습니다 . (자세한 내용은 부록 3B를 참조하십시오.) 크기 조정이 도움이되지 않는다고 잘못 판단한 것입니다. 분석은 솔루션 절차 의 수치 안정성 측면에서 이루어 지며 , 데이터 행렬 의 조건 수로 측정됩니다 . 변수가 다른 범위의 스케일에서 측정 될 때 해당 조건 수는 매우 높을 수 있습니다. 그런 다음 크기를 조정하면 스케일 팩터 내 에서 의 "불량"대부분이 흡수 됩니다. 결과적인 문제는 훨씬 잘 조정됩니다. XXX
whuber

beta1 = 0.6 및 beta2 = 0.3에 대해 beta1이 beta2보다 두 배 중요한지 여부는 확실하지 않지만 표준화되었으므로 동일한 '척도'즉 단위가 표준 편차라고 생각했습니다. 평균에서. 그러나 Y의 응답은 베타 2 (x1 상수 유지)보다 베타 1 (x2 상수 유지)의 경우 두 배 더 높습니다. 권리? 아니면 도중에 오해가 있습니까?
chao

@chao, 당신은 실제로 두 변수에 내재 된 단위를 제거하지 않았습니다. 당신은 그들을 숨겼습니다. 이제 X1의 단위는 13.9cm이고 X2의 단위는 2.3 도입니다.
gung

80

다른 답변의 언급 외에도 설명 변수의 규모와 위치가 회귀 모델 의 유효성 에 어떤 영향도 미치지 않는다는 점을 지적하고 싶습니다 .

y=β0+β1x1+β2x2++ϵ

β1,β2,x1,x2,β0

x1aβ^11/a

β^1(x1)=i=1n(x1,ix¯1)(yiy¯)i=1n(x1,ix¯1)2.

그러므로

β^1(ax1)=i=1n(ax1,iax¯1)(yiy¯)i=1n(ax1,iax¯1)2=ai=1n(x1,ix¯1)(yiy¯)a2i=1n(x1,ix¯1)2=β^1(x1)a.

β^2

따라서 스케일링은 단순히 해당 경사의 스케일링에 해당합니다.

ai=1/sisix1xi


1
왜곡 된 변수를 표준화하는 것이 좋습니까? 아니면 대칭 적으로 분포 된 변수를 표준화하는 것이 더 낫습니까? 입력 변수 또는 결과 만 별표로 표시해야합니까?
스칸

31

모델에 맞게 경사 하강을 사용하는 경우 공변량을 표준화하면 수렴 속도가 빨라질 수 있습니다 (비 축소 공변량이있는 경우 해당 매개 변수가 경사를 부적절하게 지배 할 수 있음). 이를 설명하기 위해 일부 R 코드는 다음과 같습니다.

> objective <- function(par){ par[1]^2+par[2]^2}  #quadratic function in two variables with a minimum at (0,0)
> optim(c(10,10), objective, method="BFGS")$counts  #returns the number of times the function and its gradient had to be evaluated until convergence
    function gradient 
          12        3 
> objective2 <- function(par){ par[1]^2+0.1*par[2]^2}  #a transformation of the above function, corresponding to unscaled covariates
> optim(c(10,10), objective2, method="BFGS")$counts
function gradient 
      19       10 
> optim(c(10,1), objective2, method="BFGS")$counts  #scaling of initial parameters doesn't get you back to original performance
function gradient 
      12        8

또한 SVM의 일부 응용 프로그램의 경우 확장이 예측 성능을 향상시킬 수 있습니다 . 지원 벡터 데이터 설명의 기능 확장 .


25

나는 센터링과 표준화 모두에 대해 "단단한 이유"를 선호한다. 일반적으로 데이터 분석 방법보다 데이터 세트 및 문제와 더 관련이 있습니다.

매우 자주, 나는 물리적 / 화학적 / 생물학적 / ... 평균보다 더 의미있는 다른 지점 (예 : Macro 's answer도 참조)에 중심을 두는 것을 선호합니다 (예 : 데이터의 원점을 이동).

  • 대조군의 평균

  • 공백 신호

수치 안정성은 데이터의 중심 및 / 또는 스케일링에 대한 알고리즘 관련 이유입니다.

또한 표준화 에 대한 비슷한 질문을 살펴보십시오 . "중심 만"도 다루고 있습니다.


24

@cbeleites가 언급 한 수치 안정성 문제를 설명하기 위해 Simon Wood의 "break"방법에 대한 예가 있습니다 lm(). 먼저 간단한 데이터를 생성하고 간단한 2 차 곡선에 맞 춥니 다.

set.seed(1); n <- 100
xx <- sort(runif(n))
y <- .2*(xx-.5)+(xx-.5)^2 + rnorm(n)*.1
x <- xx+100
b <- lm(y ~ x+I(x^2))

plot(x,y)
lines(x, predict(b), col='red')

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

그러나 X에 900을 더하면 결과는 오른쪽으로 이동한다는 점을 제외하면 거의 동일해야합니다. 불행히도...

X <- x + 900
B <- lm(y ~ X+I(X^2))
plot(X,y)
lines(X, predict(B), col='blue')

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

@Scortchi의 주석에 추가하도록 편집하십시오 -lm ()에 의해 반환 된 객체를 보면 2 차 항이 추정되지 않았으며 NA로 표시됩니다.

> B
Call:
lm(formula = y ~ X + I(X^2))

Coefficients:
(Intercept)            X       I(X^2)  
  -139.3927       0.1394           NA  

그리고 실제로 @Scortchi가 제안한대로 모델 행렬을보고 직접 해결하려고하면 "파손"합니다.

> X <- model.matrix(b) ## get same model matrix used above
> beta.hat <- solve(t(X)%*%X,t(X)%*%y) ## direct solution of ‘normal equations’
Error in solve.default(t(X) %*% X, t(X) %*% y) : 
  system is computationally singular: reciprocal condition number = 3.9864e-19

그러나 R-3.1.1 의 줄에 s lm()이외의 경고 또는 오류 메시지는 표시하지 않습니다 . 물론 다른 알고리즘은 다른 예제로 다른 방식으로 "손상"될 수 있습니다.NAI(X^2)summary(B)


10
(+1) 참고 lm는 2 차 항에 대한 계수를 추정하지 못하고 단일 설계 행렬에 대한 경고를 표시합니다. 아마도 이러한 도표보다 문제를 직접적으로 설명 할 수 있습니다.
Scortchi

3

원래 데이터의 중심을 맞추거나 표준화하면 제곱 항 또는 다른 상호 작용 항이 회귀에 포함될 때 다중 공선 성 문제를 실제로 완화시킬 수 있는지 심각하게 의심합니다.

요점을 설명하기 위해 간단한 예를 살펴 보겠습니다.

실제 사양은 다음과 같은 형식을 취한다고 가정하십시오.

yi=b0+b1xi+b2xi2+ui

따라서 해당 OLS 방정식은

yi=yi^+ui^=b0^+b1^xi+b2^xi2+ui^

yi^yiuib0^b2^b0b2zi=xi2

xx2yiyi

yi

y¯=b0^+b1^x¯+b2^z¯
y¯x¯z¯yixizi

y¯yi

yiy¯=b1^(xix¯)+b2^(ziz¯)+ui^

yiy¯xix¯ziz¯b1^b2^

xx2xx2corr(x,z)=corr(xx¯,zz¯)

요약하면, 센터링에 대한 나의 이해가 정확하다면, 센터링 데이터가 제곱 항 또는 다른 고차 항을 회귀에 포함시켜 발생하는 MC 문제를 완화하는 데 도움이되지 않는다고 생각합니다.

나는 당신의 의견을 듣고 기뻐할 것입니다!


2
귀하의 기여에 감사드립니다, @ rudi0086021. 당신이 옳을 지 모르지만 여기에 몇 가지 문제가 있습니다. 첫째, 센터링은 y 의 평균을 빼는 것이 아니라 x 의 평균을 빼는 것입니다 . 두 번째로, 먼저 중심을 설정해야합니다. 고려하십시오 : . x = c(1,2,3); x2 = x^2; cor(x, x2); # [1] 0.9897433; xc = c(-1,0,1); xc2 = xc^2; cor(xc, xc2) # [1] 0
gung

답장을 보내 주셔서 감사합니다, @gung. 여기 내 생각이 있습니다. 첫째, 개인적으로 종속 변수와 독립 변수를 다른 변수, 즉 독립 변수와 다르게 처리 해야하는 설득력있는 이유는 없었지만 종속 변수에는 그렇게하지 않았습니다.
rudi0086021

2
둘째, 당신이 말했듯이, 아마도 제곱 항을 만들기 전에 데이터를 중심에 두어야 할 것입니다. 이러한 연습은 MC 문제를 완화시킵니다. 그러나, 이는 바이어스 된 추정치,보다 구체적으로는 생략 된 가변 바이어스 (OVB)로 이어질 수있다. 설명하려면 다음 예제를 참조하십시오. 실제 스펙이 y = b0 + b1 * x + b2 * x ^ 2 + u라고 가정하십시오. 미리 데이터를 중앙에 배치하면 y = b0 + b1 * (x-xhar) + b2 * (x-xbar) ^ 2 + v가됩니다. 여기서 새 오류 항 v = u + b1 * xbar-b2 * xbar ^ 2 + 2b2 * xbar * x. cov (x-xbar, v)! = 0임이 분명합니다. 따라서 불행히도 사전에 데이터를 중심에두면 추정치가 바이어스됩니다.
rudi0086021

@ rudi0086021 마지막 주석에서 중심 데이터를 피팅 할 때 중심 데이터를 피팅 할 때와 같은 계수를 얻는다고 가정합니다. 그러나 정사각형을 취하기 전에 중심을 맞추는 것은 상수에 의한 간단한 이동이 아니므로 동일한 계수를 얻을 것으로 기 대해서는 안됩니다. 센터링 후 가장 잘 맞는 것은 B0 + B1 * (x-xbar) + B2 * (x-xbar) ^ 2입니다. 여기서 B0 = b0 + b1 * xbar + b2 * xbar ^ 2, B1 = b1 + 2 * b2 * xbar 및 B2 = b2. 따라서 v = u입니다. 이 의견에 너무나도 유감스럽게도 죄송 합니다만, 오늘 처음으로 저를 보는 다른 사람들이 항상있을 수 있습니다.
Tim Goodman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.