cov_nw_panel(results, nlags, groupidx, weights_func=<function weights_bartlett>, use_correction='hac')¶
Panel HAC robust covariance matrix
Assumes we have a panel of time series with consecutive, equal spaced time periods. Data is assumed to be in long format with time series of each individual stacked into one array. Panel can be unbalanced.
results : result instance
result of a regression, uses results.model.exog and results.resid TODO: this should use wexog instead
nlags : int or None
Highest lag to include in kernel window. Currently, no default because the optimal length will depend on the number of observations per cross-sectional unit.
groupidx : list of tuple
each tuple should contain the start and end index for an individual. (groupidx might change in future).
weights_func : callable
weights_func is called with nlags as argument to get the kernel weights. default are Bartlett weights
use_correction : ‘cluster’ or ‘hac’ or False
If False, then no small sample correction is used. If ‘cluster’ (default), then the same correction as in cov_cluster is used. If ‘hac’, then the same correction as in single time series, cov_hac is used.
cov : ndarray, (k_vars, k_vars)
HAC robust covariance matrix for parameter estimates
For nlags=0, this is just White covariance, cov_white. If kernel is uniform, weights_uniform, with nlags equal to the number of observations per unit in a balance panel, then cov_cluster and cov_hac_panel are identical.
Tested against STATA newey command with same defaults.
Options might change when other kernels besides Bartlett and uniform are available.