Regression
多重共線性導致的模型不穩定性究竟是什麼?
我讀過模型參數在多重共線性的情況下變得不穩定。有人可以舉一個這種行為的例子,並解釋為什麼會這樣嗎?
請使用以下多元線性回歸進行說明:
y=a1x1+a2x2+b
它是什麼?
這是此行為的一個示例。我將編寫一個函數來模擬回歸併輸出它們的係數。我們將查看係數的坐標對 (a1,a2) 在無共線性和高共線性的情況下。這是一些代碼:
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) 的真值附近非常緊密。斑點關於這一點是對稱的。
在高共線性(紅點)的情況下,線性模型的係數可以變化很大!在這種情況下,不穩定性表現為給定相同數據生成過程的截然不同的係數值。
為什麼會這樣
讓我們從統計的角度來看。線性回歸係數的採樣分佈(有足夠的數據)看起來像 ˆβ∼N(β,Σ)
上面的協方差矩陣是 Σ=σ2(X′X)−1讓我們專註一分鐘 (X′X) . 如果 X 有滿秩,那麼 (X′X) 是一個 Gram 矩陣,它有一些特殊的性質。這些屬性之一是它具有正特徵值。這意味著我們可以根據特徵值分解來分解這個矩陣乘積。 (X′X)=QΛQ−1假設現在的列之一 X 與另一列高度相關。然後,特徵值之一 X′X 應該接近0(我認為)。反轉這個產品給了我們 (X′X)−1=Q−1Λ−1Q自從 Λ 是對角矩陣, $ \Lambda^{-1}{jj} = \frac{1}{\Lambda{jj}} .如果特徵值之一真的很小,那麼元素之一 \Lambda^{-1} $ 真的很大,協方差也很大,導致係數不穩定。我想我是對的,我已經很久沒有做過線性代數了。