Correlation Analysis of Signals
The package provides functions to perform correlation analysis of sequential signals.
Autocovariance and Autocorrelation
StatsBase.autocov
— Function.autocov(x, [lags]; demean=true)
Compute the autocovariance of a vector or matrix x
, optionally specifying the lags
at which to compute the autocovariance. demean
denotes whether the mean of x
should be subtracted from x
before computing the autocovariance.
If x
is a vector, return a vector of the same length as x
. If x
is a matrix, return a matrix of size (length(lags), size(x,2))
, where each column in the result corresponds to a column in x
.
When left unspecified, the lags used are the integers from 0 to min(size(x,1)-1, 10*log10(size(x,1)))
.
The output is not normalized. See autocor
for a function with normalization.
StatsBase.autocov!
— Function.autocov!(r, x, lags; demean=true)
Compute the autocovariance of a vector or matrix x
at lags
and store the result in r
. demean
denotes whether the mean of x
should be subtracted from x
before computing the autocovariance.
If x
is a vector, r
must be a vector of the same length as x
. If x
is a matrix, r
must be a matrix of size (length(lags), size(x,2))
, and where each column in the result will correspond to a column in x
.
The output is not normalized. See autocor!
for a method with normalization.
StatsBase.autocor
— Function.autocor(x, [lags]; demean=true)
Compute the autocorrelation function (ACF) of a vector or matrix x
, optionally specifying the lags
. demean
denotes whether the mean of x
should be subtracted from x
before computing the ACF.
If x
is a vector, return a vector of the same length as x
. If x
is a matrix, return a matrix of size (length(lags), size(x,2))
, where each column in the result corresponds to a column in x
.
When left unspecified, the lags used are the integers from 0 to min(size(x,1)-1, 10*log10(size(x,1)))
.
The output is normalized by the variance of x
, i.e. so that the lag 0 autocorrelation is 1. See autocov
for the unnormalized form.
StatsBase.autocor!
— Function.autocor!(r, x, lags; demean=true)
Compute the autocorrelation function (ACF) of a vector or matrix x
at lags
and store the result in r
. demean
denotes whether the mean of x
should be subtracted from x
before computing the ACF.
If x
is a vector, r
must be a vector of the same length as x
. If x
is a matrix, r
must be a matrix of size (length(lags), size(x,2))
, and where each column in the result will correspond to a column in x
.
The output is normalized by the variance of x
, i.e. so that the lag 0 autocorrelation is 1. See autocov!
for the unnormalized form.
Cross-covariance and Cross-correlation
StatsBase.crosscov
— Function.crosscov(x, y, [lags]; demean=true)
Compute the cross covariance function (CCF) between real-valued vectors or matrices x
and y
, optionally specifying the lags
. demean
specifies whether the respective means of x
and y
should be subtracted from them before computing their CCF.
If both x
and y
are vectors, return a vector of the same length as lags
. Otherwise, compute cross covariances between each pairs of columns in x
and y
.
When left unspecified, the lags used are the integers from -min(size(x,1)-1, 10*log10(size(x,1)))
to min(size(x,1), 10*log10(size(x,1)))
.
The output is not normalized. See crosscor
for a function with normalization.
StatsBase.crosscov!
— Function.crosscov!(r, x, y, lags; demean=true)
Compute the cross covariance function (CCF) between real-valued vectors or matrices x
and y
at lags
and store the result in r
. demean
specifies whether the respective means of x
and y
should be subtracted from them before computing their CCF.
If both x
and y
are vectors, r
must be a vector of the same length as lags
. If either x
is a matrix and y
is a vector, r
must be a matrix of size (length(lags), size(x, 2))
; if x
is a vector and y
is a matrix, r
must be a matrix of size (length(lags), size(y, 2))
. If both x
and y
are matrices, r
must be a three-dimensional array of size (length(lags), size(x, 2), size(y, 2))
.
The output is not normalized. See crosscor!
for a function with normalization.
StatsBase.crosscor
— Function.crosscor(x, y, [lags]; demean=true)
Compute the cross correlation between real-valued vectors or matrices x
and y
, optionally specifying the lags
. demean
specifies whether the respective means of x
and y
should be subtracted from them before computing their cross correlation.
If both x
and y
are vectors, return a vector of the same length as lags
. Otherwise, compute cross covariances between each pairs of columns in x
and y
.
When left unspecified, the lags used are the integers from -min(size(x,1)-1, 10*log10(size(x,1)))
to min(size(x,1), 10*log10(size(x,1)))
.
The output is normalized by sqrt(var(x)*var(y))
. See crosscov
for the unnormalized form.
StatsBase.crosscor!
— Function.crosscor!(r, x, y, lags; demean=true)
Compute the cross correlation between real-valued vectors or matrices x
and y
at lags
and store the result in r
. demean
specifies whether the respective means of x
and y
should be subtracted from them before computing their cross correlation.
If both x
and y
are vectors, r
must be a vector of the same length as lags
. If either x
is a matrix and y
is a vector, r
must be a matrix of size (length(lags), size(x, 2))
; if x
is a vector and y
is a matrix, r
must be a matrix of size (length(lags), size(y, 2))
. If both x
and y
are matrices, r
must be a three-dimensional array of size (length(lags), size(x, 2), size(y, 2))
.
The output is normalized by sqrt(var(x)*var(y))
. See crosscov!
for the unnormalized form.
Partial Autocorrelation Function
StatsBase.pacf
— Function.pacf(X, lags; method=:regression)
Compute the partial autocorrelation function (PACF) of a real-valued vector or matrix X
at lags
. method
designates the estimation method. Recognized values are :regression
, which computes the partial autocorrelations via successive regression models, and :yulewalker
, which computes the partial autocorrelations using the Yule-Walker equations.
If x
is a vector, return a vector of the same length as lags
. If x
is a matrix, return a matrix of size (length(lags), size(x, 2))
, where each column in the result corresponds to a column in x
.
StatsBase.pacf!
— Function.pacf!(r, X, lags; method=:regression)
Compute the partial autocorrelation function (PACF) of a matrix X
at lags
and store the result in r
. method
designates the estimation method. Recognized values are :regression
, which computes the partial autocorrelations via successive regression models, and :yulewalker
, which computes the partial autocorrelations using the Yule-Walker equations.
r
must be a matrix of size (length(lags), size(x, 2))
.