# linearmodels.panel.covariance.DriscollKraay¶

class linearmodels.panel.covariance.DriscollKraay(y: ndarray, x: ndarray, *, debiased: bool = False, extra_df: int = 0, kernel: = None, bandwidth: = None)[source]

Driscoll-Kraay heteroskedasticity-autocorrelation robust covariance estimation

Parameters:
y: ndarray

(entity x time) by 1 stacked array of dependent

x: ndarray

(entity x time) by variables stacked array of exogenous

params: ndarray

variables by 1 array of estimated model parameters

entity_ids: ndarray

(entity x time) by 1 stacked array of entity ids

time_ids: ndarray

(entity x time) by 1 stacked array of time ids

debiased: bool = False

Flag indicating whether to debias the estimator

extra_df: int = 0

Additional degrees of freedom consumed by models beyond the number of columns in x, e.g., fixed effects. Covariance estimators are always adjusted for extra_df irrespective of the setting of debiased.

kernel: = None

Name of one of the supported kernels. If None, uses the Newey-West kernel.

bandwidth: = None

Non-negative integer to use as bandwidth. If not provided a rule-of- thumb value is used.

Notes

Supported kernels:

• “bartlett”, “newey-west” - Bartlett’s kernel

• “parzen”, “gallant” - Parzen kernel

Bandwidth is set to the common value for the Bartlett kernel if not provided.

The estimator of the covariance is

$n^{-1}\hat{\Sigma}_{xx}^{-1}\hat{S}\hat{\Sigma}_{xx}^{-1}$

where

$\hat{\Sigma}_{xx} = n^{-1}X'X$

and

$\begin{split}\xi_t & = \sum_{i=1}^{n_t} \epsilon_i x_{i} \\ \hat{S}_0 & = \sum_{i=1}^{t} \xi'_t \xi_t \\ \hat{S}_j & = \sum_{i=1}^{t-j} \xi'_t \xi_{t+j} + \xi'_{t+j} \xi_t \\ \hat{S} & = (n-df)^{-1} \sum_{j=0}^{bw} K(j, bw) \hat{S}_j\end{split}$

where df is extra_df and n-df is replace by n-df-k if debiased is True. $$K(i, bw)$$ is the kernel weighting function.

Methods

 Covariance calculation deferred until executed

Properties

 ALLOWED_KWARGS DEFAULT_KERNEL cov Estimated covariance eps Model residuals name Covariance estimator name s2 Error variance