Hat 행렬이란 무엇이며 고전적 다중 회귀에서 활용합니까? 그들의 역할은 무엇입니까? 그리고 왜 사용합니까?
이해할 수 있도록 설명하거나 만족스러운 책 / 기사 참조를 제공하십시오.
댓글
- 이 사이트에는 레버리지를 언급하는 많은 게시물이 있습니다. 다음 중 일부를 탐색하여 시작할 수 있습니다. stats.stackexchange.com/search?q=leverage+
Answer
모자 행렬, $ \ bf H $ 는 다음의 값을 표현하는 투영 행렬입니다. 독립 변수 $ \ bf y $ 의 관측치, 모델 행렬 $ \ bf X $ : 회귀하는 여러 변수 각각에 대한 관측치를 포함합니다.
당연히 $ \ bf y $ 는 일반적으로 $ \ bf X $ 의 열 공간에 있지 않으며이 투영 사이에는 차이가 있습니다. $ \ bf \ hat Y $ 및 $ \ bf Y $ 의 실제 값. 이 차이는 잔차 또는 $ \ bf \ varepsilon = YX \ beta $ :
예상 계수, $ \ bf \ hat \ beta_i $ 은 투영 된 벡터 pan class = “math를 생성하는 데 필요한 열 벡터 (변수 $ \ bf x_i $ 에 대한 관찰)의 선형 조합으로 기하학적으로 이해됩니다. -container “> $ \ bf \ hat Y $ . $ \ bf H \, Y = \ hat Y $ 가 있습니다. 따라서 니모닉, " H는 y에 모자를 씁니다. "
모자 행렬은 다음과 같이 계산됩니다. : $ \ bf H = X (X ^ TX) ^ {-1} X ^ T $ .
예상 $ \ bf \ hat \ beta_i $ 계수는 자연스럽게 $ \ bf (X ^ TX) ^ {-1} X ^ T로 계산됩니다. $ .
데이터 세트의 각 지점은 일반 최소 제곱 (OLS) 선을 자신을 향해 당기려고합니다. 그러나 회귀 변수 값의 극단에서 멀리 떨어진 지점은 더 많은 레버리지를 갖습니다. 다음은 매우 점근적인 점 (빨간색)이 더 논리적으로 맞출 수있는 회귀선을 실제로 당기는 예입니다.
그러면이 두 개념 사이의 연관성은 어디입니까? 특정 행의 레버리지 점수 또는 데이터 세트의 관찰은 모자 행렬의 대각선에있는 해당 항목에서 찾을 수 있습니다. 따라서 $ i $ 관찰의 경우 레버리지 점수는 $ \ bf H_ {ii} $ 에서 찾을 수 있습니다. 모자 매트릭스의이 항목은 $ y_i $ 항목이 $ \ hat y_i $가되는 방식에 직접적인 영향을줍니다. ( $ i \ text {-th} $ 관찰의 높은 레버리지 $ y_i $ 자체 예측 값을 결정할 때 $ \ hat y_i $ ) :
모자 행렬은 투영 행렬이므로 고유 값은 $ 0 $ 및 $ 1 $ . 그러면 트레이스 (대각선 요소의 합계-이 경우 $ 1 $ “s의 합계)가 열 공간의 순위가되고 널 공간의 차원만큼 많은 0. 따라서 모자 행렬의 대각선 값은 1보다 작으며 (trace = sum eigenvalues) $ 2 \ sum_ {i = 1} ^ {n} h_ {ii} / n $ ( $ n $ 가 행 수.
모델 행렬에서 특이 치 데이터 포인트의 레버리지는 실제 이상 치가 OLS 모델에 포함 된 경우 이상치에 대한 잔차 비율을 1에서 뺀 값으로 수동으로 계산할 수도 있습니다. 특이 치에 해당하는 행을 포함하지 않고 적합 곡선을 계산할 때 동일한 점에 대한 잔차 : $$ Leverage = 1- \ frac {\ text {이상 치가있는 잔류 OLS}} {\ text {residual OLS without outlier}} $$ R에서 hatvalues()
함수는 모든 포인트에 대해이 값을 반환합니다.
첫 번째 데이터 포인트 사용 R의 데이터 세트 {mtcars}
:
fit = lm(mpg ~ wt, mtcars) # OLS including all points X = model.matrix(fit) # X model matrix hat_matrix = X%*%(solve(t(X)%*%X)%*%t(X)) # Hat matrix diag(hat_matrix)[1] # First diagonal point in Hat matrix fitwithout1 = lm(mpg ~ wt, mtcars[-1,]) # OLS excluding first data point. new = data.frame(wt=mtcars[1,"wt"]) # Predicting y hat in this OLS w/o first point. y_hat_without = predict(fitwithout1, newdata=new) # ... here it is. residuals(fit)[1] # The residual when OLS includes data point. lev = 1 - (residuals(fit)[1]/(mtcars[1,"mpg"] - y_hat_without)) # Leverage all.equal(diag(hat_matrix)[1],lev) #TRUE