多重共線性導致的模型不穩定性究竟是什麼?
我讀過模型參數在多重共線性的情況下變得不穩定。有人可以舉一個這種行為的例子,並解釋為什麼會這樣嗎?
請使用以下多元線性回歸進行說明:
$$ y = a_1x_1 + a_2x_2 + b $$
它是什麼?
這是此行為的一個示例。我將編寫一個函數來模擬回歸併輸出它們的係數。我們將查看係數的坐標對 $ (a_1,a_2) $ 在無共線性和高共線性的情況下。這是一些代碼:
library(tidyverse) sim <- function(rho){ #Number of samples to draw N = 50 #Make a covariance matrix covar = matrix(c(1,rho, rho, 1), byrow = T, nrow = 2) # Append a column of 1s to N draws from a 2-dimensional # Gaussian # With covariance matrix covar X = cbind(rep(1,N),MASS::mvrnorm(N, mu = c(0,0), Sigma = covar)) # True betas for our regression betas = c(1,2,4) # Make the outcome y = X%*%betas + rnorm(N,0,1) # Fit a linear model model = lm(y ~ X[,2] + X[,3]) # Return a dataframe of the coefficients return(tibble(a1 = coef(model)[2], a2 = coef(model)[3])) } #Run the function 1000 times and stack the results zero_covar = rerun(1000, sim(0)) %>% bind_rows #Same as above, but the covariance in covar matrix #is now non-zero high_covar = rerun(1000, sim(0.95)) %>% bind_rows #plot zero_covar %>% ggplot(aes(a1,a2)) + geom_point(data = high_covar, color = 'red') + geom_point()
運行它,你會得到類似的東西
該模擬應該模擬係數的採樣分佈。正如我們所看到的,在沒有共線性的情況下(黑點),係數的採樣分佈在 (2,4) 的真值附近非常緊密。斑點關於這一點是對稱的。
在高共線性(紅點)的情況下,線性模型的係數可以變化很大!在這種情況下,不穩定性表現為給定相同數據生成過程的截然不同的係數值。
為什麼會這樣
讓我們從統計的角度來看。線性回歸係數的採樣分佈(有足夠的數據)看起來像 $$ \hat{\beta} \sim \mathcal{N}(\beta, \Sigma) $$ 上面的協方差矩陣是 $$ \Sigma = \sigma^{2}\left(X^{\prime} X\right)^{-1} $$ 讓我們專註一分鐘 $ \left(X^{\prime} X\right) $ . 如果 $ X $ 有滿秩,那麼 $ \left(X^{\prime} X\right) $ 是一個 Gram 矩陣,它有一些特殊的性質。這些屬性之一是它具有正特徵值。這意味著我們可以根據特徵值分解來分解這個矩陣乘積。 $$ \left(X^{\prime} X\right) = Q\Lambda Q^{-1} $$ 假設現在的列之一 $ X $ 與另一列高度相關。然後,特徵值之一 $ X^{\prime}X $ 應該接近0(我認為)。反轉這個產品給了我們 $$ \left(X^{\prime} X\right)^{-1} = Q^{-1}\Lambda^{-1} Q $$ 自從 $ \Lambda $ 是對角矩陣, $ \Lambda^{-1}{jj} = \frac{1}{\Lambda{jj}} $ . 如果特徵值之一真的很小,那麼元素之一 $ \Lambda^{-1} $ 真的很大,協方差也很大,導致係數不穩定。
我想我是對的,我已經很久沒有做過線性代數了。