Existe-t-il une fonction pour tester l'hypothèse que la corrélation de deux vecteurs est égale à un nombre donné, disons 0,75? En utilisant cor.test, je peux tester cor = 0 et je peux voir si 0,75 est à l'intérieur de l'intervalle de confiance. Mais existe-t-il une fonction pour calculer la valeur de p pour cor = 0,75?
x <- rnorm(10)
y <- x+rnorm(10)
cor.test(x, y)
r
correlation
mosaïque
la source
la source
Réponses:
En utilisant la variance stabilisant la transformation atan de Fisher , vous pouvez obtenir la valeur de p comme
ou quelle que soit la version de la valeur de p unilatérale / bilatérale qui vous intéresse. Évidemment, vous avez besoin de la taille de
n
l'échantillon et du coefficient de corrélation d'échantillonr
comme entrées pour cela.la source
La distribution de r_hat autour de rho est donnée par cette fonction R adaptée du code Matlab sur la page web de Xu Cui . Il n'est pas si difficile de transformer cela en une estimation de la probabilité qu'une valeur observée "r" soit improbable étant donné une taille d'échantillon de "n" et une valeur hypothétique vraie de "ro".
Ensuite, avec cette fonction, vous pouvez tracer la distribution d'un rho nul de 0,75, calculer la probabilité que r_hat soit inférieur à 0,6 et l'ombre dans cette zone sur le tracé:
la source
Une autre approche qui peut être moins exacte que la transformation de Fisher, mais je pense qu'elle pourrait être plus intuitive (et pourrait donner des idées sur la signification pratique en plus de la signification statistique) est le test visuel:
Il y a une implémentation de ceci dans la
vis.test
fonction dans leTeachingDemos
package pour R. Une façon possible de l'exécuter pour votre exemple est:Bien sûr, si vos données réelles ne sont pas normales ou si la relation n'est pas linéaire, cela sera facilement détecté avec le code ci-dessus. Si vous souhaitez tester simultanément ceux-ci, le code ci-dessus le ferait ou le code ci-dessus pourrait être adapté pour mieux représenter la nature des données.
la source