{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Dynamic factors and coincident indices\n",
    "\n",
    "Factor models generally try to find a small number of unobserved \"factors\" that influence a subtantial portion of the variation in a larger number of observed variables, and they are related to dimension-reduction techniques such as principal components analysis. Dynamic factor models explicitly model the transition dynamics of the unobserved factors, and so are often applied to time-series data.\n",
    "\n",
    "Macroeconomic coincident indices are designed to capture the common component of the \"business cycle\"; such a component is assumed to simultaneously affect many macroeconomic variables. Although the estimation and use of coincident indices (for example the [Index of Coincident Economic Indicators](http://www.newyorkfed.org/research/regional_economy/coincident_summary.html)) pre-dates dynamic factor models, in several influential papers Stock and Watson (1989, 1991) used a dynamic factor model to provide a theoretical foundation for them.\n",
    "\n",
    "Below, we follow the treatment found in Kim and Nelson (1999), of the Stock and Watson (1991) model, to formulate a dynamic factor model, estimate its parameters via maximum likelihood, and create a coincident index."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Macroeconomic data\n",
    "\n",
    "The coincident index is created by considering the comovements in four macroeconomic variables (versions of thse variables are available on [FRED](https://research.stlouisfed.org/fred2/); the ID of the series used below is given in parentheses):\n",
    "\n",
    "- Industrial production (IPMAN)\n",
    "- Real aggregate income (excluding transfer payments) (W875RX1)\n",
    "- Manufacturing and trade sales (CMRMTSPL)\n",
    "- Employees on non-farm payrolls (PAYEMS)\n",
    "\n",
    "In all cases, the data is at the monthly frequency and has been seasonally adjusted; the time-frame considered is 1972 - 2005."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import statsmodels.api as sm\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.set_printoptions(precision=4, suppress=True, linewidth=120)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pandas_datareader.data import DataReader\n",
    "\n",
    "# Get the datasets from FRED\n",
    "start = '1979-01-01'\n",
    "# end = '2014-12-01'\n",
    "end = '2016-06-01'\n",
    "indprod = DataReader('IPMAN', 'fred', start=start, end=end)\n",
    "income = DataReader('W875RX1', 'fred', start=start, end=end)\n",
    "# sales = DataReader('CMRMTSPL', 'fred', start=start, end=end)\n",
    "emp = DataReader('PAYEMS', 'fred', start=start, end=end)\n",
    "# dta = pd.concat((indprod, income, sales, emp), axis=1)\n",
    "# dta.columns = ['indprod', 'income', 'sales', 'emp']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Note**: in the most recent update on FRED (8/12/15) the time series CMRMTSPL was truncated to begin in 1997; this is probably a mistake due to the fact that CMRMTSPL is a spliced series, so the earlier period is from the series HMRMT and the latter period is defined by CMRMT.\n",
    "\n",
    "Until this is corrected, the pre-8/12/15 dataset can be downloaded from Alfred (https://alfred.stlouisfed.org/series/downloaddata?seid=CMRMTSPL) or constructed by hand from HMRMT and CMRMT, as I do below (process taken from the notes in the Alfred xls file)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "HMRMT = DataReader('HMRMT', 'fred', start='1967-01-01', end=end)\n",
    "CMRMT = DataReader('CMRMT', 'fred', start='1997-01-01', end=end)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "HMRMT_growth = HMRMT.diff() / HMRMT.shift()\n",
    "sales = pd.Series(np.zeros(emp.shape[0]), index=emp.index)\n",
    "\n",
    "# Fill in the recent entries (1997 onwards)\n",
    "sales[CMRMT.index] = CMRMT['CMRMT']\n",
    "\n",
    "# Backfill the previous entries (pre 1997)\n",
    "idx = sales.loc[:'1997-01-01'].index\n",
    "for t in range(len(idx)-1, 0, -1):\n",
    "    month = idx[t]\n",
    "    prev_month = idx[t-1]\n",
    "    sales.loc[prev_month] = sales.loc[month] / (1 + HMRMT_growth.loc[prev_month].values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "dta = pd.concat((indprod, income, sales, emp), axis=1)\n",
    "dta.columns = ['indprod', 'income', 'sales', 'emp']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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jIkzxsTt37+/VGIUERERERGpTMr1FhjGmJeAPkAe4AdUA74GrgYirbV5xpiLgKettVef5Fr7gR0nqBICpJ0kpHrAzmKEXpxrlWUdKF7sZR1TSf2Zl3VMZRl3Scakz7g+4yV5rfL+Ga9vra1RjLaFMu0j9XtPcYN+X+v3tT7j7ojpSL3i9Y/W2grxA3QCvnO9/hLo4Xo9HhhYAtefUIw6+0vwWmVWp7ixuyGmEvkzd0NMZRZ3Wf+96DOuz3hZx+2Ovxf9nPpPZf5MVNTfexU17pL8rOj3tf7fdENMlfozXvinXA83PYFhwGBjzGaccxQnlcA1vy1GnQMleK2yrAPFi72sYyqpP/Oyjqks4y5uvbKMuyTb02dcn/Hi1ivJPwM5dZX5M1FRf+9V1LhBv6/1+1qf8ZJsryT/7gqU6+Gm5Y0xJs5aG+vuOE5HRY1dcZetiho3VNzYFb3usiEAACAASURBVLdUFhX1M6G4y15FjV1xl62KGjdU7NiPqKhPEt1lgrsDOAMVNXbFXbYqatxQcWNX3FJZVNTPhOIuexU1dsVdtipq3FCxYwf0JFFEREREREQK0ZNEERERERERKaAkUURERERERAooSRQREREREZECShJFRERERESkgJJEERERERERKaAkUURERERERAooSRQREREREZECShJFRERERESkgJJEERERERERKaAkUURERERERAooSRQREREREZECShJFRERERESkgJJEERERERERKaAkUURERERERAooSRQREREREZECShJFRERERESkgJJEERERERERKaAkUURERERERAooSRQREREREZECShJFRERERESkgJJEERERERERKeDl7gDKSkREhI2JiXF3GCIiUgZWrlyZZK2t4e44Kgr1kSIiVUNx+8cqkyTGxMQQFxfn7jBERKQMGGN2uDuGikR9pIhI1VDc/lHDTUVERERERKTASZNEY8xkY0yiMWZtEceGGGOsMSbC9d4YY942xmw2xvxljGlTqG5fY8wm10/fQuXnG2PWuM552xhjXOVhxpiFrvoLjTGhJ2tDREREREREzkxxniROAbocXWiMqQtcBewsVHwN0Mj1MwB4z1U3DBgFtAPaAqOOJH2uOgMKnXekreHAYmttI2Cx6/1x2xARkYrPWuvuEERERMod63BgHY4ya++kcxKttUuNMTFFHHoDGAp8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\n",
      "text/plain": [
       "<Figure size 1080x432 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "dta.loc[:, 'indprod':'emp'].plot(subplots=True, layout=(2, 2), figsize=(15, 6));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Stock and Watson (1991) report that for their datasets, they could not reject the null hypothesis of a unit root in each series (so the series are integrated), but they did not find strong evidence that the series were co-integrated.\n",
    "\n",
    "As a result, they suggest estimating the model using the first differences (of the logs) of the variables, demeaned and standardized."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create log-differenced series\n",
    "dta['dln_indprod'] = (np.log(dta.indprod)).diff() * 100\n",
    "dta['dln_income'] = (np.log(dta.income)).diff() * 100\n",
    "dta['dln_sales'] = (np.log(dta.sales)).diff() * 100\n",
    "dta['dln_emp'] = (np.log(dta.emp)).diff() * 100\n",
    "\n",
    "# De-mean and standardize\n",
    "dta['std_indprod'] = (dta['dln_indprod'] - dta['dln_indprod'].mean()) / dta['dln_indprod'].std()\n",
    "dta['std_income'] = (dta['dln_income'] - dta['dln_income'].mean()) / dta['dln_income'].std()\n",
    "dta['std_sales'] = (dta['dln_sales'] - dta['dln_sales'].mean()) / dta['dln_sales'].std()\n",
    "dta['std_emp'] = (dta['dln_emp'] - dta['dln_emp'].mean()) / dta['dln_emp'].std()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dynamic factors\n",
    "\n",
    "A general dynamic factor model is written as:\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "y_t & = \\Lambda f_t + B x_t + u_t \\\\\n",
    "f_t & = A_1 f_{t-1} + \\dots + A_p f_{t-p} + \\eta_t \\qquad \\eta_t \\sim N(0, I)\\\\\n",
    "u_t & = C_1 u_{t-1} + \\dots + C_1 f_{t-q} + \\varepsilon_t \\qquad \\varepsilon_t \\sim N(0, \\Sigma)\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "where $y_t$ are observed data, $f_t$ are the unobserved factors (evolving as a vector autoregression), $x_t$ are (optional) exogenous variables, and $u_t$ is the error, or \"idiosyncratic\", process ($u_t$ is also optionally allowed to be autocorrelated). The $\\Lambda$ matrix is often referred to as the matrix of \"factor loadings\". The variance of the factor error term is set to the identity matrix to ensure identification of the unobserved factors.\n",
    "\n",
    "This model can be cast into state space form, and the unobserved factor estimated via the Kalman filter. The likelihood can be evaluated as a byproduct of the filtering recursions, and maximum likelihood estimation used to estimate the parameters."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model specification\n",
    "\n",
    "The specific dynamic factor model in this application has 1 unobserved factor which is assumed to follow an AR(2) proces. The innovations $\\varepsilon_t$ are assumed to be independent (so that $\\Sigma$ is a diagonal matrix) and the error term associated with each equation, $u_{i,t}$ is assumed to follow an independent AR(2) process.\n",
    "\n",
    "Thus the specification considered here is:\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "y_{i,t} & = \\lambda_i f_t + u_{i,t} \\\\\n",
    "u_{i,t} & = c_{i,1} u_{1,t-1} + c_{i,2} u_{i,t-2} + \\varepsilon_{i,t} \\qquad & \\varepsilon_{i,t} \\sim N(0, \\sigma_i^2) \\\\\n",
    "f_t & = a_1 f_{t-1} + a_2 f_{t-2} + \\eta_t \\qquad & \\eta_t \\sim N(0, I)\\\\\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "where $i$ is one of: `[indprod, income, sales, emp ]`.\n",
    "\n",
    "This model can be formulated using the `DynamicFactor` model built-in to Statsmodels. In particular, we have the following specification:\n",
    "\n",
    "- `k_factors = 1` - (there is 1 unobserved factor)\n",
    "- `factor_order = 2` - (it follows an AR(2) process)\n",
    "- `error_var = False` - (the errors evolve as independent AR processes rather than jointly as a VAR - note that this is the default option, so it is not specified below)\n",
    "- `error_order = 2` - (the errors are autocorrelated of order 2: i.e. AR(2) processes)\n",
    "- `error_cov_type = 'diagonal'` - (the innovations are uncorrelated; this is again the default)\n",
    "\n",
    "Once the model is created, the parameters can be estimated via maximum likelihood; this is done using the `fit()` method.\n",
    "\n",
    "**Note**: recall that we have de-meaned and standardized the data; this will be important in interpreting the results that follow.\n",
    "\n",
    "**Aside**: in their empirical example, Kim and Nelson (1999) actually consider a slightly different model in which the employment variable is allowed to also depend on lagged values of the factor - this model does not fit into the built-in `DynamicFactor` class, but can be accomodated by using a subclass to implement the required new parameters and restrictions - see Appendix A, below."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Parameter estimation\n",
    "\n",
    "Multivariate models can have a relatively large number of parameters, and it may be difficult to escape from local minima to find the maximized likelihood. In an attempt to mitigate this problem, I perform an initial maximization step (from the model-defined starting paramters) using the modified Powell method available in Scipy (see the minimize documentation for more information). The resulting parameters are then used as starting parameters in the standard LBFGS optimization method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Get the endogenous data\n",
    "endog = dta.loc['1979-02-01':, 'std_indprod':'std_emp']\n",
    "\n",
    "# Create the model\n",
    "mod = sm.tsa.DynamicFactor(endog, k_factors=1, factor_order=2, error_order=2)\n",
    "initial_res = mod.fit(method='powell', disp=False)\n",
    "res = mod.fit(initial_res.params)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Estimates\n",
    "\n",
    "Once the model has been estimated, there are two components that we can use for analysis or inference:\n",
    "\n",
    "- The estimated parameters\n",
    "- The estimated factor"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Parameters\n",
    "\n",
    "The estimated parameters can be helpful in understanding the implications of the model, although in models with a larger number of observed variables and / or unobserved factors they can be difficult to interpret.\n",
    "\n",
    "One reason for this difficulty is due to identification issues between the factor loadings and the unobserved factors. One easy-to-see identification issue is the sign of the loadings and the factors: an equivalent model to the one displayed below would result from reversing the signs of all factor loadings and the unobserved factor.\n",
    "\n",
    "Here, one of the easy-to-interpret implications in this model is the persistence of the unobserved factor: we find that exhibits substantial persistence."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                             Statespace Model Results                                            \n",
      "=================================================================================================================\n",
      "Dep. Variable:     ['std_indprod', 'std_income', 'std_sales', 'std_emp']   No. Observations:                  449\n",
      "Model:                                 DynamicFactor(factors=1, order=2)   Log Likelihood               -2166.252\n",
      "                                                          + AR(2) errors   AIC                           4368.504\n",
      "Date:                                                   Thu, 01 Nov 2018   BIC                           4442.431\n",
      "Time:                                                           20:36:59   HQIC                          4397.644\n",
      "Sample:                                                       02-01-1979                                         \n",
      "                                                            - 06-01-2016                                         \n",
      "Covariance Type:                                                     opg                                         \n",
      "====================================================================================================\n",
      "                                       coef    std err          z      P>|z|      [0.025      0.975]\n",
      "----------------------------------------------------------------------------------------------------\n",
      "loading.f1.std_indprod              -0.9107      0.022    -40.920      0.000      -0.954      -0.867\n",
      "loading.f1.std_income               -0.2645      0.044     -6.042      0.000      -0.350      -0.179\n",
      "loading.f1.std_sales                -0.4968      0.029    -17.183      0.000      -0.554      -0.440\n",
      "loading.f1.std_emp                  -0.2866      0.032     -9.079      0.000      -0.349      -0.225\n",
      "sigma2.std_indprod                7.687e-06   2.12e-05      0.362      0.718    -3.4e-05    4.93e-05\n",
      "sigma2.std_income                    0.9061      0.029     31.755      0.000       0.850       0.962\n",
      "sigma2.std_sales                     0.6374      0.040     16.036      0.000       0.559       0.715\n",
      "sigma2.std_emp                       0.3746      0.015     25.262      0.000       0.345       0.404\n",
      "L1.f1.f1                             0.2269      0.039      5.839      0.000       0.151       0.303\n",
      "L2.f1.f1                             0.2687      0.043      6.241      0.000       0.184       0.353\n",
      "L1.e(std_indprod).e(std_indprod)    -1.8906      0.005   -349.478      0.000      -1.901      -1.880\n",
      "L2.e(std_indprod).e(std_indprod)    -0.9978      0.005   -190.052      0.000      -1.008      -0.988\n",
      "L1.e(std_income).e(std_income)      -0.1493      0.021     -7.268      0.000      -0.190      -0.109\n",
      "L2.e(std_income).e(std_income)      -0.0849      0.043     -1.957      0.050      -0.170       0.000\n",
      "L1.e(std_sales).e(std_sales)        -0.6201      0.042    -14.693      0.000      -0.703      -0.537\n",
      "L2.e(std_sales).e(std_sales)        -0.2656      0.047     -5.676      0.000      -0.357      -0.174\n",
      "L1.e(std_emp).e(std_emp)             0.3078      0.035      8.682      0.000       0.238       0.377\n",
      "L2.e(std_emp).e(std_emp)             0.4752      0.029     16.421      0.000       0.418       0.532\n",
      "=========================================================================================================\n",
      "Ljung-Box (Q):          94.60, 35.83, 46.13, 76.61   Jarque-Bera (JB):   202.98, 10336.31, 19.57, 4327.94\n",
      "Prob(Q):                    0.00, 0.66, 0.23, 0.00   Prob(JB):                     0.00, 0.00, 0.00, 0.00\n",
      "Heteroskedasticity (H):     0.79, 4.74, 0.42, 0.41   Skew:                       0.10, -1.00, -0.09, 0.85\n",
      "Prob(H) (two-sided):        0.15, 0.00, 0.00, 0.00   Kurtosis:                   6.29, 26.42, 4.01, 18.11\n",
      "=========================================================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n"
     ]
    }
   ],
   "source": [
    "print(res.summary(separate_params=False))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimated factors\n",
    "\n",
    "While it can be useful to plot the unobserved factors, it is less useful here than one might think for two reasons:\n",
    "\n",
    "1. The sign-related identification issue described above.\n",
    "2. Since the data was differenced, the estimated factor explains the variation in the differenced data, not the original data.\n",
    "\n",
    "It is for these reasons that the coincident index is created (see below).\n",
    "\n",
    "With these reservations, the unobserved factor is plotted below, along with the NBER indicators for US recessions. It appears that the factor is successful at picking up some degree of business cycle activity."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 936x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(13,3))\n",
    "\n",
    "# Plot the factor\n",
    "dates = endog.index._mpl_repr()\n",
    "ax.plot(dates, res.factors.filtered[0], label='Factor')\n",
    "ax.legend()\n",
    "\n",
    "# Retrieve and also plot the NBER recession indicators\n",
    "rec = DataReader('USREC', 'fred', start=endog.index[0], end=end)\n",
    "ylim = ax.get_ylim()\n",
    "ax.fill_between(dates[:len(rec)], ylim[0], ylim[1], rec.values[:,0], facecolor='k', alpha=0.1);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Post-estimation\n",
    "\n",
    "Although here we will be able to interpret the results of the model by constructing the coincident index, there is a useful and generic approach for getting a sense for what is being captured by the estimated factor. By taking the estimated factors as given, regressing them (and a constant) each (one at a time) on each of the observed variables, and recording the coefficients of determination ($R^2$ values), we can get a sense of the variables for which each factor explains a substantial portion of the variance and the variables for which it does not.\n",
    "\n",
    "In models with more variables and more factors, this can sometimes lend interpretation to the factors (for example sometimes one factor will load primarily on real variables and another on nominal variables).\n",
    "\n",
    "In this model, with only four endogenous variables and one factor, it is easy to digest a simple table of the $R^2$ values, but in larger models it is not. For this reason, a bar plot is often employed; from the plot we can easily see that the factor explains most of the variation in industrial production index and a large portion of the variation in sales and employment, it is less helpful in explaining income."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x144 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "res.plot_coefficients_of_determination(figsize=(8,2));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Coincident Index\n",
    "\n",
    "As described above, the goal of this model was to create an interpretable series which could be used to understand the current status of the macroeconomy. This is what the coincident index is designed to do. It is constructed below. For readers interested in an explanation of the construction, see Kim and Nelson (1999) or Stock and Watson (1991).\n",
    "\n",
    "In essense, what is done is to reconstruct the mean of the (differenced) factor. We will compare it to the coincident index on published by the Federal Reserve Bank of Philadelphia (USPHCI on FRED)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 936x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "usphci = DataReader('USPHCI', 'fred', start='1979-01-01', end='2016-06-01')['USPHCI']\n",
    "usphci.plot(figsize=(13,3));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "dusphci = usphci.diff()[1:].values\n",
    "def compute_coincident_index(mod, res):\n",
    "    # Estimate W(1)\n",
    "    spec = res.specification\n",
    "    design = mod.ssm['design']\n",
    "    transition = mod.ssm['transition']\n",
    "    ss_kalman_gain = res.filter_results.kalman_gain[:,:,-1]\n",
    "    k_states = ss_kalman_gain.shape[0]\n",
    "\n",
    "    W1 = np.linalg.inv(np.eye(k_states) - np.dot(\n",
    "        np.eye(k_states) - np.dot(ss_kalman_gain, design),\n",
    "        transition\n",
    "    )).dot(ss_kalman_gain)[0]\n",
    "\n",
    "    # Compute the factor mean vector\n",
    "    factor_mean = np.dot(W1, dta.loc['1972-02-01':, 'dln_indprod':'dln_emp'].mean())\n",
    "    \n",
    "    # Normalize the factors\n",
    "    factor = res.factors.filtered[0]\n",
    "    factor *= np.std(usphci.diff()[1:]) / np.std(factor)\n",
    "\n",
    "    # Compute the coincident index\n",
    "    coincident_index = np.zeros(mod.nobs+1)\n",
    "    # The initial value is arbitrary; here it is set to\n",
    "    # facilitate comparison\n",
    "    coincident_index[0] = usphci.iloc[0] * factor_mean / dusphci.mean()\n",
    "    for t in range(0, mod.nobs):\n",
    "        coincident_index[t+1] = coincident_index[t] + factor[t] + factor_mean\n",
    "    \n",
    "    # Attach dates\n",
    "    coincident_index = pd.Series(coincident_index, index=dta.index).iloc[1:]\n",
    "    \n",
    "    # Normalize to use the same base year as USPHCI\n",
    "    coincident_index *= (usphci.loc['1992-07-01'] / coincident_index.loc['1992-07-01'])\n",
    "    \n",
    "    return coincident_index"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below we plot the calculated coincident index along with the US recessions and the comparison coincident index USPHCI."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 936x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(13,3))\n",
    "\n",
    "# Compute the index\n",
    "coincident_index = compute_coincident_index(mod, res)\n",
    "\n",
    "# Plot the factor\n",
    "dates = endog.index._mpl_repr()\n",
    "ax.plot(dates, coincident_index, label='Coincident index')\n",
    "ax.plot(usphci.index._mpl_repr(), usphci, label='USPHCI')\n",
    "ax.legend(loc='lower right')\n",
    "\n",
    "# Retrieve and also plot the NBER recession indicators\n",
    "ylim = ax.get_ylim()\n",
    "ax.fill_between(dates[:len(rec)], ylim[0], ylim[1], rec.values[:,0], facecolor='k', alpha=0.1);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Appendix 1: Extending the dynamic factor model\n",
    "\n",
    "Recall that the previous specification was described by:\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "y_{i,t} & = \\lambda_i f_t + u_{i,t} \\\\\n",
    "u_{i,t} & = c_{i,1} u_{1,t-1} + c_{i,2} u_{i,t-2} + \\varepsilon_{i,t} \\qquad & \\varepsilon_{i,t} \\sim N(0, \\sigma_i^2) \\\\\n",
    "f_t & = a_1 f_{t-1} + a_2 f_{t-2} + \\eta_t \\qquad & \\eta_t \\sim N(0, I)\\\\\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "Written in state space form, the previous specification of the model had the following observation equation:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "y_{\\text{indprod}, t} \\\\\n",
    "y_{\\text{income}, t} \\\\\n",
    "y_{\\text{sales}, t} \\\\\n",
    "y_{\\text{emp}, t} \\\\\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "\\lambda_\\text{indprod} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{income}  & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{sales}   & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{emp}     & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n",
    "\\end{bmatrix}\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "f_{t-1} \\\\\n",
    "u_{\\text{indprod}, t} \\\\\n",
    "u_{\\text{income}, t} \\\\\n",
    "u_{\\text{sales}, t} \\\\\n",
    "u_{\\text{emp}, t} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "and transition equation:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "f_{t-1} \\\\\n",
    "u_{\\text{indprod}, t} \\\\\n",
    "u_{\\text{income}, t} \\\\\n",
    "u_{\\text{sales}, t} \\\\\n",
    "u_{\\text{emp}, t} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "a_1 & a_2 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "1   & 0   & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & c_{\\text{indprod}, 1} & 0 & 0 & 0 & c_{\\text{indprod}, 2} & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & c_{\\text{income}, 1} & 0 & 0 & 0 & c_{\\text{income}, 2} & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & c_{\\text{sales}, 1} & 0 & 0 & 0 & c_{\\text{sales}, 2} & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & c_{\\text{emp}, 1} & 0 & 0 & 0 & c_{\\text{emp}, 2} \\\\\n",
    "0   & 0   & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n",
    "\\end{bmatrix} \n",
    "\\begin{bmatrix}\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "u_{\\text{indprod}, t-2} \\\\\n",
    "u_{\\text{income}, t-2} \\\\\n",
    "u_{\\text{sales}, t-2} \\\\\n",
    "u_{\\text{emp}, t-2} \\\\\n",
    "\\end{bmatrix}\n",
    "+ R \\begin{bmatrix}\n",
    "\\eta_t \\\\\n",
    "\\varepsilon_{t}\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "the `DynamicFactor` model handles setting up the state space representation and, in the `DynamicFactor.update` method, it fills in the fitted parameter values into the appropriate locations."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The extended specification is the same as in the previous example, except that we also want to allow employment to depend on lagged values of the factor. This creates a change to the $y_{\\text{emp},t}$ equation. Now we have:\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "y_{i,t} & = \\lambda_i f_t + u_{i,t} \\qquad & i \\in \\{\\text{indprod}, \\text{income}, \\text{sales} \\}\\\\\n",
    "y_{i,t} & = \\lambda_{i,0} f_t + \\lambda_{i,1} f_{t-1} + \\lambda_{i,2} f_{t-2} + \\lambda_{i,2} f_{t-3} + u_{i,t} \\qquad & i = \\text{emp} \\\\\n",
    "u_{i,t} & = c_{i,1} u_{i,t-1} + c_{i,2} u_{i,t-2} + \\varepsilon_{i,t} \\qquad & \\varepsilon_{i,t} \\sim N(0, \\sigma_i^2) \\\\\n",
    "f_t & = a_1 f_{t-1} + a_2 f_{t-2} + \\eta_t \\qquad & \\eta_t \\sim N(0, I)\\\\\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "Now, the corresponding observation equation should look like the following:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "y_{\\text{indprod}, t} \\\\\n",
    "y_{\\text{income}, t} \\\\\n",
    "y_{\\text{sales}, t} \\\\\n",
    "y_{\\text{emp}, t} \\\\\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "\\lambda_\\text{indprod} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{income}  & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{sales}   & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{emp,1}   & \\lambda_\\text{emp,2} & \\lambda_\\text{emp,3} & \\lambda_\\text{emp,4} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n",
    "\\end{bmatrix}\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "f_{t-3} \\\\\n",
    "u_{\\text{indprod}, t} \\\\\n",
    "u_{\\text{income}, t} \\\\\n",
    "u_{\\text{sales}, t} \\\\\n",
    "u_{\\text{emp}, t} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "Notice that we have introduced two new state variables, $f_{t-2}$ and $f_{t-3}$, which means we need to update the  transition equation:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "f_{t-3} \\\\\n",
    "u_{\\text{indprod}, t} \\\\\n",
    "u_{\\text{income}, t} \\\\\n",
    "u_{\\text{sales}, t} \\\\\n",
    "u_{\\text{emp}, t} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "a_1 & a_2 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "1   & 0   & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 1   & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & c_{\\text{indprod}, 1} & 0 & 0 & 0 & c_{\\text{indprod}, 2} & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & c_{\\text{income}, 1} & 0 & 0 & 0 & c_{\\text{income}, 2} & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 0 & c_{\\text{sales}, 1} & 0 & 0 & 0 & c_{\\text{sales}, 2} & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 0 & 0 & c_{\\text{emp}, 1} & 0 & 0 & 0 & c_{\\text{emp}, 2} \\\\\n",
    "0   & 0   & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n",
    "\\end{bmatrix} \n",
    "\\begin{bmatrix}\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "f_{t-3} \\\\\n",
    "f_{t-4} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "u_{\\text{indprod}, t-2} \\\\\n",
    "u_{\\text{income}, t-2} \\\\\n",
    "u_{\\text{sales}, t-2} \\\\\n",
    "u_{\\text{emp}, t-2} \\\\\n",
    "\\end{bmatrix}\n",
    "+ R \\begin{bmatrix}\n",
    "\\eta_t \\\\\n",
    "\\varepsilon_{t}\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "This model cannot be handled out-of-the-box by the `DynamicFactor` class, but it can be handled by creating a subclass when alters the state space representation in the appropriate way."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, notice that if we had set `factor_order = 4`, we would almost have what we wanted. In that case, the last line of the observation equation would be:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "\\vdots \\\\\n",
    "y_{\\text{emp}, t} \\\\\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "\\vdots &  &  &  &  &  &  &  &  &  &  & \\vdots \\\\\n",
    "\\lambda_\\text{emp,1}   & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n",
    "\\end{bmatrix}\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "f_{t-3} \\\\\n",
    "\\vdots\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "\n",
    "and the first line of the transition equation would be:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "\\vdots\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "a_1 & a_2 & a_3 & a_4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\vdots &  &  &  &  &  &  &  &  &  &  & \\vdots \\\\\n",
    "\\end{bmatrix} \n",
    "\\begin{bmatrix}\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "f_{t-3} \\\\\n",
    "f_{t-4} \\\\\n",
    "\\vdots\n",
    "\\end{bmatrix}\n",
    "+ R \\begin{bmatrix}\n",
    "\\eta_t \\\\\n",
    "\\varepsilon_{t}\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "Relative to what we want, we have the following differences:\n",
    "\n",
    "1. In the above situation, the $\\lambda_{\\text{emp}, j}$ are forced to be zero for $j > 0$, and we want them to be estimated as parameters.\n",
    "2. We only want the factor to transition according to an AR(2), but under the above situation it is an AR(4).\n",
    "\n",
    "Our strategy will be to subclass `DynamicFactor`, and let it do most of the work (setting up the state space representation, etc.) where it assumes that `factor_order = 4`. The only things we will actually do in the subclass will be to fix those two issues.\n",
    "\n",
    "First, here is the full code of the subclass; it is discussed below. It is important to note at the outset that none of the methods defined below could have been omitted. In fact, the methods `__init__`, `start_params`, `param_names`, `transform_params`, `untransform_params`, and `update` form the core of all state space models in Statsmodels, not just the `DynamicFactor` class."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "from statsmodels.tsa.statespace import tools\n",
    "class ExtendedDFM(sm.tsa.DynamicFactor):\n",
    "    def __init__(self, endog, **kwargs):\n",
    "            # Setup the model as if we had a factor order of 4\n",
    "            super(ExtendedDFM, self).__init__(\n",
    "                endog, k_factors=1, factor_order=4, error_order=2,\n",
    "                **kwargs)\n",
    "\n",
    "            # Note: `self.parameters` is an ordered dict with the\n",
    "            # keys corresponding to parameter types, and the values\n",
    "            # the number of parameters of that type.\n",
    "            # Add the new parameters\n",
    "            self.parameters['new_loadings'] = 3\n",
    "\n",
    "            # Cache a slice for the location of the 4 factor AR\n",
    "            # parameters (a_1, ..., a_4) in the full parameter vector\n",
    "            offset = (self.parameters['factor_loadings'] +\n",
    "                      self.parameters['exog'] +\n",
    "                      self.parameters['error_cov'])\n",
    "            self._params_factor_ar = np.s_[offset:offset+2]\n",
    "            self._params_factor_zero = np.s_[offset+2:offset+4]\n",
    "\n",
    "    @property\n",
    "    def start_params(self):\n",
    "        # Add three new loading parameters to the end of the parameter\n",
    "        # vector, initialized to zeros (for simplicity; they could\n",
    "        # be initialized any way you like)\n",
    "        return np.r_[super(ExtendedDFM, self).start_params, 0, 0, 0]\n",
    "    \n",
    "    @property\n",
    "    def param_names(self):\n",
    "        # Add the corresponding names for the new loading parameters\n",
    "        #  (the name can be anything you like)\n",
    "        return super(ExtendedDFM, self).param_names + [\n",
    "            'loading.L%d.f1.%s' % (i, self.endog_names[3]) for i in range(1,4)]\n",
    "\n",
    "    def transform_params(self, unconstrained):\n",
    "            # Perform the typical DFM transformation (w/o the new parameters)\n",
    "            constrained = super(ExtendedDFM, self).transform_params(\n",
    "            unconstrained[:-3])\n",
    "\n",
    "            # Redo the factor AR constraint, since we only want an AR(2),\n",
    "            # and the previous constraint was for an AR(4)\n",
    "            ar_params = unconstrained[self._params_factor_ar]\n",
    "            constrained[self._params_factor_ar] = (\n",
    "                tools.constrain_stationary_univariate(ar_params))\n",
    "\n",
    "            # Return all the parameters\n",
    "            return np.r_[constrained, unconstrained[-3:]]\n",
    "\n",
    "    def untransform_params(self, constrained):\n",
    "            # Perform the typical DFM untransformation (w/o the new parameters)\n",
    "            unconstrained = super(ExtendedDFM, self).untransform_params(\n",
    "                constrained[:-3])\n",
    "\n",
    "            # Redo the factor AR unconstraint, since we only want an AR(2),\n",
    "            # and the previous unconstraint was for an AR(4)\n",
    "            ar_params = constrained[self._params_factor_ar]\n",
    "            unconstrained[self._params_factor_ar] = (\n",
    "                tools.unconstrain_stationary_univariate(ar_params))\n",
    "\n",
    "            # Return all the parameters\n",
    "            return np.r_[unconstrained, constrained[-3:]]\n",
    "\n",
    "    def update(self, params, transformed=True, **kwargs):\n",
    "        # Peform the transformation, if required\n",
    "        if not transformed:\n",
    "            params = self.transform_params(params)\n",
    "        params[self._params_factor_zero] = 0\n",
    "        \n",
    "        # Now perform the usual DFM update, but exclude our new parameters\n",
    "        super(ExtendedDFM, self).update(params[:-3], transformed=True, **kwargs)\n",
    "\n",
    "        # Finally, set our new parameters in the design matrix\n",
    "        self['design', 3, 1:4] = params[-3:]\n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So what did we just do?\n",
    "\n",
    "#### `__init__`\n",
    "\n",
    "The important step here was specifying the base dynamic factor model which we were operating with. In particular, as described above, we initialize with `factor_order=4`, even though we will only end up with an AR(2) model for the factor. We also performed some general setup-related tasks.\n",
    "\n",
    "#### `start_params`\n",
    "\n",
    "`start_params` are used as initial values in the optimizer. Since we are adding three new parameters, we need to pass those in. If we hadn't done this, the optimizer would use the default starting values, which would be three elements short.\n",
    "\n",
    "#### `param_names`\n",
    "\n",
    "`param_names` are used in a variety of places, but especially in the results class. Below we get a full result summary, which is only possible when all the parameters have associated names.\n",
    "\n",
    "#### `transform_params` and `untransform_params`\n",
    "\n",
    "The optimizer selects possibly parameter values in an unconstrained way. That's not usually desired (since variances can't be negative, for example), and `transform_params` is used to transform the unconstrained values used by the optimizer to constrained values appropriate to the model. Variances terms are typically squared (to force them to be positive), and AR lag coefficients are often constrained to lead to a stationary model. `untransform_params` is used for the reverse operation (and is important because starting parameters are usually specified in terms of values appropriate to the model, and we need to convert them to parameters appropriate to the optimizer before we can begin the optimization routine).\n",
    "\n",
    "Even though we don't need to transform or untransform our new parameters (the loadings can in theory take on any values), we still need to modify this function for two reasons:\n",
    "\n",
    "1. The version in the `DynamicFactor` class is expecting 3 fewer parameters than we have now. At a minimum, we need to handle the three new parameters.\n",
    "2. The version in the `DynamicFactor` class constrains the factor lag coefficients to be stationary as though it was an AR(4) model. Since we actually have an AR(2) model, we need to re-do the constraint. We also set the last two autoregressive coefficients to be zero here.\n",
    "\n",
    "#### `update`\n",
    "\n",
    "The most important reason we need to specify a new `update` method is because we have three new parameters that we need to place into the state space formulation. In particular we let the parent `DynamicFactor.update` class handle placing all the parameters except the three new ones in to the state space representation, and then we put the last three in manually."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                             Statespace Model Results                                            \n",
      "=================================================================================================================\n",
      "Dep. Variable:     ['std_indprod', 'std_income', 'std_sales', 'std_emp']   No. Observations:                  449\n",
      "Model:                                 DynamicFactor(factors=1, order=4)   Log Likelihood               -2150.818\n",
      "                                                          + AR(2) errors   AIC                           4347.635\n",
      "Date:                                                   Thu, 01 Nov 2018   BIC                           4442.097\n",
      "Time:                                                           20:39:23   HQIC                          4384.869\n",
      "Sample:                                                       02-01-1979                                         \n",
      "                                                            - 06-01-2016                                         \n",
      "Covariance Type:                                                     opg                                         \n",
      "====================================================================================================\n",
      "                                       coef    std err          z      P>|z|      [0.025      0.975]\n",
      "----------------------------------------------------------------------------------------------------\n",
      "loading.f1.std_indprod              -0.9101      0.022    -41.783      0.000      -0.953      -0.867\n",
      "loading.f1.std_income               -0.2574      0.045     -5.687      0.000      -0.346      -0.169\n",
      "loading.f1.std_sales                -0.4970      0.029    -17.434      0.000      -0.553      -0.441\n",
      "loading.f1.std_emp                  -0.3219      0.030    -10.598      0.000      -0.381      -0.262\n",
      "sigma2.std_indprod                2.551e-05   8.54e-05      0.299      0.765      -0.000       0.000\n",
      "sigma2.std_income                    0.9108      0.028     32.137      0.000       0.855       0.966\n",
      "sigma2.std_sales                     0.6394      0.040     16.160      0.000       0.562       0.717\n",
      "sigma2.std_emp                       0.3480      0.014     24.645      0.000       0.320       0.376\n",
      "L1.f1.f1                             0.2156      0.037      5.837      0.000       0.143       0.288\n",
      "L2.f1.f1                             0.2841      0.045      6.277      0.000       0.195       0.373\n",
      "L3.f1.f1                                  0    2.7e-09          0      1.000   -5.29e-09    5.29e-09\n",
      "L4.f1.f1                                  0    2.7e-09          0      1.000   -5.29e-09    5.29e-09\n",
      "L1.e(std_indprod).e(std_indprod)     0.8576      0.007    131.072      0.000       0.845       0.870\n",
      "L2.e(std_indprod).e(std_indprod)    -0.9977      0.007   -150.635      0.000      -1.011      -0.985\n",
      "L1.e(std_income).e(std_income)      -0.1497      0.021     -7.254      0.000      -0.190      -0.109\n",
      "L2.e(std_income).e(std_income)      -0.0819      0.044     -1.881      0.060      -0.167       0.003\n",
      "L1.e(std_sales).e(std_sales)        -0.6254      0.044    -14.241      0.000      -0.711      -0.539\n",
      "L2.e(std_sales).e(std_sales)        -0.2642      0.047     -5.580      0.000      -0.357      -0.171\n",
      "L1.e(std_emp).e(std_emp)             0.2380      0.034      7.066      0.000       0.172       0.304\n",
      "L2.e(std_emp).e(std_emp)             0.4559      0.034     13.457      0.000       0.390       0.522\n",
      "loading.L1.f1.std_emp               -0.1321      0.031     -4.227      0.000      -0.193      -0.071\n",
      "loading.L2.f1.std_emp               -0.1109      0.028     -3.983      0.000      -0.165      -0.056\n",
      "loading.L3.f1.std_emp               -0.1035      0.030     -3.483      0.000      -0.162      -0.045\n",
      "=========================================================================================================\n",
      "Ljung-Box (Q):          97.58, 35.92, 45.60, 84.98   Jarque-Bera (JB):   213.49, 10541.77, 22.69, 4367.84\n",
      "Prob(Q):                    0.00, 0.65, 0.25, 0.00   Prob(JB):                     0.00, 0.00, 0.00, 0.00\n",
      "Heteroskedasticity (H):     0.80, 4.84, 0.42, 0.37   Skew:                       0.06, -1.00, -0.06, 0.78\n",
      "Prob(H) (two-sided):        0.17, 0.00, 0.00, 0.00   Kurtosis:                   6.38, 26.65, 4.09, 18.20\n",
      "=========================================================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n",
      "[2] Covariance matrix is singular or near-singular, with condition number 3.75e+17. Standard errors may be unstable.\n"
     ]
    }
   ],
   "source": [
    "# Create the model\n",
    "extended_mod = ExtendedDFM(endog)\n",
    "initial_extended_res = extended_mod.fit(method='powell', disp=False)\n",
    "extended_res = extended_mod.fit(initial_extended_res.params, maxiter=1000)\n",
    "print(extended_res.summary(separate_params=False))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Although this model increases the likelihood, it is not preferred by the AIC and BIC mesaures which penalize the additional three parameters.\n",
    "\n",
    "Furthermore, the qualitative results are unchanged, as we can see from the updated $R^2$ chart and the new coincident index, both of which are practically identical to the previous results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x144 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "extended_res.plot_coefficients_of_determination(figsize=(8,2));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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+q5OAkRTkgSIm6beUc93579jx+kdfH72c7JKswDo7RXIVM9ejLVfYmRpAQGnPwf7Znbc/zBvHczj65yDHDpbhskER8zXeANrANRWQeggLIOmMHFAIFi8my6PSu7YSgohhBCizS5evMjo0aPZuHEjMTEx/PjHP2bixImcOHGi4QnDQ4cOJT09nffff58VK1ZQW1tLYmIiv//97zGbzdhsNlJTU/n000/x9vZmw4YNhIWFcfLkSWbMmIHdbmfy5MlN3ve1117jo48+oqamhgcffJCXX34ZgFdeeYU1a9YQGRlJSEgII0eOvOqYZ8+ejbe3N0eOHCE3N5dVq1bx7rvvsnv3bhITE1m9ejUAa9euZenSpWituf/++3n11VcB51OIly1bRnh4OAMHDsTLywuAoqIinnrqKU6dOgXA8uXLGTduXEeFXpIA0bHsDjt7CvawJXcL209tp7i6GA9lIt7sz7PVHtx1/hT9605d9Us+wJEvP8NvyH/wwqRBDI8MwMfTA37rifawogbc6zyht/hCcDT0HAhetptePyGEEKJL2r4M/t/v2rZu/CyYuqJp2cb/Dt+8+/3r8Qvg7oXX3M3lk/rLFi5cyPTp00lLS2P27NmkpqZSWlrK3LlzAUhLS2u4cpCZmcmHH37Irl27sFgs/PznPyc9PZ3HH3+cyspKxowZwyuvvMILL7zAn/70J37961+TmprK008/zeOPP85bb73V8L6bN28mKyuLPXv2oLVm6tSp7Ny5E19fX9atW8e3336L3W4nPj6+2SQAoLS0lH/+859s3LiRKVOmsGvXLlauXMmoUaPYt28foaGhvPjii+zdu5fAwEBSUlL429/+RmJiIosWLWLv3r0EBARw9913M2LECABSU1OZP38+SUlJnDp1ikmTJpGZmdm2z6gdJAkQLufQDr459w2bcjaxJXcLJdUl+Hj4kNQniYlHtpN8Lhs/ra+5D20N4KnRwZA4oOmCl4qaTRiEEEII4d5a6g507733sn79eubNm8f+/fub3Xbbtm3s3buXUaNGAc6EIjQ0FABPT08eeMA5eMfIkSPZsmULALt27eLjjz8G4LHHHuPFF18EnEnA5s2bG06+KyoqyMrKory8nAcffBAfH+fDQqdOndpiXaZMmYJSitjYWMLCwhrudRg6dCg5OTnk5uYyYcIEQkJCAJg5cyY7d+4EaFI+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\n",
      "text/plain": [
       "<Figure size 936x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(13,3))\n",
    "\n",
    "# Compute the index\n",
    "extended_coincident_index = compute_coincident_index(extended_mod, extended_res)\n",
    "\n",
    "# Plot the factor\n",
    "dates = endog.index._mpl_repr()\n",
    "ax.plot(dates, coincident_index, '-', linewidth=1, label='Basic model')\n",
    "ax.plot(dates, extended_coincident_index, '--', linewidth=3, label='Extended model')\n",
    "ax.plot(usphci.index._mpl_repr(), usphci, label='USPHCI')\n",
    "ax.legend(loc='lower right')\n",
    "ax.set(title='Coincident indices, comparison')\n",
    "\n",
    "# Retrieve and also plot the NBER recession indicators\n",
    "ylim = ax.get_ylim()\n",
    "ax.fill_between(dates[:len(rec)], ylim[0], ylim[1], rec.values[:,0], facecolor='k', alpha=0.1);"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}