From d193ccf51a69d233f5af9e86b5b24416bdc5adc7 Mon Sep 17 00:00:00 2001 From: Junyuan Chen <37969042+junyuan-chen@users.noreply.github.com> Date: Sun, 14 Apr 2024 15:20:28 -0700 Subject: [PATCH] Add `Factor` for estimating factor models (#3) --- .github/workflows/CI-stable.yml | 3 + Project.toml | 6 +- data/README.md | 23 +++ data/lpw_est_data.mat | Bin 0 -> 193785 bytes data/src/lpw_savedata.m | 267 ++++++++++++++++++++++++++++++++ src/AutoregressiveModels.jl | 15 +- src/estimation.jl | 10 +- src/factor.jl | 262 +++++++++++++++++++++++++++++++ src/lapack.jl | 128 +++++++++++++++ src/process.jl | 4 +- src/utils.jl | 2 + test/bootstrap.jl | 2 +- test/estimation.jl | 14 +- test/factor.jl | 148 ++++++++++++++++++ test/lapack.jl | 10 ++ test/process.jl | 14 +- test/runtests.jl | 13 +- 17 files changed, 888 insertions(+), 33 deletions(-) create mode 100644 data/README.md create mode 100644 data/lpw_est_data.mat create mode 100644 data/src/lpw_savedata.m create mode 100644 src/factor.jl create mode 100644 src/lapack.jl create mode 100644 test/factor.jl create mode 100644 test/lapack.jl diff --git a/.github/workflows/CI-stable.yml b/.github/workflows/CI-stable.yml index 3b365ab..0bc17a6 100644 --- a/.github/workflows/CI-stable.yml +++ b/.github/workflows/CI-stable.yml @@ -25,6 +25,9 @@ jobs: - 'windows-latest' arch: - 'x64' + exclude: + - version: '1.6' + os: 'windows-latest' steps: - uses: actions/checkout@v4 - uses: julia-actions/setup-julia@v1 diff --git a/Project.toml b/Project.toml index 4f72f24..7e3d283 100644 --- a/Project.toml +++ b/Project.toml @@ -17,19 +17,21 @@ CSV = "0.9, 0.10" ConfidenceBands = "0.1" DataFrames = "1" LocalProjections = "0.2" +MAT = "0.10" MatrixEquations = "2" Roots = "1, 2" StatsAPI = "1.2" StatsBase = "0.33, 0.34" Tables = "1" -julia = "1.3" +julia = "1.6" [extras] CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" ConfidenceBands = "6840a270-7180-4af9-9adc-8b0ddd17b6f2" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" LocalProjections = "8dd5e8af-b996-4a51-9681-92a36a2638c1" +MAT = "23992714-dd62-5051-b70f-ba57cb901cac" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["CSV", "ConfidenceBands", "DataFrames", "LocalProjections", "Test"] +test = ["CSV", "ConfidenceBands", "DataFrames", "LocalProjections", "MAT", "Test"] diff --git a/data/README.md b/data/README.md new file mode 100644 index 0000000..eb25804 --- /dev/null +++ b/data/README.md @@ -0,0 +1,23 @@ +# Example Data + +Data files are provided here for the ease of testing and illustrations. +The data may have been processed for the ease of usage. +See [`data/src`](src/) for the source code +that generates these files from original data. + +## Sources + +| Name | Source | File | Note | +| :--: | :----: | :--: | :--- | +| lpw_est_data.mat | [Li, Plagborg-Møller and Wolf (2024)](https://doi.org/10.1016/j.jeconom.2024.105722) | `DFM/Subroutines/SW_DFM_Estimation/data/hom_fac_1.xlsx` | Data are processed with [`lpw_savedata.m`](src/lpw_savedata.m) and used in [Stock and Watson (2016)](https://doi.org/10.1016/bs.hesmac.2016.04.002) | + +## References + +**Li, Dake, Mikkel Plagborg-Møller, and Christian K. Wolf.** 2024. +"Local Projections vs. VARs: Lessons from Thousands of DGPs." +*Journal of Econometrics*, forthcoming. + +**Stock, James H. and Mark W. Watson.** 2016. +"Chapter 8---Dynamic Factor Models, Factor-Augmented Vector Autoregressions, and Structural Vector Autoregressions in Macroeconomics." +In *Handbook of Macroeconomics*, Vol. 2A, +edited by John B. Taylor and Harald Uhlig, 415-525. Amsterdam: Elsevier. diff --git a/data/lpw_est_data.mat b/data/lpw_est_data.mat new file mode 100644 index 0000000000000000000000000000000000000000..78a494781690d6f160a96425b8c012797fba22b1 GIT binary patch literal 193785 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

R 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 literal 0 HcmV?d00001 diff --git a/data/src/lpw_savedata.m b/data/src/lpw_savedata.m new file mode 100644 index 0000000..eb68954 --- /dev/null +++ b/data/src/lpw_savedata.m @@ -0,0 +1,267 @@ +% Modified from Li, Plagborg-Møller and Wolf (2024) for testing purposes +% Estimation part is based on Stock and Watson (2016) +% To run the code, download the replication repo from +% https://github.com/dake-li/lp_var_simul +% Place this file in the DFM folder +% Data for testing purposes are saved to lpw_est_data.mat + + +%% Content from run_dfm.m + +%% HOUSEKEEPING + +clc +clear all +close all + +addpath(genpath(fullfile('..', 'Auxiliary_Functions'))) +addpath(genpath(fullfile('..', 'Estimation_Routines'))) +addpath(genpath('Subroutines')) + +%% SET EXPERIMENT + +lag_type = 4; % No. of lags to impose in estimation, or NaN (= AIC) + +%% SETTINGS + +% Apply shared settings as well as settings specific to DGP and estimand type + +run(fullfile('Settings', 'shared')); + +%% ENCOMPASSING DFM MODEL + +%% Set the argument values for DFM_est + +n_factors = DF_model.n_fac; +n_lags_fac = DF_model.n_lags_fac; +n_lags_uar = DF_model.n_lags_uar; +reorder = DF_model.reorder; +levels = 1; +coint_rank = DF_model.coint_rank; + + +%% Content from DFM_est.m + +%% PREPARATIONS + +small = 1.0e-10; +big = 1.0e+6; + +% ----------- Sample Period, Calendars and so forth +[dnobs_m,calvec_m,calds_m] = calendar_make([1959 1],[2014 12],12); % Monthly Calendar +[dnobs_q,calvec_q,calds_q] = calendar_make([1959 1],[2014 4],4); % Quarterly Calendar + +% -- Load Data +load_data=1; +datain_all; % datain_all reads in the full dataset .. all variables, etc. saved in datain.xx + +%% ESTIMATION + +% Factor Parameters +n_fac = n_factors; +est_par.fac_par.nfac.unobserved = n_fac; +est_par.fac_par.nfac.observed = 0; +est_par.fac_par.nfac.total = n_fac + est_par.fac_par.nfac.observed; + +% Sampling parameters +est_par.smpl_par.nfirst = [1959 3]; % start date +est_par.smpl_par.nlast = [2014 4]; % end date +est_par.smpl_par.calvec = datain.calvec; % calendar +est_par.smpl_par.nper = 4; % number of periods a year + +% Factor analysis parameters +est_par.fac_par.nt_min = 20; % min number of obs for any series used to est factors +est_par.lambda.nt_min = 40; % min number of obs for any series used to estimate lamba, irfs, etc. +est_par.fac_par.tol = 10^-8; % precision of factor estimation (scaled by by n*t) + +% Restrictions on factor loadings to identify factors +est_par.fac_par.lambda_constraints_est = 1; % no constraints on lambda +est_par.fac_par.lambda_constraints_full = 1; % no constraints on lambda + +% VAR parameters for factors +est_par.var_par.nlag = n_lags_fac; % number of lags +est_par.var_par.iconst = 1; % include constant +est_par.var_par.icomp = 1; % compute companion form of model .. excluding constant + +% yit equation parameters +est_par.n_uarlag = n_lags_uar; % number of arlags for uniqueness + +% Matrices for storing results +n_series = size(datain.bpdata,2); + +%% Set the argument values for factor_estimation_ls_full + +data = datain.bpdata; +inclcode = datain.bpinclcode; + + +%% Content from factor_estimation_ls_full.m + +% PRELIMINARIES +n_series = size(data,2); % number of series +nfirst = est_par.smpl_par.nfirst; % start date +nlast = est_par.smpl_par.nlast; % end date +calvec = est_par.smpl_par.calvec; % calendar +nper = est_par.smpl_par.nper; % number of periods a year +n_uarlag = est_par.n_uarlag; % number of AR lags +ntmin = est_par.lambda.nt_min; % minimum number of Obs + +% USE SUBSET OF DATA TO ESTIMATE FACTORS +est_data = data(:,inclcode==1); +if levels + est_data = [nan(1,size(est_data,2)); diff(est_data,1,1)]; % If data is in levels, estimate factors off first differences +end + + +%% Content from factor_estimation_ls + +%% +% Preliminaries +% extract estimation parameters +smpl_par = est_par.smpl_par; +lambda_constraints = est_par.fac_par.lambda_constraints_est; +nt_min = est_par.fac_par.nt_min; +tol = est_par.fac_par.tol; +nfac_u = est_par.fac_par.nfac.unobserved; +nfac_o = est_par.fac_par.nfac.observed; +nfac_t = est_par.fac_par.nfac.total; +if nfac_o > 0; + w = est_par.fac_par.w; +end; + +% Estimate factors with unbalanced panel by LS -- standardize data first + % Sample period + [istart, iend] = smpl_HO(smpl_par); + istart = max(istart,1); + iend = min(iend,size(est_data,1)); + + % Estimate Factors + xdata = est_data(istart:iend,:); + nt = size(xdata,1); + ns = size(xdata,2); + + % Mean and Standard Deviation + xmean = nanmean(xdata)'; % mean (ignoring NaN) + mult = sqrt((sum(~isnan(xdata))-1)./sum(~isnan(xdata))); % num of non-NaN entries for each series + xstd = (nanstd(xdata).*mult)'; % std (ignoring NaN) + xdata_std = (xdata - repmat(xmean',nt,1))./repmat(xstd',nt,1); % standardized data + + if nfac_o > 0; + wdata = w(istart:iend,:); + if sum(sum(isnan(wdata))) ~= 0; + error('w contains missing values over sample period, processing stops'); + end; + end; + + n_lc = 0; % number of constrains placed on lambda + if size(lambda_constraints,2) > 1; + lam_c_index = lambda_constraints(:,1); % Which row of lambda: Constraints are then R*lambda = r + lam_c_R = lambda_constraints(:,2:end-1); % R matrix + lam_c_r = lambda_constraints(:,end); % r value + lam_c_r_scl = lam_c_r./xstd(lam_c_index); % Adjusted for scaling + n_lc = size(lambda_constraints,1); + end; + + % Compute Total Sum of Squares + tss = 0; + nobs = 0; + for is = 1:ns; + tmp = xdata_std(:,is); % select series + tmp = tmp(isnan(tmp)==0); % drop NaN + tss = tss+sum(tmp.^2); % add to tss + nobs = nobs+size(tmp,1); % add to n*T + end; + + % Estimate factors using balanced panel + if nfac_u > 0; + xbal = packr(xdata_std')'; + %[coef,score,latent]=princomp(xbal); + [coef,score,latent] = pca(xbal); + f = score(:,1:nfac_u); + fa = f; + if nfac_o > 0; + fa = [wdata f]; + end; + lambda = NaN*zeros(ns,nfac_t); + else; + fa = wdata; + end; + + diff = 100; + ssr = 0; + while diff>tol*(nt*ns) + ssr_old = ssr; + for i = 1:ns; + tmp=packr([xdata_std(:,i) fa]); + if size(tmp,1) >= nt_min; + y=tmp(:,1); + x=tmp(:,2:end); + xxi = inv(x'*x); + bols = xxi*(x'*y); + b = bols; + if n_lc > 0; + % Check for restrictions and impose; + ii = lam_c_index == i; + if sum(ii) > 0; + R = lam_c_R(ii==1,:); + r_scl = lam_c_r_scl(ii==1,:); + tmp1 = xxi*R'; + tmp2 = inv(R*tmp1); + b = bols - tmp1*tmp2*(R*bols-r_scl); + end; + end; + lambda(i,:)= b'; + end; + end; + edata = xdata_std; + if nfac_u > 0; + if nfac_o > 0; + edata = xdata_std - fa(:,1:nfac_o)*lambda(:,1:nfac_o)'; + end; + for t = 1:nt; + tmp=packr([edata(t,:)' lambda(:,nfac_o+1:end)]); + y=tmp(:,1); + x=tmp(:,2:end); + b = x\y; + f(t,:) = b'; + end; + fa = f; + if nfac_o > 0; + fa = [wdata f]; + end; + end; + % Compute residuals + e = xdata_std-fa*lambda'; + ssr = sum(nansum(e.^2)); + diff = abs(ssr_old - ssr); + end; + + f_est = fa; + + % Compute R2 for each series + r2vec = NaN*zeros(ns,1); + for i = 1:ns; + tmp=packr([xdata_std(:,i) f_est]); + if size(tmp,1) >= nt_min; + y=tmp(:,1); + x=tmp(:,2:end); + b = x\y; + e = y -x*b; + r2_ssr = e'*e; + r2_tss = y'*y; + r2vec(i) = 1-r2_ssr/r2_tss; + end; + end; + + fac_est = NaN(size(est_data,1),nfac_t); + fac_est(istart:iend,:)=f_est; + lambda = lambda.*repmat(xstd,1,nfac_t); + + lsout.fac = fac_est; lsout.lambda = lambda; + lsout.tss = tss; lsout.ssr = ssr; + lsout.r2vec = r2vec; lsout.nobs = nobs; + lsout.nt = nt; lsout.ns = ns; + +%% Save the data +save("../lpw_est_data.mat", 'est_data') + diff --git a/src/AutoregressiveModels.jl b/src/AutoregressiveModels.jl index faa283d..c0e0768 100644 --- a/src/AutoregressiveModels.jl +++ b/src/AutoregressiveModels.jl @@ -2,7 +2,9 @@ module AutoregressiveModels using Base: ReshapedArray using LinearAlgebra: Cholesky, cholesky!, cholesky, UpperTriangular, LowerTriangular, - lu!, ldiv!, rdiv!, inv!, mul!, diagm, eigen!, eigen, I + lu!, ldiv!, rdiv!, inv!, mul!, diagm, eigen!, eigen, I, + BLAS.@blasfunc, BlasInt, chkstride1, LAPACK.liblapack, LAPACK.chklapackerror, + Algorithm, default_svd_alg, DivideAndConquer, QRIteration using MatrixEquations: lyapd using Random: randn! using Roots: find_zero, Brent @@ -12,10 +14,11 @@ using Tables using Tables: getcolumn import Base: show -import StatsAPI: response, modelmatrix, coef, residuals, dof_residual, fit +import LinearAlgebra: LAPACK.gesdd!, LAPACK.gesvd!, _svd! +import StatsAPI: response, modelmatrix, coef, residuals, dof_residual, fit, fit!, r2 # Reexport objects from StatsAPI -export response, modelmatrix, coef, residuals, dof_residual, fit +export response, modelmatrix, coef, residuals, dof_residual, fit, fit!, r2 export VARProcess, nvar, @@ -46,12 +49,16 @@ export VARProcess, iidresiddraw!, bootstrap!, - ARMAProcess + ARMAProcess, + Factor + +include("lapack.jl") include("utils.jl") include("process.jl") include("estimation.jl") include("bootstrap.jl") include("arma.jl") +include("factor.jl") end # module AutoregressiveModels diff --git a/src/estimation.jl b/src/estimation.jl index e13381c..610ac49 100644 --- a/src/estimation.jl +++ b/src/estimation.jl @@ -350,9 +350,9 @@ The corrected estimates can be retrieved from the returned object with [`coefcorrected`](@ref). # Reference -**Pope, Alun L. 1990**. -"Biases of Estimators in Multivariate Non-Gaussian Autoregressions". -*Journal of Time Series Analysis* 11 (3): 249-258. +**Pope, Alun L.** 1990. +"Biases of Estimators in Multivariate Non-Gaussian Autoregressions." +*Journal of Time Series Analysis* 11 (3): 249--258. """ function biascorrect(r::VectorAutoregression; offset::Real=1e-4, factor::Union{Real, Nothing}=nothing, @@ -405,5 +405,7 @@ show(io::IO, r::VectorAutoregression) = function show(io::IO, ::MIME"text/plain", r::VectorAutoregression) println(io, r, " with coefficient matrix:") - Base.print_array(io, coef(r)') + M, N = displaysize(io) + Base.print_matrix(IOContext(io, :compact=>true, :limit=>true, + :displaysize=>(M-1, N)), coef(r)') end diff --git a/src/factor.jl b/src/factor.jl new file mode 100644 index 0000000..4a08b87 --- /dev/null +++ b/src/factor.jl @@ -0,0 +1,262 @@ +""" + Factor{TF, S} <: RegressionModel + +Results and cache from estimating a factor model. +This object holds all arrays that are necessary for +estimating the model without additional memory allocations. +See also [`fit`](@ref) and [`fit!`](@ref). + +# Fields +- `Y::Matrix{TF}`: data matrix where each column corresponds to a time series. +- `Ystd::Matrix{TF}`: standardized data with zero mean and unit standard deviation across the columns. +- `Ysd::Vector{TF}`: standard deviation of each column in `Y`. +- `Yca::Matrix{TF}`: cache of the same size as `Y`. +- `fac::Matrix{TF}`: factors of the model; observed factors are placed in the beginning columns. +- `crossfac::Matrix{TF}`: cache for holding `fac'fac` and factorization. +- `Λ::Matrix{TF}`: loading matrix of the model; each row corresponds to a factor in `fac`. +- `crossΛu::Union{Matrix{TF}, Nothing}`: cache needed when factors and loading matrix need to be solved iteratively. +- `svdca::Union{SDDcache{TF}, SVDcache{TF}, Nothing}`: cache for singular value decomposition if any unobserved factor is involved. +- `nfaco::Int`: number of observed factors. +- `resid::Matrix{TF}`: residuals from the standardized data `Ystd` and estimated `fac` before scaling the loading matrix `Λ` for `Y`. +- `tss::Vector{TF}`: total sum of squares for each columns of `Ystd`. +- `rss::Vector{TF}`: residual sum of squares for each columns of `Ystd`. +- `r2::Vector{TF}`: r-squared for each columns of `Ystd`. +- `esample::BitVector`: indicators for rows involved in estimation from original data table when constructing `Y`; irrelevant to estimation once `Y` is given. +""" +struct Factor{TF<:AbstractFloat, S<:Union{SDDcache{TF}, SVDcache{TF}, Nothing}} <: RegressionModel + Y::Matrix{TF} + Ystd::Matrix{TF} + Ysd::Vector{TF} + Yca::Matrix{TF} + fac::Matrix{TF} + crossfac::Matrix{TF} + Λ::Matrix{TF} + crossΛu::Union{Matrix{TF}, Nothing} + svdca::S + nfaco::Int + resid::Matrix{TF} + tss::Vector{TF} + rss::Vector{TF} + r2::Vector{TF} + esample::BitVector +end + +response(f::Factor) = f.Y +modelmatrix(f::Factor) = f.fac +coef(f::Factor) = f.Λ +residuals(f::Factor) = f.resid +r2(f::Factor) = f.r2 + +# Assume balanced panel (no missing/nan) +function _standardize!(out::AbstractMatrix, sd::AbstractVector, Y::AbstractMatrix) + T = size(Y, 1) + @inbounds for (j, y) in enumerate(eachcol(Y)) + m = sum(y) / T + std = sqrt(sum(x -> (x - m)^2, y) / T) + out[:,j] .= (y .- m) ./ std + sd[j] = std + end + return out, sd +end + +function _factor!(Y, Ystd, Ysd, Yca, fac, crossfac, Λ, crossΛu, svdca, nfo, resid, + tss, rss, r2; maxiter::Integer=10000, tol::Real=1e-8) + nfac = size(fac, 2) + nfu = nfac - nfo + rfu = nfo+1:nfac + _standardize!(Ystd, Ysd, Y) + if nfu > 0 + # SVD always overwrites the matrix + copyto!(Yca, Ystd) + # Throw error if Ystd contains NaN + U, S, VT = _svd!(svdca, Yca) + fac[:,rfu] .= view(U,:,1:nfu) .* view(S,1:nfu)' + end + # The simple case with balanced panel that does not require a loop + if nfo == 0 || nfu == 0 + mul!(crossfac, fac', fac) + # Must use Ystd instead of Y when all factors are observed + # Y vs Ystd affects r2 but not Λ if all factors are unobserved + mul!(Λ, fac', Ystd) + ldiv!(cholesky!(crossfac), Λ) + # Use Ystd instead of Y for residuals before rescaling Λ + copyto!(resid, Ystd) + mul!(resid, fac, Λ, -1.0, 1.0) + # Rescale Λ after the residuals are computed + Λ .*= Ysd' + else + ssrold = 0.0 + Yu = Yca + for iter in 1:maxiter + # Compute loading matrix given factors + mul!(crossfac, fac', fac) + mul!(Λ, fac', Ystd) + ldiv!(cholesky!(crossfac), Λ) + # Compute factors given loading matrix + copyto!(Yu, Ystd) + mul!(Yu, view(fac,:,1:nfo), view(Λ,1:nfo,:), -1.0, 1.0) + Λu = view(Λ, rfu, :) + mul!(crossΛu, Λu, Λu') + facu = view(fac,:,rfu) + mul!(facu, Yu, Λu') + # No such a method on Julia v1.6 + ldiv!(cholesky!(crossΛu), facu') + copyto!(resid, Ystd) + resid = mul!(resid, fac, Λ, -1.0, 1.0) + ssr = sum(abs2, resid) + abs(ssr - ssrold) < tol*length(Y) && break + ssrold = ssr + end + # Rescale Λ after residuals are computed + Λ .*= Ysd' + end + for i in 1:size(Ystd, 2) + # ! Use Ystd instead of Y for r2 + tss[i] = t = sum(abs2, view(Ystd,:,i)) + rss[i] = r = sum(abs2, view(resid,:,i)) + r2[i] = 1.0 - r / t + end + return nothing +end + +function Factor(Y::AbstractMatrix, facobs::Union{AbstractMatrix, Nothing}, + nfac::Integer, esample::BitVector; + svdalg::Algorithm=default_svd_alg(Y), maxiter::Integer=10000, tol::Real=1e-8) + # ! To Do: Allow unbalanced panel and restrictions on loading coefficients + nfac > 0 || throw(ArgumentError("nfac must be positive")) + if facobs === nothing + nfo = 0 + nfu = nfac + else + nfo = size(facobs, 2) + nfu = nfac - nfo + nfu < 0 && throw(ArgumentError( + "number of observed factors ($nfo) is greater than nfac ($nfac)")) + any(isnan, facobs) && throw(ArgumentError( + "NaN is not allowed for observed factors")) + end + Y = convert(Matrix, Y) + T, N = size(Y) + Ystd = similar(Y) + Ysd = similar(Y, N) + Yca = similar(Ystd) + fac = similar(Y, T, nfac) + if nfo > 0 + fac[:,1:nfo] .= facobs + end + crossfac = similar(Y, nfac, nfac) + Λ = similar(Y, nfac, N) + resid = similar(Y) + tss = similar(Y, N) + rss = similar(Y, N) + r2 = similar(Y, N) + crossΛu = nfo == 0 || nfu == 0 ? nothing : similar(Y, nfu, nfu) + svdca = nfu > 0 ? svdcache(svdalg, Ystd) : nothing + _factor!(Y, Ystd, Ysd, Yca, fac, crossfac, Λ, crossΛu, svdca, nfo, resid, tss, rss, r2; + maxiter=maxiter, tol=tol) + return Factor(Y, Ystd, Ysd, Yca, fac, crossfac, Λ, crossΛu, svdca, nfo, resid, + tss, rss, r2, esample) +end + +Factor(Y::AbstractMatrix, nfac::Integer, esample::BitVector; kwargs...) = + Factor(Y, nothing, nfac, esample; kwargs...) + +""" + fit(::Type{<:Factor}, data, names, fonames, nfac::Integer; kwargs...) + +Fit a factor model with `nfac` factors using variables indexed by `names` +from a `Tables.jl`-compatible `data` table. +Factors that are observed are specified with `fonames` +as indices of columns from `data`. +R-squared for each variable is computed based on standardized data +with zero mean and unit standard deviation. +See also [`Factor`](@ref) and [`fit!`](@ref). + +# Keywords +- `subset::Union{BitVector, Nothing}=nothing`: subset of `data` to be used for estimation. +- `TF::Type=Float64`: numeric type used for estimation. +- `svdalg::Algorithm=DivideAndConquer()`: algorithm for singular value decomposition. +- `maxiter::Integer=10000`: maximum number of iterations; only relevant when the model involves both observed and unobserved factors. +- `tol::Real=1e-8`: tolerance level for convergence; only relevant when the model involves both observed and unobserved factors. + +# Reference +**Stock, James H. and Mark W. Watson.** 2016. +"Chapter 8---Dynamic Factor Models, Factor-Augmented Vector Autoregressions, and Structural Vector Autoregressions in Macroeconomics." +In *Handbook of Macroeconomics*, Vol. 2A, +edited by John B. Taylor and Harald Uhlig, 415--525. Amsterdam: Elsevier. +""" +function fit(::Type{<:Factor}, data, names, fonames, nfac::Integer; + subset::Union{BitVector, Nothing}=nothing, TF::Type=Float64, + svdalg::Algorithm=DivideAndConquer(), maxiter::Integer=10000, tol::Real=1e-8) + checktable(data) + names isa Symbol && (names = (names,)) + N = length(names) + N >= nfac || throw(ArgumentError("number of columns must be at least $nfac")) + _checknames(names) || throw( + ArgumentError("invalid names; must be integers or `Symbol`s")) + if fonames !== nothing + fonames isa Symbol && (fonames = (fonames,)) + nfo = length(fonames) + if nfo == 0 + fonames = nothing + else + _checknames(fonames) || throw( + ArgumentError("invalid fonames; must be integers or `Symbol`s")) + end + end + Tfull = Tables.rowcount(data) + subset === nothing || length(subset) == Tfull || + throw(ArgumentError("length of subset ($(length(subset))) does not match the number of rows in data ($Tfull)")) + T = subset === nothing ? Tfull : sum(subset) + # ! missing, nan and inf are not handled + Y = Matrix{TF}(undef, T, N) + for i in 1:N + Y[:,i] .= view(getcolumn(data, names[i]), subset) + end + if fonames === nothing + faco = nothing + else + faco = Matrix{TF}(undef, T, nfo) + for i in 1:nfo + faco[:,i] .= view(getcolumn(data, fonames[i]), subset) + end + end + return Factor(Y, faco, nfac, subset; svdalg=svdalg, maxiter=maxiter, tol=tol) +end + +""" + fit!(f::Factor; maxiter::Integer=10000, tol::Real=1e-8) + +Reestimate the factor model with data contained in `f`. +This method assumes that the content in `f` remains valid after any modification +and allows non-allocating estimation. +See also [`Factor`](@ref) and [`fit`](@ref). +""" +function fit!(f::Factor; maxiter::Integer=10000, tol::Real=1e-8) + _factor!(f.Y, f.Ystd, f.Ysd, f.Yca, f.fac, f.crossfac, f.Λ, f.crossΛu, f.svdca, + f.nfaco, f.resid, f.tss, f.rss, f.r2; maxiter=maxiter, tol=tol) + return f +end + +show(io::IO, f::Factor) = + print(io, size(f.fac,1), '×', size(f.fac,2), " ", typeof(f)) + +function show(io::IO, ::MIME"text/plain", f::Factor) + nfo = f.nfaco + nfu = size(f.fac,2) - nfo + print(io, f, " with ", nfu, " unobserved factor") + nfu > 1 && print(io, "s") + print(io, " and ", nfo, " observed factor") + nfo > 1 && print(io, "s") + println(io, ":") + M, N = displaysize(io) + nfac = size(f.fac, 2) + NF = min(max(nfac+4, 5), 10, floor(Int, M/2)) + Base.print_matrix(IOContext(io, :compact=>true, :limit=>true, + :displaysize=>(M-4-NF+5, N)), f.fac, " ") + println(io, "\n ", size(f.Λ,1), '×', size(f.Λ,2), " Loading matirx:") + Base.print_matrix(IOContext(io, :compact=>true, :limit=>true, + :displaysize=>(NF, N)), f.Λ, " ") + println(io, "\n R-squared by column:") + Base.print_matrix(IOContext(io, :compact=>true, :limit=>true), f.r2', " ") +end diff --git a/src/lapack.jl b/src/lapack.jl new file mode 100644 index 0000000..8de78f6 --- /dev/null +++ b/src/lapack.jl @@ -0,0 +1,128 @@ +# Define customized in-placed methods of SVD that are non-allocating +# Use liblapack instead of libblastrampoline for compatibility with Julia v1.6 + +struct SDDcache{TF<:Union{Float64, Float32}} + U::Matrix{TF} + VT::Matrix{TF} + S::Vector{TF} + work::Vector{TF} + iwork::Vector{BlasInt} + info::Base.RefValue{Int64} +end + +function SDDcache(A::AbstractMatrix{TF}) where TF<:Union{Float64, Float32} + m, n = size(A) + minmn = min(m, n) + U = Matrix{TF}(undef, m, minmn) + VT = Matrix{TF}(undef, minmn, n) + S = Vector{TF}(undef, minmn) + work = Vector{TF}(undef, 1) + iwork = Vector{BlasInt}(undef, 8*minmn) + info = Ref{BlasInt}() + return SDDcache(U, VT, S, work, iwork, info) +end + +function _checkcache(ca::SDDcache{TF}, A::AbstractMatrix{TF}) where TF + m, n = size(A) + minmn = min(m, n) + size(ca.U) == (m, minmn) || throw(DimensionMismatch( + "size of U does not match size of A")) + size(ca.VT) == (minmn, n) || throw(DimensionMismatch( + "size of VT does not match size of A")) + length(ca.S) == minmn || throw(DimensionMismatch( + "size of S does not match size of A")) + length(ca.iwork) == 8*minmn || throw(DimensionMismatch( + "size of iwork does not match size of A")) +end + +struct SVDcache{TF<:Union{Float64, Float32}} + U::Matrix{TF} + VT::Matrix{TF} + S::Vector{TF} + work::Vector{TF} + info::Base.RefValue{Int64} +end + +function SVDcache(A::AbstractMatrix{TF}) where TF<:Union{Float64, Float32} + m, n = size(A) + minmn = min(m, n) + U = Matrix{TF}(undef, m, minmn) + VT = Matrix{TF}(undef, minmn, n) + S = Vector{TF}(undef, minmn) + work = Vector{TF}(undef, 1) + info = Ref{BlasInt}() + return SVDcache(U, VT, S, work, info) +end + +function _checkcache(ca::SVDcache{TF}, A::AbstractMatrix{TF}) where TF + m, n = size(A) + minmn = min(m, n) + size(ca.U) == (m, minmn) || throw(DimensionMismatch( + "size of U does not match size of A")) + size(ca.VT) == (minmn, n) || throw(DimensionMismatch( + "size of VT does not match size of A")) + length(ca.S) == minmn || throw(DimensionMismatch( + "size of S does not match size of A")) +end + +svdcache(::DivideAndConquer, A::AbstractMatrix) = SDDcache(A) +svdcache(::QRIteration, A::AbstractMatrix) = SVDcache(A) + +for (gesdd, gesvd, elty) in + ((:dgesdd_, :dgesvd_, :Float64), + (:sgesdd_, :sgesvd_, :Float32)) + @eval begin + function gesdd!(ca::SDDcache{$elty}, A::AbstractMatrix{$elty}) + Base.require_one_based_indexing(A) + chkstride1(A) + _checkcache(ca, A) + m, n = size(A) + lwork = BlasInt(-1) + for i in 1:2 # first call returns lwork as work[1] + ccall((@blasfunc($gesdd), liblapack), Cvoid, + (Ref{UInt8}, Ref{BlasInt}, Ref{BlasInt}, Ptr{$elty}, + Ref{BlasInt}, Ptr{$elty}, Ptr{$elty}, Ref{BlasInt}, + Ptr{$elty}, Ref{BlasInt}, Ptr{$elty}, Ref{BlasInt}, + Ptr{BlasInt}, Ptr{BlasInt}, Clong), + 'S', m, n, A, max(1,stride(A,2)), ca.S, + ca.U, max(1,stride(ca.U,2)), ca.VT, max(1,stride(ca.VT,2)), + ca.work, lwork, ca.iwork, ca.info, 1) + chklapackerror(ca.info[]) + if i == 1 + # Work around issue with truncated Float32 representation of lwork in + # sgesdd by using nextfloat + lwork = round(BlasInt, nextfloat(real(ca.work[1]))) + resize!(ca.work, lwork) + end + end + return ca.U, ca.S, ca.VT + end + + function gesvd!(ca::SVDcache{$elty}, A::AbstractMatrix{$elty}) + Base.require_one_based_indexing(A) + chkstride1(A) + _checkcache(ca, A) + m, n = size(A) + lwork = BlasInt(-1) + for i in 1:2 # first call returns lwork as work[1] + ccall((@blasfunc($gesvd), liblapack), Cvoid, + (Ref{UInt8}, Ref{UInt8}, Ref{BlasInt}, Ref{BlasInt}, + Ptr{$elty}, Ref{BlasInt}, Ptr{$elty}, Ptr{$elty}, + Ref{BlasInt}, Ptr{$elty}, Ref{BlasInt}, Ptr{$elty}, + Ref{BlasInt}, Ptr{BlasInt}, Clong, Clong), + 'S', 'S', m, n, A, max(1,stride(A,2)), ca.S, + ca.U, max(1,stride(ca.U,2)), ca.VT, max(1,stride(ca.VT,2)), + ca.work, lwork, ca.info, 1, 1) + chklapackerror(ca.info[]) + if i == 1 + lwork = BlasInt(real(ca.work[1])) + resize!(ca.work, lwork) + end + end + return ca.U, ca.S, ca.VT + end + end +end + +_svd!(ca::SDDcache, A::AbstractMatrix) = gesdd!(ca, A) +_svd!(ca::SVDcache, A::AbstractMatrix) = gesvd!(ca, A) diff --git a/src/process.jl b/src/process.jl index 4eae0ae..9a1ab30 100644 --- a/src/process.jl +++ b/src/process.jl @@ -330,5 +330,7 @@ show(io::IO, var::VARProcess) = function show(io::IO, ::MIME"text/plain", var::VARProcess) println(io, var, " with coefficient matrix:") - Base.print_array(io, var.B) + M, N = displaysize(io) + Base.print_matrix(IOContext(io, :compact=>true, :limit=>true, + :displaysize=>(M-1, N)), var.B) end diff --git a/src/utils.jl b/src/utils.jl index 0a3c54c..8c8f6b7 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -24,3 +24,5 @@ function bdot(X::Tuple, Y::AbstractVector, t::Int, N::Int) end return out end + +datafile(name::Union{Symbol,String}) = (@__DIR__)*"/../data/$(name)" diff --git a/test/bootstrap.jl b/test/bootstrap.jl index 8d71026..31982da 100644 --- a/test/bootstrap.jl +++ b/test/bootstrap.jl @@ -1,5 +1,5 @@ @testset "bootstrap VAR" begin - df = exampledata(:gk) + df = lpexampledata(:gk) ns = (:logcpi, :logip, :ff, :ebp, :ff4_tc) r = fit(VARProcess, df, ns, 12) stat1 = zeros(1, 2) diff --git a/test/estimation.jl b/test/estimation.jl index bde0c12..ace00b6 100644 --- a/test/estimation.jl +++ b/test/estimation.jl @@ -1,5 +1,5 @@ @testset "OLS VAR" begin - df = exampledata(:gk) + df = lpexampledata(:gk) ns = (:logcpi, :logip, :ff, :ebp, :ff4_tc) r = fit(VARProcess, df, ns, 12) @test nvar(r) == 5 @@ -19,13 +19,11 @@ @test residchol(ols) === nothing @test sprint(show, ols) == "OLS regression (258, 5)" - if VERSION >= v"1.6" - @test sprint(show, r) == - "5×61 VectorAutoregression{OLS{Float64, Vector{Float64}, Nothing, Nothing, Nothing}, true}" - @test sprint(show, MIME("text/plain"), r)[1:125] == """ - 5×61 VectorAutoregression{OLS{Float64, Vector{Float64}, Nothing, Nothing, Nothing}, true} with coefficient matrix: - 0.19390""" - end + @test sprint(show, r) == + "5×61 VectorAutoregression{OLS{Float64, Vector{Float64}, Nothing, Nothing, Nothing}, true}" + @test sprint(show, MIME("text/plain"), r)[1:140] == """ + 5×61 VectorAutoregression{OLS{Float64, Vector{Float64}, Nothing, Nothing, Nothing}, true} with coefficient matrix: + 0.193904 1.40075 """ @test size(response(r)) == (258, 5) @test coef(r) == coef(ols) diff --git a/test/factor.jl b/test/factor.jl new file mode 100644 index 0000000..cb65138 --- /dev/null +++ b/test/factor.jl @@ -0,0 +1,148 @@ +@testset "factor" begin + data = matread(datafile("lpw_est_data.mat"))["est_data"] + tb = Tables.table(data) + xbal = data[3:end,1:8] + es = trues(size(xbal,1)) + # Only unobserved factors + f1 = Factor(xbal, 3, es) + @test f1.svdca isa SDDcache + @test response(f1) === f1.Y + @test modelmatrix(f1) === f1.fac + @test coef(f1) === f1.Λ + @test residuals(f1) === f1.resid + @test r2(f1) === f1.r2 + + # Compare results with Matlab code from Stock and Watson (2016) + # Make modifications in data/src/lpw_savedata.m to get Matlab results + @test abs.(f1.fac[1,:]) ≈ + abs.([0.669750255362180, -1.415042540425748, -0.279535312367630]) atol=1e-10 + @test abs.(f1.fac[10,:]) ≈ + abs.([2.845425512378275, -0.906029272016824, 0.752341491236444]) atol=1e-10 + @test abs.(f1.fac[20,:]) ≈ + abs.([1.221141212862983, -0.516732212536293, -0.068575843021814]) atol=1e-10 + @test abs.(f1.fac[222,:]) ≈ + abs.([0.300027230626971, -0.168284777077276, -1.054070197848704]) atol=1e-10 + @test abs.(f1.Λ') ≈ + abs.([1.198841672616891 -0.526447148356210 0.154628303713676; + 0.161815191521853 -0.167943288447379 -0.018940733365788; + 0.263000440561341 -0.177311336672019 0.138590988831216; + 1.428534542807724 0.898523395588427 -0.182792943881696; + 0.954618585128196 0.657125274360260 -0.105312247322756; + 1.646099062580699 -0.769146225709081 0.446119942679932; + 0.000260114239986 0.003061919517216 0.001130474019592; + -0.146023181302217 -0.210229201098867 1.690952422003901]) atol=1e-10 + @test r2(f1) ≈ [0.547498003171410, 0.538207271565816, 0.522485207652153, + 0.845287219432025, 0.776753874267359, 0.442968927667726, + 0.718135497358341, 0.911622832625205] atol=1e-10 + + f11 = Factor(xbal, nothing, 3, es, svdalg=QRIteration()) + @test f11.svdca isa SVDcache + @test f11.fac ≈ f1.fac + @test f11.Λ ≈ f1.Λ + @test sprint(show, f11) == "222×3 Factor{Float64, SVDcache{Float64}}" + if VERSION >= v"1.7" + @test sprint(show, MIME("text/plain"), f11, context=:displaysize=>(14,120)) == """ + 222×3 Factor{Float64, SVDcache{Float64}} with 3 unobserved factors and 0 observed factor: + -0.66975 1.41504 0.279535 + 1.21566 -0.693909 0.541543 + ⋮ + -0.300027 0.168285 1.05407 + 3×8 Loading matirx: + -1.19884 -0.161815 -0.263 -1.42853 -0.954619 -1.6461 -0.000260114 0.146023 + 0.526447 0.167943 0.177311 -0.898523 -0.657125 0.769146 -0.00306192 0.210229 + -0.154628 0.0189407 -0.138591 0.182793 0.105312 -0.44612 -0.00113047 -1.69095 + R-squared by column: + 0.547498 0.538207 0.522485 0.845287 0.776754 0.442969 0.718135 0.911623""" + end # VERSION + + f = fit(Factor, tb, 1:8, [], 3, subset=(1:224).>2) + @test f.fac ≈ f1.fac + @test f.Λ ≈ f1.Λ + f = fit(Factor, tb, 1:8, nothing, 3, subset=(1:224).>2) + @test f.fac ≈ f1.fac + + # Only observed factors + w = data[3:end,1:2] + f2 = Factor(xbal, w, 2, es) + @test f2.fac == w + @test f2.Λ' ≈ [1.008190053248771 -1.202238634380183; + 0.005237739852161 0.231138917436696; + 0.075523509028555 0.036999767091460; + 0.454460174372052 -0.183640105645053; + 0.246619287143147 -0.006821196237709; + 0.668053327773079 -0.196720248983012; + -0.000042935672262 -0.000150555252075; + -0.019511821996927 -0.033173202160798] atol=1e-10 + @test r2(f2) ≈ [0.955138631506611, 0.240703689955749, 0.132870765518692, + 0.224901666724074, 0.146392692912193, 0.205313169418025, + 0.003382799320984, 0.002086843582111] atol=1e-10 + @test sprint(show, f2) == "222×2 Factor{Float64, Nothing}" + @test sprint(show, MIME("text/plain"), f2, context=:displaysize=>(10,120)) == """ + 222×2 Factor{Float64, Nothing} with 0 unobserved factor and 2 observed factors: + 1.91341 1.33595 + ⋮ + 2×8 Loading matirx: + ⋮ ⋱ + R-squared by column: + 0.955139 0.240704 0.132871 0.224902 0.146393 0.205313 0.0033828 0.00208684""" + f = fit(Factor, tb, 1:8, 1:2, 2, subset=(1:224).>2) + @test f.fac ≈ f2.fac + @test f.Λ ≈ f2.Λ + + if VERSION >= v"1.7" + w = data[3:end,1:1] + f3 = Factor(xbal, w, 4, es) + @test f3.fac[:,1:1] == w + @test abs.(f3.fac[1,2:end]) ≈ + abs.([0.867830419938244, -1.543465356847842, -0.229706167547361]) atol=1e-10 + @test abs.(f3.fac[10,2:end]) ≈ + abs.([3.067726702798948, -1.039315184216688, 0.797685166720545]) atol=1e-10 + @test abs.(f3.fac[20,2:end]) ≈ + abs.([1.594104756289584, -0.766947757961741, 0.018660320681523]) atol=1e-10 + @test abs.(f3.fac[222,2:end]) ≈ + abs.([0.471083625613415, -0.257574652429074, -1.028655851298754]) atol=1e-10 + @test abs.(f3.Λ') ≈ + abs.([0.750012249591323 0.247827072086147 -0.059068787148612 0.012599387049350; + -0.062485283908465 0.244453619582157 -0.213342550565296 -0.004784124891124; + -0.049602168355206 0.324727523538282 -0.207545763059661 0.147618996013489; + -0.041258054065395 1.468401285732195 0.884276996915713 -0.175182549235959; + -0.105630183560382 1.083471561390694 0.591512031144294 -0.081696098012485; + 0.090474634346315 1.443438531556565 -0.513837658085527 0.338039048679876; + -0.000012024477945 0.000301026441247 0.003025013006327 0.001135937330830; + -0.017558241349469 -0.125007158462481 -0.222807063196741 1.696797360798171 + ]) atol=1e-10 + @test r2(f3) ≈ [0.854448198643454, 0.713594412687064, 0.568249391571677, + 0.840943720623983, 0.793689215013341, 0.384770466378939, + 0.709901507240683, 0.916329969396382] atol=1e-7 + @test sprint(show, f3) == "222×4 Factor{Float64, SDDcache{Float64}}" + @test sprint(show, MIME("text/plain"), f3, context=:displaysize=>(12,120)) == """ + 222×4 Factor{Float64, SDDcache{Float64}} with 3 unobserved factors and 1 observed factor: + 1.91341 -0.86783 1.54347 0.229706 + ⋮ + 1.46324 -0.471084 0.257575 1.02866 + 4×8 Loading matirx: + 0.750012 -0.0624853 -0.0496022 -0.0412581 -0.10563 0.0904746 -1.20245e-5 -0.0175582 + ⋮ ⋮ + R-squared by column: + 0.854448 0.713594 0.568249 0.840944 0.793689 0.38477 0.709902 0.91633""" + + f = fit(Factor, tb, 1:8, 1:1, 4, subset=(1:224).>2, svdalg=QRIteration()) + @test f.svdca isa SVDcache + @test f.fac ≈ f3.fac + @test f.Λ ≈ f3.Λ + + fit!(f3, maxiter=1) + @test abs.(f3.fac[10,2:end]) ≈ + abs.([3.024379205864252, -0.984613178278491, 0.775423193098402]) atol=1e-10 + @test abs.(f3.Λ') ≈ + abs.([0.707091315743808 0.351151136957706 -0.154200941555442 0.045291972989540; + -0.055890052928274 0.228818516057032 -0.197366447432946 -0.010298549287021; + -0.047620855764629 0.320090306937657 -0.202381200391591 0.145954520979494; + -0.048389662236820 1.486546086421081 0.873048795893932 -0.175310532492739; + -0.102879083520594 1.077954317693319 0.602964874215342 -0.089404229150349; + 0.003041081006660 1.642453287940112 -0.767545257285204 0.445649705482416; + 0.000008934939656 0.000249402661984 0.003066623290719 0.001129092425029; + -0.017134344601979 -0.125481814960387 -0.219249527953531 1.693601876644949 + ]) atol=1e-10 + end # VERSION +end diff --git a/test/lapack.jl b/test/lapack.jl new file mode 100644 index 0000000..6e3f87a --- /dev/null +++ b/test/lapack.jl @@ -0,0 +1,10 @@ +@testset "SVD" begin + m, n = 20, 10 + for alg in (DivideAndConquer(), QRIteration()) + for TF in (Float64, Float32) + A = randn(TF, m, n) + # A is always overwritten + @test _svd!(copy(A), false, alg) == _svd!(svdcache(alg, A), copy(A)) + end + end +end diff --git a/test/process.jl b/test/process.jl index ec2f1f9..6729822 100644 --- a/test/process.jl +++ b/test/process.jl @@ -13,14 +13,12 @@ @test isstable(var1) @test !isstable(var1, 0.5) - if VERSION >= v"1.6" - @test sprint(show, var1) == "3×6 VARProcess{Matrix{Float64}, Vector{Float64}}" - @test sprint(show, MIME("text/plain"), var1) == """ - 3×6 VARProcess{Matrix{Float64}, Vector{Float64}} with coefficient matrix: - 1.003532758367871 -0.314370089912221 1.662878301208329 -0.008227769152681 -0.200502990878739 -0.320479368332797 - -0.076183071753115 0.682326947353711 -0.129459582384621 0.077372099814356 0.199130255799557 -0.082127775860029 - 0.0057789273751 -0.008683217084575 0.290444453858049 -0.005184505682256 -0.004531906575996 -0.172695800820669""" - end + @test sprint(show, var1) == "3×6 VARProcess{Matrix{Float64}, Vector{Float64}}" + @test sprint(show, MIME("text/plain"), var1) == """ + 3×6 VARProcess{Matrix{Float64}, Vector{Float64}} with coefficient matrix: + 1.00353 -0.31437 1.66288 -0.00822777 -0.200503 -0.320479 + -0.0761831 0.682327 -0.12946 0.0773721 0.19913 -0.0821278 + 0.00577893 -0.00868322 0.290444 -0.00518451 -0.00453191 -0.172696""" εs = fill(0.1, 3) var1(εs) diff --git a/test/runtests.jl b/test/runtests.jl index 7c747b7..0b8a295 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,20 +1,23 @@ using Test using AutoregressiveModels -using AutoregressiveModels: coefB, intercept +using AutoregressiveModels: SDDcache, SVDcache, svdcache, datafile, coefB, intercept using CSV using ConfidenceBands using DataFrames -using LinearAlgebra: diagm, I, cholesky -using LocalProjections: datafile +using LinearAlgebra: diagm, I, cholesky, _svd!, DivideAndConquer, QRIteration +using LocalProjections: datafile as lpdatafile +using MAT -exampledata(name) = CSV.read(datafile(name), DataFrame) +lpexampledata(name) = CSV.read(lpdatafile(name), DataFrame) const tests = [ + "lapack", "process", "estimation", "bootstrap", - "arma" + "arma", + "factor" ] printstyled("Running tests:\n", color=:blue, bold=true)