일부 문헌에서는 다른 단위로 여러 설명 변수가있는 회귀를 표준화해야한다고 읽었습니다. (표준화는 평균을 빼고 표준 편차로 나누는 것으로 구성됩니다.) 어떤 경우에 데이터를 표준화해야합니까? 데이터를 중앙에만 배치해야하는 경우가 있습니까 (예 : 표준 편차로 나눔)
일부 문헌에서는 다른 단위로 여러 설명 변수가있는 회귀를 표준화해야한다고 읽었습니다. (표준화는 평균을 빼고 표준 편차로 나누는 것으로 구성됩니다.) 어떤 경우에 데이터를 표준화해야합니까? 데이터를 중앙에만 배치해야하는 경우가 있습니까 (예 : 표준 편차로 나눔)
답변:
회귀 분석 에서 예측 변수의 평균이 이되도록 변수 를 중앙에 배치 하는 것이 좋습니다 . 이로 인해 예측 변수 값이 평균으로 설정 될 때 절편 항이 의 예상 값으로 해석됩니다 . 그렇지 않으면 인터셉터가 예측 변수가 0으로 설정 될 때 의 예상 값으로 해석되며 , 이는 현실적이거나 해석 가능한 상황이 아닐 수 있습니다 (예 : 예측 변수가 키와 몸무게 인 경우 어떻게됩니까?). 회귀 분석의 스케일링 에 대한 또 다른 실질적인 이유 는 한 변수의 규모가 매우 클 때입니다 (예 : 국가의 인구 규모를 예측 변수로 사용하는 경우). 이 경우 회귀 계수는 매우 높을 수 있습니다.Y i Y i 10 − 6컴퓨터 출력을 읽을 때 약간 귀찮을 수있는 작은 크기의 (예 : ) 변수를 예를 들어 수백만의 인구 크기로 변환 할 수 있습니다. 예측을 표준화하는 규칙은 주로 회귀 계수의 단위가 동일하도록 존재합니다.
@gung이 암시하고 @ MånsT가 명시 적으로 (+1에서 btw로)를 보여 주므로, 센터링 / 스케일링은 회귀 모형의 통계적 추론에 영향을 미치지 않습니다-추정값이 적절하게 조정되고 값이 동일합니다.
센터링 및 / 또는 스케일링이 유용한 다른 상황 :
다른 척도에있는 변수 를 합하거나 평균화 하려고 할 때 아마도 어떤 종류의 종합 점수를 만들 수 있습니다. 스케일링이 없으면, 하나의 변수가 순전히 스케일로 인해 합계에 더 큰 영향을 미치는 경우가 있으며, 이는 바람직하지 않을 수 있습니다.
계산 및 표기법을 단순화합니다. 예를 들어, 표본 평균에 중심을 둔 값 행렬 의 표본 공분산 행렬 은 단순히 입니다. 유사하게, 일 변량 랜덤 변수 가 평균 중심이 되었다면 이며 관측 된 제곱의 표본 평균을 보면 표본에서 분산을 추정 할 수 있습니다. 가치.
전술 한 바와 관련하여, PCA 는 열이 처음 수단에 의해 중심에 놓 였을 때 데이터 매트릭스 의 특이 값 분해 로 해석 될 수있다 .
내가 언급 한 마지막 두 글 머리 기호에는 크기 조정이 필요 하지 않으며, 언급 한 첫 번째 글 머리 기호에는 중심 이 필요하지 않을 수 있으므로 두 손을 항상 손으로 쓸 필요는 없습니다.
당신은 상식을 겪었습니다. 그러나 일반적으로 다중 회귀 분석을 위해 데이터를 중앙 집중화하거나 표준화 할 필요는 없습니다. 다른 설명 변수는 거의 항상 다른 스케일에 있습니다 (즉, 다른 단위로 측정). 이것은 문제가되지 않습니다. 베타는 각각의 설명 변수의 단위를 반응 변수의 단위로 적절히 변환하도록 추정된다. 사람들이 때때로 말하는 한 가지는 변수를 먼저 표준화했다면 베타를 중요도의 척도로 해석 할 수 있다는 것입니다. 예를 들어 이고β 2 = .3첫 번째 설명 변수는 두 번째 설명 변수의 두 배입니다. 불행히도이 아이디어는 호소력이 있지만 유효하지 않습니다. 몇 가지 문제가 있지만 가장 쉬운 방법은 변수에서 가능한 범위 제한을 제어 할 방법이 없다는 것입니다. 서로 다른 설명 변수의 '중요성'을 유추하는 것은 매우 까다로운 철학적 문제입니다. 그 중에는 표준화가 제안입니다 불량 또는 잘못된 는 일반적으로하지 않습니다 단지, 필요 .
센터링이 도움이되는 머리 꼭대기에서 생각할 수있는 유일한 경우는 파워 용어를 만들기 전에입니다. 1 ~ 2 범위 의 변수 있지만 응답 변수와 곡선 관계가 의심되는 경우 항 을 작성하려고합니다 . 먼저 중심에 두지 않으면 제곱 항은 와 밀접한 상관 관계가 있으므로 베타 평가가 흐려질 수 있습니다. 을 중심으로 처음 이 문제에 주소를. X 2 X X
(나중에 추가 된 업데이트 :) 내가 언급하지 않은 유사한 사례는 상호 작용 용어를 만드는 것 입니다. 0을 중심으로하지 않는 두 변수에서 교호 작용 / 생성 항이 생성되면 일정량의 공선 성이 유도됩니다 (다양한 요인에 따라 정확한 양으로). 을 중심으로 첫 번째 주소이 잠재적 인 문제를. 자세한 설명은 @Affine의 탁월한 답변을 참조하십시오. 교호 작용 항이 포함 된 경우에만 문제가 되는 공선 성 진단 .
모델에 맞게 경사 하강을 사용하는 경우 공변량을 표준화하면 수렴 속도가 빨라질 수 있습니다 (비 축소 공변량이있는 경우 해당 매개 변수가 경사를 부적절하게 지배 할 수 있음). 이를 설명하기 위해 일부 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의 일부 응용 프로그램의 경우 확장이 예측 성능을 향상시킬 수 있습니다 . 지원 벡터 데이터 설명의 기능 확장 .
나는 센터링과 표준화 모두에 대해 "단단한 이유"를 선호한다. 일반적으로 데이터 분석 방법보다 데이터 세트 및 문제와 더 관련이 있습니다.
매우 자주, 나는 물리적 / 화학적 / 생물학적 / ... 평균보다 더 의미있는 다른 지점 (예 : Macro 's answer도 참조)에 중심을 두는 것을 선호합니다 (예 : 데이터의 원점을 이동).
대조군의 평균
공백 신호
수치 안정성은 데이터의 중심 및 / 또는 스케일링에 대한 알고리즘 관련 이유입니다.
@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()
이외의 경고 또는 오류 메시지는 표시하지 않습니다 . 물론 다른 알고리즘은 다른 예제로 다른 방식으로 "손상"될 수 있습니다.NA
I(X^2)
summary(B)
lm
는 2 차 항에 대한 계수를 추정하지 못하고 단일 설계 행렬에 대한 경고를 표시합니다. 아마도 이러한 도표보다 문제를 직접적으로 설명 할 수 있습니다.
원래 데이터의 중심을 맞추거나 표준화하면 제곱 항 또는 다른 상호 작용 항이 회귀에 포함될 때 다중 공선 성 문제를 실제로 완화시킬 수 있는지 심각하게 의심합니다.
요점을 설명하기 위해 간단한 예를 살펴 보겠습니다.
실제 사양은 다음과 같은 형식을 취한다고 가정하십시오.
따라서 해당 OLS 방정식은
요약하면, 센터링에 대한 나의 이해가 정확하다면, 센터링 데이터가 제곱 항 또는 다른 고차 항을 회귀에 포함시켜 발생하는 MC 문제를 완화하는 데 도움이되지 않는다고 생각합니다.
나는 당신의 의견을 듣고 기뻐할 것입니다!
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