Ho due array 1D e voglio vedere le loro interrelazioni. Quale procedura dovrei usare in numpy? Sto usando numpy.corrcoef(arrayA, arrayB)
e numpy.correlate(arrayA, arrayB)
ed entrambi stanno dando dei risultati che non sono in grado di comprendere o capire. Qualcuno può per favore chiarire come interpretare e interpretare quei risultati numerici (preferibilmente usando un esempio)? Grazie.come interpretare i valori di numpy.correlate e numpy.corrcoef?
risposta
numpy.correlate
restituisce semplicemente la correlazione incrociata di due vettori.
se è necessario comprendere la correlazione incrociata, quindi iniziare con http://en.wikipedia.org/wiki/Cross-correlation.
Un buon esempio potrebbe essere visto guardando la funzione di autocorrelazione (un vettore trasversale correlata con se stesso):
import numpy as np
# create a vector
vector = np.random.normal(0,1,size=1000)
# insert a signal into vector
vector[::50]+=10
# perform cross-correlation for all data points
output = np.correlate(vector,vector,mode='full')
Ciò restituirà una funzione pettine/Shah con un massimo quando entrambi i set di dati si sovrappongono. Poiché si tratta di una autocorrelazione, non vi sarà alcun "ritardo" tra i due segnali di ingresso. Il massimo della correlazione è quindi vector.size-1.
se si desidera solo il valore della correlazione per i dati che si sovrappongono, è possibile utilizzare mode='valid'
.
Al momento posso solo commentare numpy.correlate
. È uno strumento potente. L'ho usato per due scopi. Il primo è quello di trovare un modello all'interno di un altro modello:
import numpy as np
import matplotlib.pyplot as plt
some_data = np.random.uniform(0,1,size=100)
subset = some_data[42:50]
mean = np.mean(some_data)
some_data_normalised = some_data - mean
subset_normalised = subset - mean
correlated = np.correlate(some_data_normalised, subset_normalised)
max_index = np.argmax(correlated) # 42 !
Il secondo uso L'ho usato per la (e come interpretare il risultato) è per il rilevamento della frequenza:
hz_a = np.cos(np.linspace(0,np.pi*6,100))
hz_b = np.cos(np.linspace(0,np.pi*4,100))
f, axarr = plt.subplots(2, sharex=True)
axarr[0].plot(hz_a)
axarr[0].plot(hz_b)
axarr[0].grid(True)
hz_a_autocorrelation = np.correlate(hz_a,hz_a,'same')[round(len(hz_a)/2):]
hz_b_autocorrelation = np.correlate(hz_b,hz_b,'same')[round(len(hz_b)/2):]
axarr[1].plot(hz_a_autocorrelation)
axarr[1].plot(hz_b_autocorrelation)
axarr[1].grid(True)
plt.show()
Trova l'indice dei secondi picchi. Da questo puoi tornare indietro per trovare la frequenza.
first_min_index = np.argmin(hz_a_autocorrelation)
second_max_index = np.argmax(hz_a_autocorrelation[first_min_index:])
frequency = 1/second_max_index
- 1. Come interpretare i flag CorFlags?
- 2. Come interpretare i componenti LDA (usando sklearn)?
- 3. Come posso usare numpy.correlate per eseguire l'autocorrelazione?
- 4. come interpretare i dati IRStatisticsImpl in mahout
- 5. Come interpretare i dati binari in C++?
- 6. interpretare i risultati di Naive Bayes
- 7. Come interpretare l'uscita TensorFlow?
- 8. Come interpretare i risultati della decomposizione dei valori singolari (Python 3)?
- 9. come interpretare RDD.treeAggregate
- 10. Come interpretare i contenuti di/proc/bus/pci/devices?
- 11. Come interpretare i seguenti messaggi di errore in C++
- 12. Come interpretare i messaggi di Poolallocator in tensorflow?
- 13. Come interpretare iostat?
- 14. come interpretare il file jacoco.xml?
- 15. Come interpretare MapReduce contatori di Performance
- 16. Come interpretare l'output di MySQL EXPLAIN?
- 17. Come interpretare i risultati di Allocations e VM Tracker in Instruments?
- 18. Come si pitone interpretare i numeri con zeri
- 19. Come interpretare le diverse densità di ggplot2?
- 20. Come interpretare hasPermission nella sicurezza di primavera?
- 21. Come posso interpretare l'output di velocità openssl?
- 22. Come interpretare "termini e definizioni" nel documento standard C++?
- 23. sed o simile: non interpretare come regex, interpretare come stringa fissa/letterale
- 24. Qual è lo scopo del file _tags con OCaml e come interpretare i contenuti?
- 25. Feed RSS per i prezzi del gas e come interpretare il feed
- 26. Come interpretare la previsione del risultato di SVM in R?
- 27. eseguire interpretare C++?
- 28. Youtube oembed: come calcola i valori di "larghezza" e "altezza"?
- 29. Come interpretare le letture dell'accelerometro da iPhone
- 30. Come interpretare la struttura senza definizione?
è un vecchio, ma poiché ho la stessa domanda, non riesco a capire come vengo alla conclusione. Ho o non ho autocorrelazione sul rapporto? Come posso tradurre l'output? – hephestos