@@ -70,8 +70,7 @@ function autocov!(
70
70
m = length (lags)
71
71
length (r) == m || throw (DimensionMismatch ())
72
72
check_lags (lx, lags)
73
- z .= x
74
- demean && z .= z .- mean (z)
73
+ demean ? z .= x .- mean (x) : copyto! (z, x)
75
74
for k = 1 : m # foreach lag value
76
75
r[k] = _autodot (z, lx, lags[k]) / lx
77
76
end
@@ -529,7 +528,7 @@ crosscor(x::AbstractVecOrMat, y::AbstractVecOrMat; demean::Bool=true) =
529
528
#
530
529
# ######################################
531
530
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 )
533
532
lx = size (X, 1 )
534
533
tmpX = ones (eltype (X), lx, mk + 1 )
535
534
for j = 1 : size (X,2 )
@@ -547,7 +546,7 @@ function pacf_regress!(r::AbstractMatrix, X::AbstractMatrix, lags::IntegerVector
547
546
r
548
547
end
549
548
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 )
551
550
p = Vector {eltype(X)} (undef, mk)
552
551
y = Vector {eltype(X)} (undef, mk)
553
552
for j = 1 : size (X,2 )
@@ -572,7 +571,7 @@ using the Yule-Walker equations.
572
571
573
572
`r` must be a matrix of size `(length(lags), size(x, 2))`.
574
573
"""
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 )
576
575
lx = size (X, 1 )
577
576
m = length (lags)
578
577
minlag, maxlag = extrema (lags)
@@ -603,11 +602,11 @@ If `x` is a vector, return a vector of the same length as `lags`.
603
602
If `x` is a matrix, return a matrix of size `(length(lags), size(x, 2))`,
604
603
where each column in the result corresponds to a column in `x`.
605
604
"""
606
- function pacf (X:: AbstractMatrix , lags:: IntegerVector ; method:: Symbol = :regression )
605
+ function pacf (X:: AbstractMatrix , lags:: AbstractVector{<:Integer} ; method:: Symbol = :regression )
607
606
out = Matrix {float(eltype(X))} (undef, length (lags), size (X,2 ))
608
607
pacf! (out, float (X), lags; method= method)
609
608
end
610
609
611
- function pacf (x:: AbstractVector , lags:: IntegerVector ; method:: Symbol = :regression )
610
+ function pacf (x:: AbstractVector , lags:: AbstractVector{<:Integer} ; method:: Symbol = :regression )
612
611
vec (pacf (reshape (x, length (x), 1 ), lags, method= method))
613
612
end
0 commit comments