Todavía no he probado a sacar datos para predecir, pero mi intuición es que fijar las covarianzas a cero en su modelo es análogo a predecir una VD combinando un conjunto de ecuaciones de regresión lineal separadas, de un solo IV. A diferencia de este enfoque, la regresión múltiple tiene en cuenta la covarianza en los IVs al producir un modelo de ecuaciones para predecir la VD. Esto ciertamente mejora la interpretabilidad al separar los efectos directos de los efectos indirectos que ocurren completamente dentro del conjunto incluido de IVs. Sin embargo, no estoy seguro de que esto mejore necesariamente la predicción de la VD. Siendo un usuario de estadísticas y no un estadístico, he elaborado la siguiente función de prueba de simulación para dar una respuesta incompleta (aparentemente, "Sí, la precisión de la predicción mejora cuando el modelo incorpora la covarianza de los IVs") en este caso, que espero sea análogo...
simtestit=function(Sample.Size=100,Iterations=1000,IV.r=.3,DV.x.r=.4,DV.z.r=.4) {
require(psych); output=matrix(NA,nrow=Iterations,ncol=6); for(i in 1:Iterations) {
x=rnorm(Sample.Size); z=rnorm(Sample.Size)+x*IV.r
y=rnorm(Sample.Size)+x*DV.x.r+z*DV.z.r
y.predicted=x*lm(y~x+z)$coefficients[2]+z*lm(y~x+z)$coefficients[3]
bizarro.y.predicted=x*lm(y~x)$coefficients[2]+z*lm(y~z)$coefficients[2]
output[i,]=c(cor(y.predicted,y)^2,cor(bizarro.y.predicted,y)^2,
cor(y.predicted,y)^2>cor(bizarro.y.predicted,y)^2,cor(x,z),cor(x,y),cor(y,z))}
list(output=output,percent.of.predictions.improved=100*sum(output[,3])/Iterations,
mean.improvement=fisherz2r(mean(fisherz(output[,1])-fisherz(output[,2]))))}
# Wrapping the function in str( ) gives you the gist without filling your whole screen
str(simtestit())
Esta función genera muestras aleatorias ( $N =$ Iterations
, $n$ = Sample.Size
) de tres variables con distribución normal: z
$=$ x
$+$ ruido aleatorio, y y
$=$ x
$+$ z
$+$ ruido aleatorio. El usuario puede influir un poco en sus correlaciones anulando los valores predeterminados para los tres últimos argumentos, pero el ruido aleatorio afecta también a las correlaciones de la muestra, de modo que esto simula la forma en que el error de muestreo afecta a las estimaciones de los verdaderos parámetros de correlación. La función calcula las predicciones de y
basado en los coeficientes de regresión para x
y z
derivado de:
( $1$ ) regresión múltiple ( y.predicted
), y...
( $2$ ) dos regresiones lineales bivariadas separadas ( bizarro.y.predicted
).
El output
La matriz contiene Iterations
filas y seis columnas: el $R^2$ s de $1$ y $2$ una prueba de verdadero-falso para saber si $1 > 2$ y la bivariante $r$ s para las tres combinaciones únicas de x
, y
, & z
. Esta función produce una lista de tres elementos, el primero de los cuales es el output
matriz. Por defecto, ésta tiene 1.000 filas, por lo que recomiendo envolver simtestit()
en el str( )
o eliminando este elemento de la lista en la propia función, a menos que esté interesado en las estadísticas individuales de la muestra por alguna razón. El porcentaje de iteraciones en las que $R^2$ se mejoró utilizando ( $1$ ) para tener en cuenta la covarianza de los IVs, y la media de estas mejoras a través de las iteraciones (en la escala de $r$ utilizando una transformación de Fisher a través de la psych
paquete).
La función se ajusta por defecto a una breve prueba de simulación de circunstancias bastante típicas para una regresión múltiple de base máxima. Permite al usuario cambiar los tamaños de las muestras individuales y las correlaciones de las variables para adaptarse al estudio y a las teorías previas sobre la fuerza de la relación. No he probado todas las configuraciones posibles, pero cada vez que he ejecutado la función, el 100% de las iteraciones han producido mayores $R^2$ con regresión múltiple. La mejora media en $R^2$ parece ser mayor cuando la covarianza de los IVs (que puede ser manipulada de forma incompleta introduciendo un argumento para IV.r
) es mayor. Dado que usted probablemente está más familiarizado con su función GLM que yo (que no lo estoy en absoluto), probablemente podría cambiar esta función o utilizar la idea básica para comparar las predicciones GLM a través de cualquier número de IVs que desee sin demasiados problemas. Suponiendo que eso resulte (o resulte) de la misma manera, parecería que la respuesta básica a su segunda pregunta es probablemente sí, pero cuánto depende de la intensidad de la covariación de los IVs. Las diferencias en el error de muestreo entre los datos retenidos y los datos utilizados para ajustar el modelo podrían abrumar la mejora en su precisión predictiva dentro del último conjunto de datos, porque de nuevo, la mejora parece ser pequeña a menos que las correlaciones de los IVs sean fuertes (al menos, en el caso máximo básico con sólo dos IVs).
5 votos
Básicamente, usted debe especificar una estructura de covarianza en el GLM. Si por "asumir que no hay covarianza" quiere decir que "todas las entradas no diagonales de la matriz de covarianza son cero", entonces todo lo que hizo fue asumir una estructura de covarianza muy específica. (Podría ser incluso más específico, por ejemplo, asumiendo que todas las varianzas son iguales). En resumen: No estoy seguro de que la pregunta tenga sentido en su forma actual. (De todos modos, he votado a favor porque creo que aprenderé mucho cuando los gurús empiecen a hablar). ¿O es que te he entendido mal?
0 votos
¿Se refiere a la estructura de covarianza en un MLG con una distribución de mezcla normal multivariante, por ejemplo, o al análisis de la estructura de covarianza de una matriz de covarianza, o a otra cosa?
1 votos
@StephanKolassa ¿quieres copiar tu comentario en una respuesta? Parece que responde a la pregunta lo mejor que se puede hacer.
0 votos
@Corone: buen punto, gracias por el recordatorio. Fui y publiqué una respuesta. Tal vez alguien más se anime y dé una mejor...