Skip to content

Commit 8073b85

Browse files
committed
Simplify subtracting mean, as suggested by reviewer
1 parent 2cc35a6 commit 8073b85

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

src/signalcorr.jl

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ function autocov!(
7070
m = length(lags)
7171
length(r) == m || throw(DimensionMismatch())
7272
check_lags(lx, lags)
73-
z .= x
74-
demean && z .= z .- mean(z)
73+
demean ? z .= x .- mean(x) : copyto!(z, x)
7574
for k = 1 : m # foreach lag value
7675
r[k] = _autodot(z, lx, lags[k]) / lx
7776
end
@@ -529,7 +528,7 @@ crosscor(x::AbstractVecOrMat, y::AbstractVecOrMat; demean::Bool=true) =
529528
#
530529
#######################################
531530

532-
function pacf_regress!(r::AbstractMatrix, X::AbstractMatrix, lags::IntegerVector, mk::Integer)
531+
function pacf_regress!(r::AbstractMatrix, X::AbstractMatrix, lags::AbstractVector{<:Integer}, mk::Integer)
533532
lx = size(X, 1)
534533
tmpX = ones(eltype(X), lx, mk + 1)
535534
for j = 1 : size(X,2)
@@ -547,7 +546,7 @@ function pacf_regress!(r::AbstractMatrix, X::AbstractMatrix, lags::IntegerVector
547546
r
548547
end
549548

550-
function pacf_yulewalker!(r::AbstractMatrix, X::AbstractMatrix, lags::IntegerVector, mk::Integer)
549+
function pacf_yulewalker!(r::AbstractMatrix, X::AbstractMatrix, lags::AbstractVector{<:Integer}, mk::Integer)
551550
p = Vector{eltype(X)}(undef, mk)
552551
y = Vector{eltype(X)}(undef, mk)
553552
for j = 1 : size(X,2)
@@ -572,7 +571,7 @@ using the Yule-Walker equations.
572571
573572
`r` must be a matrix of size `(length(lags), size(x, 2))`.
574573
"""
575-
function pacf!(r::AbstractMatrix, X::AbstractMatrix, lags::IntegerVector; method::Symbol=:regression)
574+
function pacf!(r::AbstractMatrix, X::AbstractMatrix, lags::AbstractVector{<:Integer}; method::Symbol=:regression)
576575
lx = size(X, 1)
577576
m = length(lags)
578577
minlag, maxlag = extrema(lags)
@@ -603,11 +602,11 @@ If `x` is a vector, return a vector of the same length as `lags`.
603602
If `x` is a matrix, return a matrix of size `(length(lags), size(x, 2))`,
604603
where each column in the result corresponds to a column in `x`.
605604
"""
606-
function pacf(X::AbstractMatrix, lags::IntegerVector; method::Symbol=:regression)
605+
function pacf(X::AbstractMatrix, lags::AbstractVector{<:Integer}; method::Symbol=:regression)
607606
out = Matrix{float(eltype(X))}(undef, length(lags), size(X,2))
608607
pacf!(out, float(X), lags; method=method)
609608
end
610609

611-
function pacf(x::AbstractVector, lags::IntegerVector; method::Symbol=:regression)
610+
function pacf(x::AbstractVector, lags::AbstractVector{<:Integer}; method::Symbol=:regression)
612611
vec(pacf(reshape(x, length(x), 1), lags, method=method))
613612
end

0 commit comments

Comments
 (0)