Pearson Calculation using MATLAB

6 visualizaciones (últimos 30 días)
Abhishek
Abhishek el 28 de Abr. de 2011
Comentada: Tahariet Sharon el 28 de Oct. de 2017
For calculating Pearson Coefficient, i am using the below formula in MATLAB:
C=cov(x,y); p=C(2)/(std(x)*std(y));
But C(2) is zero in my case if
x = [1 0 1 0 0 0]; y = [1 1 1 1 1 1];
Any idea where I am going wrong

Respuestas (1)

Matt Tearle
Matt Tearle el 28 de Abr. de 2011
Your y values are all the same. Hence y_i - mean(y) = 0 for each i. The formula for covariance is
cov(x,y) = sum_i[(x_i-mean(x))*(y_i-mean(y)]/n
So every term in your sum is 0. This makes sense in that there is only one y value, but different corresponding x values. The correlation coefficient, however, will be NaN because std(y) will also be 0.
  2 comentarios
Oleg Komarov
Oleg Komarov el 28 de Abr. de 2011
@Abhishek: you can also use corrcoeff
Tahariet Sharon
Tahariet Sharon el 28 de Oct. de 2017
I think you should normalize by n-1.

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by