quinta-feira, 22 de abril de 2021

Python - Utilizando o método Series.cov() para encontrar a covariância

O método Series.cov() do pandas é usado para encontrar a covariância de duas séries. No exemplo a seguir, a covariância é encontrada usando o método do pandas e manualmente e as respostas são comparadas.

Sintaxe: Series.cov(other, min_periods=None)

Parâmetros:

  • other: Outra série a ser usada para encontrar covariância.
  • min_periods: Número mínimo de observações a serem feitas para obter um resultado válido.

Tipo de retorno: Valor flutuante, retorna a covariância da série do autor da chamada e da série passada.

Exemplo: Neste exemplo, duas listas são feitas e convertidas em série usando o método pandas.Series(). A média se ambas as séries forem encontradas e uma função for criada para encontrar Covarience manualmente. pandas.cov() também é aplicado e os resultados de ambas as formas são armazenados em variáveis e impressos para comparar as saídas.

import pandas as pd

a = [2, 3, 2.7, 3.2, 4.1]

b = [10, 14, 12, 15, 20]

# armazenando média de a
av_a = sum(a)/len(a)

# armazenando média de b
av_b = sum(b)/len(b)

# fazendo série da lista a
a = pd.Series(a)

# fazendo série da lista b
b = pd.Series(b)

# covariância através do método do pandas
covar = a.cov(b)

# encontrar covariância manualmente
def covarfn(a, b, av_a, av_b):
    cov = 0

    for i in range(0, len(a)):
        cov += (a[i] - av_a) * (b[i] - av_b)
    return (cov / (len(a)-1))

# chamando função
cov = covarfn(a, b, av_a, av_b)

# imprimindo resultado
print("Resultados do método do pandas: ", covar)
print("Resultados do método de função manual: ", cov)

Como pode ser visto na saída, a saída de ambas as formas é a mesma. Portanto, este método é útil para encontrar a covariância para grandes séries.

Saída:

Resultados do método do pandas:  2.8499999999999996
Resultados do método de função manual:  2.8499999999999996

Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Pandas Series.cov() to find Covariance.

Licença

0 comentários:

Postar um comentário