¿Existe una función para probar la hipótesis de que la correlación de dos vectores es igual a un número dado, digamos 0.75? Usando cor.test puedo probar cor = 0 y puedo ver si 0.75 está dentro del intervalo de confianza. Pero, ¿hay una función para calcular el valor p para cor = 0.75?
x <- rnorm(10)
y <- x+rnorm(10)
cor.test(x, y)
r
correlation
mosaico
fuente
fuente
Respuestas:
Usando la variación que estabiliza la transformación atan de Fisher , puede obtener el valor p como
o cualquier versión del valor p unilateral / bilateral que le interese. Obviamente, necesita el tamaño de
n
la muestra y el coeficiente de correlación de la muestrar
como entradas para esto.fuente
La distribución de r_hat alrededor de rho está dada por esta función R adaptada del código de Matlab en la página web de Xu Cui . No es tan difícil convertir esto en una estimación de la probabilidad de que un valor observado "r" sea improbable dado un tamaño de muestra de "n" y un valor hipotético verdadero de "ro".
Luego, con esa función, puede trazar la distribución de un nulo rho de 0.75, calcular la probabilidad de que r_ sea menor que 0.6 y sombrear esa área en el gráfico:
fuente
Otro enfoque que puede ser menos exacto que la transformación de Fisher, pero creo que podría ser más intuitivo (y podría dar ideas sobre la significación práctica además de la significación estadística) es la prueba visual:
Hay una implementación de esto en la
vis.test
función en elTeachingDemos
paquete para R. Una posible forma de ejecutarlo para su ejemplo es:Por supuesto, si sus datos reales no son normales o la relación no es lineal, eso se captará fácilmente con el código anterior. Si desea realizar una prueba simultánea de esos, entonces el código anterior haría eso, o el código anterior podría adaptarse para representar mejor la naturaleza de los datos.
fuente