La corrélation entre les deux vecteurs?
J'ai deux vecteurs:
A_1 =
10
200
7
150
A_2 =
0.001
0.450
0.0007
0.200
Je voudrais savoir si il existe une corrélation entre ces deux vecteurs.
J'ai pu soustraire à chaque valeur de la moyenne du vecteur et que faire:
A_1' * A_2
Sont là les meilleures façons?
- Qu'entendez-vous par "mieux?"
- Vous pouvez faire une régression linéaire entre les deux et vérifier la
r
carré de la valeur. - Poster une réponse, avec des exemples de code s'il vous plaît. Donner à cette question une certaine chance d'être sauvés.
- Aussi related post: stackoverflow.com/q/8416968/380384
- deuxième de robert, de poster une réponse si vous le pouvez
Vous devez vous connecter pour publier un commentaire.
Donné:
(Comme d'autres l'ont déjà souligné), Il existe des outils tout simplement de calculer la corrélation, qui est le plus évident
corr
:Vous pouvez également utiliser la base de Matlab
corrcoef
fonction, comme ceci:Qui est étroitement liée à la
cov
fonction:Que vous obtenez près à votre question initiale, vous pouvez mettre à l'échelle et d'ajuster les vecteurs de vous-même si vous le souhaitez, ce qui donne un peu plus de compréhension de ce qui se passe. Créez d'abord un état de la fonction qui soustrait la moyenne, et divise par l'écart-type:
Ensuite, la corrélation semble être (A_1 * A_2)/(A_1^2), comme ceci:
Par symétrie, cela devrait aussi fonctionner
Et il n'.
Je crois, mais n'ont pas l'énergie pour confirmer dès maintenant, que la même les mathématiques peuvent être utilisées pour calculer la corrélation et de corrélation croisée termes lorsque vous traitez avec des multi-dimensiotnal entrées, tant que les précautions sont prises lors de la manipulation des dimensions et orientations de l'entrée des tableaux.
Essayer
xcorr
, c'est une fonction intégrée dans MATLAB pour le cross-corrélation:Cependant, notez qu'il nécessite la Boîte À Outils De Traitement Du Signal installé. Si non, vous pouvez regarder dans le
corrcoef
de commande à la place.Pour les corrélations vous pouvez simplement utiliser la corr fonction (boîte à outils de statistiques)
Notez que vous pouvez aussi simplement utiliser
Mais le linéaire de l'indexation est la garantie que vos vecteurs n'ont pas besoin d'être transposé.
Pour effectuer une régression linéaire entre deux vecteurs
x
ety
suivez ces étapes:Pour
x=[10;200;7;150]
ety=[0.001;0.45;0.0007;0.2]
- je obtenirrsq = 0.9181
.URL de référence: http://www.mathworks.com/help/matlab/data_analysis/linear-regression.html