¿Hay alguna manera de usar la matriz de covarianza para encontrar coeficientes de regresión múltiple?

23

Para la regresión lineal simple, el coeficiente de regresión es calculable directamente a partir de la matriz de varianza-covarianza C , por

Cd,eCe,e
dondedes el índice de la variable dependiente, yees el índice de la variable explicativa.

Si uno solo tiene la matriz de covarianza, ¿es posible calcular los coeficientes para un modelo con múltiples variables explicativas?

ETA: para dos variables explicativas, parece que y análogamente paraβ2. No veo de inmediato cómo extender esto a tres o más variables.

β1=Cov(y,x1)var(x2)Cov(y,x2)Cov(x1,x2)var(x1)var(x2)Cov(x1,x2)2
β2
David
fuente
3
El coeficiente de vector β es la solución a X ' Y = ( X ' X ) - 1 β . Algunas manipulaciones algebraicas revelan que, de hecho, esto es lo mismo que la fórmula que se da en el caso del coeficiente 2. Presentado muy bien aquí: stat.purdue.edu/~jennings/stat514/stat512notes/topic3.pdf . No estoy seguro si eso ayuda en absoluto. Pero me aventuraría a adivinar que esto es imposible en general en base a esa fórmula. β^XY=(XX)1β
shadowtalker
1
@David ¿Has descubierto cómo extender esto a un número arbitrario de variables explicativas (más allá de 2)? Necesito la expresion.
Jane Wayne
1
@JaneWayne No estoy seguro de entender su pregunta: whuber dio la solución a continuación en forma de matriz, C1(Cov(Xi,y))
David
1
Sí, lo estudié y tiene razón.
Jane Wayne

Respuestas:

36

Sí, la matriz de covarianza de todas las variables, explicativa y de respuesta, contiene la información necesaria para encontrar todos los coeficientes, siempre que se incluya un término de intercepción (constante) en el modelo. (Aunque las covarianzas no proporcionan información sobre el término constante, se puede encontrar a partir de los medios de los datos).


Análisis

Dejar que los datos para las variables explicativas pueden organizar como vectores columna -dimensional x 1 , x 2 , ... , x p y la variable de respuesta sean el vector columna y , considerado como una realización de una variable aleatoria Y . Los ordinarios estimaciones de mínimos cuadrados beta de los coeficientes en el modelonx1,x2,,xpyYβ^

E(Y)=α+Xβ

se obtienen ensamblando los vectores de columna X 0 = ( 1 , 1 , , 1 ) , X 1 , , X p en una matriz n × p + 1 X y resolviendo el sistema de ecuaciones linealesp+1X0=(1,1,,1),X1,,Xpn×p+1X

XXβ^=Xy.

Es equivalente al sistema

1nXXβ^=1nXy.

La eliminación gaussiana resolverá este sistema. Se procede por contigua a la de la matriz 1p+1×p+1y elp+1-vector11nXXp+1en unamatrizp+1×p+2Ay reduciéndola por filas. 1nXyp+1×p+2A

El primer paso inspeccionará . Al encontrar que esto no es cero, procede a restar los múltiplos apropiados de la primera fila deAde las filas restantes para poner a cero las entradas restantes en su primera columna. Estos múltiplos serán11n(XX)11=1nX0X0=1Ay el número restado de la entradaAi+1,j+1=Xi Xjserá igual a ¯ X i ¯ X j. Esta es solo la fórmula para la covarianza deXiyXj. Además, el número que queda en la posicióni+1,p+2es igual a11nX0Xi=X¯iAi+1,j+1=XiXjX¯iX¯jXiXji+1,p+2 , la covarianza deXicony.1nXiyXi¯y¯Xiy

Por lo tanto, después del primer paso de eliminación gaussiana, el sistema se reduce a la resolución

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

y obviamente, dado que todos los coeficientes son covarianzas, esa solución se puede encontrar a partir de la matriz de covarianza de todas las variables.

(Cuando es invertible, la solución se puede escribir C - 1 ( Cov ( X i , y ) ) ' . Las fórmulas dadas en la pregunta son casos especiales de esto cuando p = 1 y p = 2. Escribir estas fórmulas explícitamente se vuelven más y más complejos a medida que crece P. Además, son inferiores para el cómputo numérico, que se realiza mejor resolviendo el sistema de ecuaciones en lugar de invertir la matriz C ).CC1(Cov(Xi,y))p=1p=2pC

yXβ^


Ejemplo

Para ilustrar, el siguiente Rcódigo crea algunos datos, calcula sus covarianzas y obtiene las estimaciones de coeficientes de mínimos cuadrados únicamente a partir de esa información. Los compara con las estimaciones obtenidas del estimador de mínimos cuadrados 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  

El resultado muestra un acuerdo entre los dos 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
fuente
1
Gracias, @whuber! Esto es exactamente lo que estaba buscando, y mi cerebro atrofiado no pudo llegar. Por otro lado, la motivación para la pregunta es que, por varias razones, esencialmente no tenemos el plenoXdisponible, pero tener cov(z)de cálculos anteriores.
David
77
Respuestas como esta elevan el listón de esta Cruz Validado
jpmuc
@whuber En su ejemplo, calculó la intercepción de yy xy beta.hat. Los yy xson parte de los datos originales. ¿Es posible derivar la intersección de la matriz de covarianza y las medias solas? ¿Podría por favor proporcionar la notación?
Jane Wayne
@Jane Dado solo los medios X¯, aplicar β^ a ellos:
X¯β^=Xβ^¯.
He cambiado el código para reflejar esto.
whuber
+1 muy útil para el código
Michael