모든 고정 무작위 프로세스 인 3 개의 배열 X1, X2 및 Y의 자동 공분산을 계산하고 싶습니다. sciPy 또는 다른 라이브러리에이 기능을 해결할 수있는 기능이 있습니까?파이썬에서 자동 공분산을 계산하는 방법
답변
Statsmodels는 자동 및 크로스 공분산 함수
http://statsmodels.sourceforge.net/devel/generated/statsmodels.tsa.stattools.acovf.html http://statsmodels.sourceforge.net/devel/generated/statsmodels.tsa.stattools.ccovf.html
플러스 상관 함수 및 이산 신호들에 대한 자기 공분산 계수의 표준 추정에 따르면 부분적인 자기 상관 http://statsmodels.sourceforge.net/devel/tsa.html#descriptive-statistics-and-tests
을 갖는 방정식으로 표현 될 수있다 :
가 k
샘플 의해 x(i)
신호의 변화를 의미 k
소정의 신호 (즉, 특정한 1 차원 벡터)이다
는 ... N
는 x(i)
신호의 길이이며 :
... 단순 평균 인 우리가 쓸 수 있습니다 :
'''
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))
을 당신이 좋아하면 방금 위의 코드에 추가 단지 두 개의 추가 라인이보다 ...
:
def autocorrelation():
return autocovariance(Xi, N, k, Xs)/autocovariance(Xi, N, 0, Xs)
을 여기에 그대로 표현 된 자기 상관 계수가 될 자기 공분산 계수를 정상화 전체 스크립트를
'''
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())
가져 오기 샘플 자동 공분산 :
# 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
파이썬 for
루프를 피하고 대신 numpy 배열 연산을 사용하는 이전 답변에 대한 약간의 조정. 많은 양의 데이터가 있으면이 방법이 더 빠릅니다. 50,000 데이터 포인트의 시계열을 이용하여 래그의 한 고정 값에 대해 자기 상관을 계산하는 @bluevoxel의 코드에 대해,이 비교
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
가 파이썬 for
루프 코드가 약 30 밀리 초를 평균화 numpy 배열을 사용하는 것은 평균 0.3 밀리 초 (내 노트북에서 실행)보다 평균.
- 1. 파이썬에서 자동 증가하는 방법
- 2. 요소의 CSS를 자동 계산하는 방법
- 3. 파이썬에서 백분율을 계산하는 연산자가 있습니까?
- 4. 파이썬에서 파일을 더 빠르게 계산하는 방법
- 5. 파일에서 데이터를 추출한 다음 파이썬에서 계산하는 방법
- 6. 파이썬에서 % s를 사용하여 행을 계산하는 방법
- 7. 파이썬에서 (numpy) 배열을 능변으로 계산하는 방법
- 8. 입력에서 대문자 수를 계산하는 방법 - 파이썬에서
- 9. 파이썬에서 x, y 좌표의 중심을 계산하는 방법
- 10. 파이썬에서 여러 geolocations의 midpoint를 계산하는 방법
- 11. 공분산을 선언하는 방법이 있습니까?
- 12. 2 개의 이미지 사이의 공분산을 어떻게 계산합니까?
- 13. 파이썬에서 항목 수를 계산하는 'for'?
- 14. matlab에서 두 이미지의 공분산을 계산하십시오.
- 15. 파이썬에서 데이터 자동 파싱
- 16. 파이썬에서 자바로 자동 번역
- 17. 파이썬에서 목록 자동 증가
- 18. 파이썬에서 스크립트를 자동 실행합니다.
- 19. 공분산을 반환하는 파이썬 다항식 적합 함수가 필요합니다.
- 20. 파이썬에서 2 개의 ip 주소로 넷 마스크를 계산하는 방법
- 21. 파이썬에서 부동 값을 포함하는 줄 묶음의 평균을 계산하는 방법
- 22. 파이썬에서 csv 파일의 각 행에 단어가 나타나는 횟수를 계산하는 방법
- 23. 오픈 CV를 사용하여 파이썬에서 3D 히스토그램을 계산하는 방법
- 24. 문자열에서 문자열 목록의 출현을 계산하는 방법 - 파이썬에서 새로움
- 25. 파이썬에서 프로그램을 작성하는 방법 3.3.4 사각형의 영역을 계산하는 방법은 무엇입니까?
- 26. 파이썬에서 NTLM 해시를 계산하는 방법은 무엇입니까?
- 27. 파이썬에서 조건문의 출력을 계산하는 방법은 무엇입니까?
- 28. 파이썬에서 mod b를 계산하는 방법은 무엇입니까?
- 29. 파이썬에서 다음 주 금요일을 계산하는 방법은 무엇입니까?
- 30. Python을 사용하여 시간을 계산하는 방법
Numpy는 이미 [상관 관계] (https://docs.scipy.org/doc/numpy/reference/generated/numpy.correlate.html)를 계산하는 데 필요한 모든 것을 갖추고 있습니다. ([scipy.signal.fftconvolve] (http://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.signal.fftconvolve.html)로 가속화 할 수 있습니다.) 자기 공분산을 얻으려면 [분산] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.var.html)을 곱해야합니다. – Celelibi