Quiero determinar cuál de los dos conjuntos de datos (B1, B2) se correlaciona mejor (pearsons r) con otro conjunto (A). Faltan datos en todos los conjuntos de datos. ¿Cómo puedo determinar si la correlación resultante es significativamente diferente o no?
Por ejemplo, los valores 8426 están presentes tanto en A como en B1, r = 0.74. 8798 están presentes tanto en A como en B2, r = 0.72.
Pensé que esta pregunta podría ayudar, pero no tiene respuesta: ¿Cómo saber que un sistema es significativamente mejor que otro?
Respuestas:
A veces uno puede ser capaz de lograr esto en la regresión múltiple, donde A es el DV, B es la puntuación de la gente tiene en una escala, y C es un código ficticio que dice que es o bien B1 o B2:
lm(A~B+C+B*C)
. El término de interacciónB*C
, le dirá si las correlaciones son diferentes, mientras que las pendientes simples entre A y B en ambos niveles de C le indicarán las correlaciones.Sin embargo, no es posible ajustar todos los tipos de comparaciones entre condiciones en este marco. El
cocor
paquete R es muy útil y tiene una interfaz muy simple de apuntar y hacer clic en la web. Tenga en cuenta que, con diferentes datos faltantes, no tiene muestras independientes ni dependientes. Usaría la eliminación por listas aquí, para que sea simple (y el poder no es un problema para usted).fuente
Oh, el poder del bootstrap. Veamos tres vectores para la ilustración:UNA , si1 y si2 donde:
Co r ( A , B1) = 0.92
Co r ( A , B2) = 0.86
El objetivo es determinar si la correlación de estos dos conjuntos de datos es significativamente diferente. Al tomar muestras de bootstrap así:
Podemos trazar las distribuciones de arranque de las dos correlaciones:
También podemos obtener intervalos de confianza del 95% paraCo r ( A , Byo) .
95% CI paraCo r r ( A , B1) :
( 0,897 , 0,947 )
IC del 95% paraCo r r ( A , B2) :
( 0.810 , 0.892 )
El hecho de que los intervalos no se superpongan (apenas) nos da alguna evidencia de que la diferencia en las correlaciones muestrales que observamos es de hecho estadísticamente significativa.
Como la ameba señala en los comentarios, un resultado más "poderoso" proviene de obtener la diferencia para cada una de las muestras de bootstrap.
Un IC del 95% para la diferencia entre los dos es:( 0.019 , 0.108 )
Observando que el intervalo (apenas) excluye 0, tenemos evidencia similar a la anterior.
Para manejar el problema de datos faltantes, simplemente seleccione sus muestras de bootstrap de los pares que están contenidos en ambos conjuntos de datos.
fuente
Luego se deduce que, debido al hecho de que las variables transformadas de Fisher ahora están normalmente distribuidas y la suma de las variables aleatorias normalmente distribuidas todavía se distribuye normalmente:
-
Después del comentario de @Josh , podemos incorporar de alguna manera la posibilidad de interdependencia entre muestras (recuerde que ambas correlaciones dependen de la distribución de A). Sin suponer muestras independientes y usar la desigualdad de Cauchy-Schwarz, podemos obtener el siguiente límite superior (ver: ¿Cómo encuentro la desviación estándar de la diferencia entre dos medias? ):
fuente
Editado después de comentarios útiles de Mark White (¡gracias!)
Una opción es calcular ambas relaciones (B1 con A y B2 con A) en un solo modelo que también estima la diferencia entre ellas. Esto es fácil de lograr con regresión múltiple . Ejecutaría un modelo con A como variable dependiente, y luego una variable continua con todos los puntajes para B1 y B2, una variable categórica que indica qué variable era (B1 o B2), y la interacción entre ellos. En r:
Aquí están las correlaciones de los datos que generé:
Cambiar el formato de los datos para satisfacer las necesidades del modelo (reformatear a "largo"):
Aquí está el modelo:
Los resultados aquí (de mis datos inventados) sugieren que existe una relación significativa entre B1 y A (la prueba del coeficiente de "valor", ya que B1 es el grupo de referencia para el coeficiente "var"), pero que la diferencia entre la relación B1 con A y la relación B2 con A no es significativa (la prueba del coeficiente "valor: varB2").
Si le gusta pensar en términos de correlación en lugar de coeficientes de regresión, simplemente estandarice todas sus variables (A, B1 y B2) antes de ejecutar el modelo y los coeficientes de regresión que obtendrá serán estandarizados (no exactamente lo mismo que un correlación de orden cero, pero mucho más cercana en términos de interpretación).
También tenga en cuenta que esto va a restringir su análisis sólo a los casos que tienen tanto B1 y B2 ( eliminación por lista ). Mientras eso te deje con suficientes datos para no tener poca potencia, y mientras los datos faltantes falten al azar (o una proporción lo suficientemente pequeña del total de datos como para no importar mucho, incluso si faltan de manera no aleatoria), entonces está bien.
El hecho de que esté restringiendo su análisis al mismo conjunto de datos para estimar los efectos tanto para B1 como para B2 (en lugar de usar conjuntos de datos ligeramente diferentes, basados en los diferentes patrones de falta) tiene la ventaja de interpretar un poco la diferencia entre correlaciones Más sencillo. Si calcula las correlaciones por separado para cada una y luego prueba la diferencia entre ellas , se encuentra con el problema de que los datos subyacentes son ligeramente diferentes en cada caso: cualquier diferencia que vea podría deberse tanto a diferencias en las muestras como a diferencias en las relaciones reales entre variables.
fuente
lm(A~B1*B2)
pondrá a prueba si la correlación entreB1
yA
depende de laB2
puntuación de uno ? Ese término de interacción no prueba si las correlaciones son diferentes; está probando si los dos predictores interactúan entre sí. Puede crear un código ficticio,C
que codifica si la escalaB
esB1
o noB2
. Entonces eso le diría que la correlación entreB
yA
depende de si esB1
oB2
, es decir, si las correlaciones son diferentes.