Correlação de Pearson

Talvez o índice mais utilizado para testar a correlação linear entre duas variáveis seja o Coeficiente de correlação de Pearson.

O pacote Scipy, oferece dentro de seu submódulo stats, a função pearsonr, que recebe as duas variáveis de interesse como argumentos e retorna o coeficiente de correlação, também conhecido como r e o p-value indicando a probabilidade de que duas variáveis não correlacionadas assumam, ao acaso, valores ao menos tão correlacionados como os de interesses.

Digamos que tenhamos variáveis a = [3,4,5,6,7,8] e seus valores correspondentes b = [9,10,11,12,13,14]. Testamos a correlação da seguinte maneira:

>>> from scipy import stats # importa o módulo stats do scipy
>>> a = [3,4,5,6,7,8] # declara as variáveis e seus valores
>>> b = [9,10,11,12,13,14]
>>> print stats.pearsonr.__doc__ # mostra a docstring da função scipy.stats.pearsonr
Calculates a Pearson correlation coefficient and the p-value for testing
    non-correlation.

    The Pearson correlation coefficient measures the linear relationship between
    two datasets. Strictly speaking, Pearson's correlation requires that each
    dataset be normally distributed. Like other correlation coefficients, this
    one varies between -1 and +1 with 0 implying no correlation. Correlations of
    -1 or +1 imply an exact linear relationship. Positive correlations imply
    that as x increases, so does y. Negative correlations imply that as
    x increases, y decreases.

    The p-value roughly indicates the probability of an uncorrelated system
    producing datasets that have a Pearson correlation at least as extreme as
    the one computed from these datasets. The p-values are not entirely reliable
    but are probably reasonable for datasets larger than 500 or so.

    Parameters
    ----------
    x : 1D array
    y : 1D array the same length as x

    Returns
    -------
    (Pearson's correlation coefficient,
     2-tailed p-value)

    References
    ----------
    http://www.statsoft.com/textbook/glosp.html#Pearson%20Correlation

>>> stats.pearsonr(a,b) # calcula o coeficiente de correlação
(1.0, 1.4999999999999993e-40) #no caso artificial, totalmente correlacionadas, e com probabilidade baixíssima de a correlação ser ao acaso
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License