Desidero calcolare i coefficienti di autocorrelazione della lunghezza di ritardo uno tra le colonne di un DataFrame di Pandas. Un frammento dei miei dati è:Calcolo dell'autocorrelazione di Pandas DataFrame lungo ciascuna colonna
RF PC C D PN DN P
year
1890 NaN NaN NaN NaN NaN NaN NaN
1891 -0.028470 -0.052632 0.042254 0.081818 -0.045541 0.047619 -0.016974
1892 -0.249084 0.000000 0.027027 0.067227 0.099404 0.045455 0.122337
1893 0.653659 0.000000 0.000000 0.039370 -0.135624 0.043478 -0.142062
Lungo anno, voglio calcolare autocorrelazioni di lag uno per ogni colonna (RF, PC, ecc ...).
Per calcolare le autocorrelazioni, ho estratto due serie temporali per ogni colonna i cui dati di inizio e fine differivano di un anno e quindi i coefficienti di correlazione calcolati con numpy.corrcoef
.
Per esempio, ho scritto:
numpy.corrcoef(data[['C']][1:-1],data[['C']][2:])
(l'intero dataframe si chiama data
).
Tuttavia, il comando purtroppo restituito:
array([[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
...,
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan]])
Qualcuno può consigliarmi gentilmente su come calcolare autocorrelazioni?