9 votos

Error estándar del coeficiente de regresión sin datos

Después de buscar aquí:

Realizar la regresión simple sin datos en bruto

Todavía estoy curioso acerca de esto.

Es posible obtener el error estándar de un coeficiente de regresión de los datos de resumen solo?

E. g., suponga que se dan los siguientes varianza-covarianza de la matriz.

$\begin{bmatrix}Var(X) & Cov(X,Y)\\Cov(X,Y) & Var(Y)\end{bmatrix}$

Podemos obtener el coeficiente de regresión $\beta_{XY} = Cov(X,Y) / Var(X)$.

Dado un determinado n, es posible obtener el error estándar de la $\beta$ así? Si es así, que la fórmula está siendo usado? Parece que todas las fórmulas de regresión estándar de los errores que he podido encontrar asumir que usted sabe que la varianza de los residuos de la regresión, lo que no sabemos a partir de los datos de resumen solo.

---ACTUALIZACIÓN--- Basado en la retroalimentación por Greg y whuber, ahora estoy en un punto, donde sé que

$\sigma^2(b) = \sigma^2(X'X)^{-1}=\sigma^2(Var(X)(n-1))^{-1}$,

pero normalmente la matriz de fórmulas para el error estándar de la $b$, a continuación, tenga en cuenta que $\sigma^2$, se desconoce la varianza de los errores, se estima que con MSE.

Basado en los comentarios por whuber, la suma de cuadrados de los residuos es:

$Y'Y - bX'X$, que de acuerdo a Greg puede escribirse como

$Var(Y)(n-1) - b(Var(x)(n-1))$

Y para ir de aquí a MSE, creo (?) todo lo que queda es dividir por n-2,

así $(Var(Y)(n-1) - b(Var(x)(n-1))) / (n-2)$

Y conectando de todos en la producción:

$\sigma^2(b) =((Var(Y)(n-1) - b(Var(X)(n-1))) / (n-2))\times(Var(X)(n-1))^{-1}$

Voy a probar a ver si esto funciona en R, y presentarán un informe. Si alguien ve algo totalmente equivocado, agradezco el heads up.

12voto

jldugger Puntos 7490

Con la notación habitual, organizar las variables independientes por columnas en un $n\times (p+1)$ matriz $X$, con uno de ellos lleno de la constante de $1$, y organizar el dependiente de los valores de $Y$ a una $n$-vector (columna). Suponiendo que el adecuado inversas, de existir, el deseado de las fórmulas son

$$b = (X^\prime X)^{-1} X^\prime Y$$

for the $p+1$ parameter estimates $b$,

$$s^2 = (Y^\prime Y - b^\prime X^\prime Y)/(n-p-1)$$

for the residual standard error, and

$$V = (X^\prime X)^{-1} s^2$$

for the variance-covariance matrix of $b$.

When only the summary statistics $\newcommand{\m}{\mathrm m} \m_X$ (the means of the columns of $X$, forming a $p+1$-covector which includes a mean of $1$ for the constant), $m_Y$ (the mean of $Y$), $\text{Cov}(Y)$, $\text{Var}(Y)$, and $\text{Cov}(X,Y)$ are available, first recover the needed values via

$$(X^\prime X)_0 = (n-1)\text{Cov}(X) + n \m_X \m_X^\prime,$$

$$Y^\prime Y = (n-1)\text{Var}(Y) + n m_Y,$$

$$(X^\prime Y)_0 = (n-1)\text{Cov}(X,Y) + n m_Y \m_X.$$

Then to obtain $X^\el primer X$, border $(X^\prime X)_0$ symmetrically by a vector of column sums (given by $n \m_X$) with the value $n$ on the diagonal; and to obtain $X^\prime Y$, augment the vector $(X^\prime Y)_0$ with the sum $n m_Y$. For instance, when using the first column for the constant term, these bordered matrices will look like

$$X^\prime X = \pmatrix{ n & n\m_X \\ n\m_X^\prime & (X^\prime X)_0 }$$

and

$$X^\prime Y = \left(n m_Y, (X^\prime Y)_0\right)^\prime$$

in block-matrix form.

If the means are not available--the question did not indicate they are--then replace them all with zeros. The output will estimate an "intercept" of $0$, of course, and its standard error of the intercept will likely be incorrect, but the remaining coefficient estimates and standard errors will be correct.


Code

The following R code generates data, uses the preceding formulas to compute $b$, $s^2$, and the diagonal of $V$ from only the means and covariances of the data (along with the values of $n$ and $p$ of course), and compares them to standard least-squares output derived from the data. In all examples I have run (including multiple regression with $p\gt 1$) agreement is exact to the default output precision (about seven decimal places).

For simplicity--to avoid doing essentially the same set of operations three times--this code first combines all the summary data into a single matrix v and then extracts $X^\prime X$, $X^\prime Y$, and $Y^\prime$ Y a partir de sus entradas. Los comentarios de la nota de lo que está sucediendo en cada paso.

n <- 24
p <- 3
beta <- seq(-p, p, length.out=p)# The model
set.seed(17)
x <- matrix(rnorm(n*p), ncol=p) # Independent variables
y <- x %*% beta + rnorm(n)      # Dependent variable plus error
#
# Compute the first and second order data summaries.
#
m <- rep(0, p+1)                # Default means
m <- colMeans(cbind(x,y))       # If means are available--comment out otherwise
v <- cov(cbind(x,y))            # All variances and covariances
# 
# From this point on, only the summaries `m` and `v` are used for the calculations
# (along with `n` and `p`, of course).
#
m <- m * n                      # Compute column sums
v <- v * (n-1)                  # Recover sums of squares of residuals
v <- v + outer(m, m)/n          # Adjust to obtain the sums of squares
v <- rbind(c(n, m), cbind(m, v))# Border with the sums and the data count
xx <- v[-(p+2), -(p+2)]         # Extract X'X
xy <- v[-(p+2), p+2]            # Extract X'Y
yy <- v[p+2, p+2]               # Extract Y'Y
b <- solve(xx, xy)              # Compute the coefficient estimates
s2 <- (yy - b %*% xy) / (n-p-1) # Compute the residual variance estimate
#
# Compare to `lm`.
#
fit <- summary(lm(y ~ x))
(rbind(Correct=coef(fit)[, "Estimate"], From.summary=b))    # Coeff. estimates
(c(Correct=fit$sigma, From.summary=sqrt(s2)))               # Residual SE
#
# The SE of the intercept will be incorrect unless true means are provided.
#
se <- sqrt(diag(solve(xx) * c(s2))) # Remove `diag` to compute the full var-covar matrix
(rbind(Correct=coef(fit)[, "Std. Error"], From.summary=se)) # Coeff. SEs

4voto

Eero Puntos 1612

Una rápida y sucia de enfoque cuando los resúmenes, pero no los datos en bruto es generar un conjunto de datos en la que se especifica en los resúmenes y el tamaño de la muestra y, a continuación, ejecute los datos simulados a través de sus rutinas regulares para calcular lo que quieras. El mvrnorm en función de la MASA del paquete de R generará al azar de datos normal con una media de vector y matriz de covarianza. Estoy seguro de que otros programas (o usted puede crear su propio mediante la generación de datos y, a continuación, multiplicando por la matriz apropiada).

Desde el lado teórico usted puede comenzar a pensar acerca de tener todas las variables de centrado (significa que resta para que la corriente media es exactamente 0, esto realmente sólo afecta a la intercepción), a continuación,$x'x=var(x)\times (n-1)$, $x'y=cov(x,y)\times(n-1)$, y $y'y=var(y)\times(n-1)$. Tan sólo enchufe de esos valores en la matriz de la versión de la fórmula del error estándar que desee.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X