Existe uma maneira de usar a matriz de covariância para encontrar coeficientes para regressão múltipla?

23

Para regressão linear simples, o coeficiente de regressão é calculável diretamente a partir da matriz de variância-covariância , por onde é o índice da variável dependente e é o índice da variável explicativa.C d , eC de

Cd,eCe,e
de

Se alguém possui apenas a matriz de covariância, é possível calcular os coeficientes para um modelo com múltiplas variáveis ​​explicativas?

ETA: Para duas variáveis ​​explicativas, parece que

β1=Cov(y,x1)var(x2)Cov(y,x2)Cov(x1,x2)var(x1)var(x2)Cov(x1,x2)2
e de modo análogo paraβ2. Não estou vendo imediatamente como estender isso para três ou mais variáveis.
David
fonte
3
O coeficiente de vetor β é a solução para X ' Y = ( X ' x ) - 1 β . Alguma manipulação algébrica revela que isso é de fato o mesmo que a fórmula que você fornece no caso de 2 coeficientes. Apresentados de maneira agradável aqui: stat.purdue.edu/~jennings/stat514/stat512notes/topic3.pdf . Não tenho certeza se isso ajuda. Mas arriscaria adivinhar que isso é impossível em geral com base nessa fórmula. β^XY=(XX)1β
shadowtalker
1
@ David Você descobriu como estender isso para um número arbitrário de variáveis ​​explicativas (além de 2)? Eu preciso da expressão.
Jane Wayne
1
@JaneWayne eu não tenho certeza se entendi sua pergunta: whuber deu a solução abaixo em forma de matriz, C1(Cov(Xi,y))
David
1
Sim, eu estudei e ele está certo.
Jane Wayne

Respostas:

36

Sim, a matriz de covariância de todas as variáveis ​​- explicativa e resposta - contém as informações necessárias para encontrar todos os coeficientes, desde que um termo de interceptação (constante) seja incluído no modelo. (Embora as covariâncias não forneçam informações sobre o termo constante, elas podem ser encontradas a partir dos meios dos dados.)


Análise

Deixe os dados para as variáveis explanatórias ser providenciado como vectores de coluna -dimensional x 1 , x 2 , ... , x p e a variável de resposta ser o vector coluna y , considerada uma realização de uma variável aleatória Y . Os ordinários estimativas de mínimos quadrados p dos coeficientes no modelonx1,x2,,xpyYβ^

E(Y)=α+Xβ

são obtidos montando os vetores de coluna X 0 = ( 1 , 1 , , 1 ) , X 1 , , X p em uma matriz n × p + 1 X e resolvendo o sistema de equações linearesp+1X0=(1,1,,1),X1,,Xpn×p+1X

XXβ^=Xy.

É equivalente ao sistema

1nXXβ^=1nXy.

A eliminação gaussiana resolverá esse sistema. Ele prossegue juntando a matriz 1p+1×p+1e ap+1-vector11nXXp+1em umamatrizp+1×p+2Ae reduzi-la em linha. 1nXyp+1×p+2A

O primeiro passo irá inspecionar . Considerando que isso é diferente de zero, ele subtrai múltiplos apropriados da primeira linha deAdas linhas restantes para zerar as entradas restantes em sua primeira coluna. Esses múltiplos serão11n(XX)11=1nX0X0=1Ae o número subtraído a partir da entradaAi+1,j+1=X ' i Xjserá igual ¯ X i ¯ X j. Essa é apenas a fórmula para a covariância deXieXj. Além disso, o número deixado na posiçãoi+1,p+2é igual a11nX0Xi=X¯iAi+1,j+1=XiXjX¯iX¯jXiXji+1,p+2 , a covariância deXicomy.1nXiyXi¯y¯Xiy

Assim, após o primeiro passo da eliminação gaussiana, o sistema é reduzido para resolver

Cβ^=(Cov(Xi,y))

e obviamente - como todos os coeficientes são covariâncias - essa solução pode ser encontrada a partir da matriz de covariância de todas as variáveis.

(Quando é invertível a solução pode ser escrito C - 1 ( Cov ( X i , y ) ) ' . As fórmulas indicadas na questão são casos especiais da presente quando p = 1 e p = 2 Escrita de tais fórmulas explicitamente vontade. tornam-se cada vez mais complexos à medida que p cresce. Além disso, são inferiores para computação numérica, o que é melhor realizado resolvendo o sistema de equações em vez de inverter a matriz C. )CC1(Cov(Xi,y))p=1p=2pC

O termo constante será a diferença entre a média de e os valores médios previstos a partir das estimativas, X p .yXβ^


Exemplo

Para ilustrar, o Rcódigo a seguir cria alguns dados, calcula suas covariâncias e obtém as estimativas do coeficiente de mínimos quadrados somente a partir dessas informações. Ele os compara com as estimativas obtidas do estimador de mínimos quadrados lm.

#
# 1. Generate some data.
#
n <- 10        # Data set size
p <- 2         # Number of regressors
set.seed(17)
z <- matrix(rnorm(n*(p+1)), nrow=n, dimnames=list(NULL, paste0("x", 1:(p+1))))
y <- z[, p+1]
x <- z[, -(p+1), drop=FALSE]; 
#
# 2. Find the OLS coefficients from the covariances only.
#
a <- cov(x)
b <- cov(x,y)
beta.hat <- solve(a, b)[, 1]  # Coefficients from the covariance matrix
#
# 2a. Find the intercept from the means and coefficients.
#
y.bar <- mean(y)
x.bar <- colMeans(x)
intercept <- y.bar - x.bar %*% beta.hat  

A saída mostra concordância entre os dois métodos:

(rbind(`From covariances` = c(`(Intercept)`=intercept, beta.hat),
       `From data via OLS` = coef(lm(y ~ x))))
                  (Intercept)        x1        x2
From covariances     0.946155 -0.424551 -1.006675
From data via OLS    0.946155 -0.424551 -1.006675
whuber
fonte
1
Xcov(z)
7
Respostas como essa elevam a barra desta cruz Validada
jpmuc
@whuber No seu exemplo, você calculou a interceptação de ye xe beta.hat. Os ye xfazem parte dos dados originais. É possível derivar o intercepto apenas da matriz e dos meios de covariância? Você poderia fornecer a notação?
Jane Wayne
X¯β^
X¯β^=Xβ^¯.
muito útil um para o código
Michael