Tüm sabit rasgele süreç olan 3 dizinin X1, X2 ve Y otomatik kovaryansını hesaplamak istiyorum. SciPy veya diğer kütüphanede herhangi bir işlev bu sorunu çözebilir mi?Python'da otomatik kovaryans nasıl hesaplanır
cevap
Statsmodels oto ve çapraz kovaryans fonksiyonları
http://statsmodels.sourceforge.net/devel/generated/statsmodels.tsa.stattools.acovf.html http://statsmodels.sourceforge.net/devel/generated/statsmodels.tsa.stattools.ccovf.html
artı korelasyon fonksiyonları ve küçük sinyaller için otokovaryans katsayısı standart tahminlerine göre kısmi otokorelasyon http://statsmodels.sourceforge.net/devel/tsa.html#descriptive-statistics-and-tests
, sahip olan denklem ile ifade edilebilir:
k
örnekle x(i)
sinyalin kayma açılımı k
belirli bir sinyal (örneğin, belirli bir 1D vektör), bir
..., N
x(i)
sinyalin uzunluğu ve:
... ortalamasından ibaret olan biz yazabiliriz:
'''
Calculate the autocovarriance coefficient.
'''
import numpy as np
Xi = np.array([1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5])
N = np.size(Xi)
k = 5
Xs = np.average(Xi)
def autocovariance(Xi, N, k, Xs):
autoCov = 0
for i in np.arange(0, N-k):
autoCov += ((Xi[i+k])-Xs)*(Xi[i]-Xs)
return (1/(N-1))*autoCov
print("Autocovariance:", autocovariance(Xi, N, k, Xs))
Eğer isterseniz Sadece yukarıdaki koda eklemek için sadece iki ek hatları var daha ...
:
def autocorrelation():
return autocovariance(Xi, N, k, Xs)/autocovariance(Xi, N, 0, Xs)
İşte şeklinde ifade otokorelasyon katsayısı olacak otokovaryansı katsayısı, normalleştirmek tam komut dosyası:
'''
Calculate the autocovarriance and autocorrelation coefficients.
'''
import numpy as np
Xi = np.array([1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5])
N = np.size(Xi)
k = 5
Xs = np.average(Xi)
def autocovariance(Xi, N, k, Xs):
autoCov = 0
for i in np.arange(0, N-k):
autoCov += ((Xi[i+k])-Xs)*(Xi[i]-Xs)
return (1/(N-1))*autoCov
def autocorrelation():
return autocovariance(Xi, N, k, Xs)/autocovariance(Xi, N, 0, Xs)
print("Autocovariance:", autocovariance(Xi, N, k, Xs))
print("Autocorrelation:", autocorrelation())
alın örnek oto kovaryans:
# cov_auto_samp(X,delta)/cov_auto_samp(X,0) = auto correlation
def cov_auto_samp(X,delta):
N = len(X)
Xs = np.average(X)
autoCov = 0.0
times = 0.0
for i in np.arange(0, N-delta):
autoCov += (X[i+delta]-Xs)*(X[i]-Xs)
times +=1
return autoCov/times
Python for
döngüsünü önleyen ve bunun yerine numpy dizi işlemlerini kullanan önceki yanıtlara küçük bir ince ayar. Çok fazla veri varsa bu daha hızlı olacaktır. 50.000 veri noktası bir zaman-serisi kullanılarak ve gecikme tek bir sabit değeri için otomatik korelasyon işlem, @bluevoxel 'in kod karşı bu karşılaştırma
def lagged_auto_cov(Xi,t):
"""
for series of values x_i, length N, compute empirical auto-cov with lag t
defined: 1/(N-1) * \sum_{i=0}^{N-t} (x_i - x_s) * (x_{i+t} - x_s)
"""
N = len(time_series)
# use sample mean estimate from whole series
Xs = np.mean(Xi)
# construct copies of series shifted relative to each other,
# with mean subtracted from values
end_padded_series = np.zeros(N+t)
end_padded_series[:N] = Xi - Xs
start_padded_series = np.zeros(N+t)
start_padded_series[t:] = Xi - Xs
auto_cov = 1./(N-1) * np.sum(start_padded_series*end_padded_series)
return auto_cov
, piton for
döngü kod yaklaşık 30 mili-saniye ortalaması alınır ve numpy dizileri ortalama 0.3 mili saniyeden daha hızlı (dizüstü bilgisayarımda çalışıyor) kullanarak.
- 1. .NET Kovaryans
- 2. Tür Üyeler ve Kovaryans
- 3. temsilci kovaryans ve Contavariance
- 4. Matlab'da Kovaryans Matrisinin Hesaplanması
- 5. Nümerik dizi veya pandalarla pythonda rutini sadeleştirme
- 6. Paralelleştirilmiş C# Kodunun yüzdesi nasıl hesaplanır/hesaplanır
- 7. Kovaryans/contravariance: Aşağıdaki kodu nasıl derlemek
- 8. Tıklama oranı nasıl hesaplanır
- 9. DataGridView.Rows.Height nasıl hesaplanır?
- 10. PCA'da centroid nasıl hesaplanır?
- 11. Croston yöntemi nasıl hesaplanır
- 12. C# Döküm jenerikleri (kovaryans ve kontravaryans?)
- 13. Python'da gelecek Cuma nasıl hesaplanır?
- 14. Python'da mod b nasıl hesaplanır?
- 15. Java ME'de logaritma nasıl hesaplanır?
- 16. Hareketli Standart Sapma Nasıl Hesaplanır
- 17. Oylama algoritması: sıralama nasıl hesaplanır?
- 18. Selenium IDE: Değişkenler Nasıl Hesaplanır
- 19. GLSL içinde gl_FragCoord nasıl hesaplanır
- 20. Bir noktanın enlemi nasıl hesaplanır?
- 21. İki gruptaki değerler nasıl hesaplanır
- 22. Lojistik regresyonun ağırlıkları nasıl hesaplanır?
- 23. Functor'ın dönüş değeri nasıl hesaplanır?
- 24. Ağaç boyamanın yolları nasıl hesaplanır?
- 25. Kovaryans bildirmek için bir yol var mı?
- 26. Popülasyon kovaryans matrisini hesaplamak için cov nasıl yeniden tanımlanır
- 27. % 95 CI, R'de confint kullanılarak nasıl hesaplanır?
- 28. Gerçek sayının ters faktörü nasıl hesaplanır?
- 29. Postgre'lerde üstel hareketli ortalama nasıl hesaplanır?
- 30. Rm t'si paketi ile okunabilirlik nasıl hesaplanır
Numpy zaten [korelasyon] hesaplamak için gereken her şeye sahiptir (https://docs.scipy.org/doc/numpy/reference/generated/numpy.correlate.html). (Hangi [scipy.signal.fftconvolve] ile hızlandırılabilir (http://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.signal.fftconvolve.html). Otokovaryansı elde etmek için [varyans] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.var.html) ile çarpılmalıdır. – Celelibi