|
28 | 28 |
|
29 | 29 |
|
30 | 30 | class DoubleMLDIDCSBinary(LinearScoreMixin, DoubleML):
|
31 |
| - """Double machine learning for difference-in-differences models with repeated cross sections (binary setting in terms of group and time |
32 |
| - combinations). |
| 31 | + """Double machine learning for difference-in-differences models with repeated cross sections |
| 32 | + (binary setting in terms of group and time combinations). |
33 | 33 |
|
34 |
| - Parameters |
35 |
| - ---------- |
36 |
| - obj_dml_data : :class:`DoubleMLPanelData` object |
37 |
| - The :class:`DoubleMLPanelData` object providing the data and specifying the variables for the causal model. |
| 34 | + Parameters |
| 35 | + ---------- |
| 36 | + obj_dml_data : :class:`DoubleMLPanelData` object |
| 37 | + The :class:`DoubleMLPanelData` object providing the data and specifying the variables for the causal model. |
38 | 38 |
|
39 |
| - g_value : int |
40 |
| - The value indicating the treatment group (first period with treatment). |
41 |
| - Default is ``None``. This implements the case for the smallest, non-zero value of G. |
| 39 | + g_value : int |
| 40 | + The value indicating the treatment group (first period with treatment). |
| 41 | + Default is ``None``. This implements the case for the smallest, non-zero value of G. |
42 | 42 |
|
43 |
| - t_value_pre : int |
44 |
| - The value indicating the baseline pre-treatment period. |
| 43 | + t_value_pre : int |
| 44 | + The value indicating the baseline pre-treatment period. |
45 | 45 |
|
46 |
| - t_value_eval : int |
47 |
| - The value indicating the period for evaluation. |
| 46 | + t_value_eval : int |
| 47 | + The value indicating the period for evaluation. |
48 | 48 |
|
49 |
| - ml_g : estimator implementing ``fit()`` and ``predict()`` |
50 |
| - A machine learner implementing ``fit()`` and ``predict()`` methods (e.g. |
51 |
| - :py:class:`sklearn.ensemble.RandomForestRegressor`) for the nuisance function :math:`g_0(d,X) = E[Y_1-Y_0|D=d, X]`. |
52 |
| - For a binary outcome variable :math:`Y` (with values 0 and 1), a classifier implementing ``fit()`` and |
53 |
| - ``predict_proba()`` can also be specified. If :py:func:`sklearn.base.is_classifier` returns ``True``, |
54 |
| - ``predict_proba()`` is used otherwise ``predict()``. |
| 49 | + ml_g : estimator implementing ``fit()`` and ``predict()`` |
| 50 | + A machine learner implementing ``fit()`` and ``predict()`` methods (e.g. |
| 51 | + :py:class:`sklearn.ensemble.RandomForestRegressor`) for the nuisance function :math:`g_0(d,X) = E[Y_1-Y_0|D=d, X]`. |
| 52 | + For a binary outcome variable :math:`Y` (with values 0 and 1), a classifier implementing ``fit()`` and |
| 53 | + ``predict_proba()`` can also be specified. If :py:func:`sklearn.base.is_classifier` returns ``True``, |
| 54 | + ``predict_proba()`` is used otherwise ``predict()``. |
55 | 55 |
|
56 |
| - ml_m : classifier implementing ``fit()`` and ``predict_proba()`` |
57 |
| - A machine learner implementing ``fit()`` and ``predict_proba()`` methods (e.g. |
58 |
| - :py:class:`sklearn.ensemble.RandomForestClassifier`) for the nuisance function :math:`m_0(X) = E[D=1|X]`. |
59 |
| - Only relevant for ``score='observational'``. |
| 56 | + ml_m : classifier implementing ``fit()`` and ``predict_proba()`` |
| 57 | + A machine learner implementing ``fit()`` and ``predict_proba()`` methods (e.g. |
| 58 | + :py:class:`sklearn.ensemble.RandomForestClassifier`) for the nuisance function :math:`m_0(X) = E[D=1|X]`. |
| 59 | + Only relevant for ``score='observational'``. |
60 | 60 |
|
61 |
| - control_group : str |
62 |
| - Specifies the control group. Either ``'never_treated'`` or ``'not_yet_treated'``. |
63 |
| - Default is ``'never_treated'``. |
| 61 | + control_group : str |
| 62 | + Specifies the control group. Either ``'never_treated'`` or ``'not_yet_treated'``. |
| 63 | + Default is ``'never_treated'``. |
64 | 64 |
|
65 |
| - anticipation_periods : int |
66 |
| - Number of anticipation periods. Default is ``0``. |
| 65 | + anticipation_periods : int |
| 66 | + Number of anticipation periods. Default is ``0``. |
67 | 67 |
|
68 |
| - n_folds : int |
69 |
| - Number of folds. |
70 |
| - Default is ``5``. |
| 68 | + n_folds : int |
| 69 | + Number of folds. |
| 70 | + Default is ``5``. |
71 | 71 |
|
72 |
| - n_rep : int |
73 |
| - Number of repetitions for the sample splitting. |
74 |
| - Default is ``1``. |
| 72 | + n_rep : int |
| 73 | + Number of repetitions for the sample splitting. |
| 74 | + Default is ``1``. |
75 | 75 |
|
76 |
| - score : str |
77 |
| - A str (``'observational'`` or ``'experimental'``) specifying the score function. |
78 |
| - The ``'experimental'`` scores refers to an A/B setting, where the treatment is independent |
79 |
| - from the pretreatment covariates. |
80 |
| - Default is ``'observational'``. |
| 76 | + score : str |
| 77 | + A str (``'observational'`` or ``'experimental'``) specifying the score function. |
| 78 | + The ``'experimental'`` scores refers to an A/B setting, where the treatment is independent |
| 79 | + from the pretreatment covariates. |
| 80 | + Default is ``'observational'``. |
81 | 81 |
|
82 |
| - in_sample_normalization : bool |
83 |
| - Indicates whether to use a slightly different normalization from Sant'Anna and Zhao (2020). |
84 |
| - Default is ``True``. |
| 82 | + in_sample_normalization : bool |
| 83 | + Indicates whether to use a slightly different normalization from Sant'Anna and Zhao (2020). |
| 84 | + Default is ``True``. |
85 | 85 |
|
86 |
| - trimming_rule : str |
87 |
| - A str (``'truncate'`` is the only choice) specifying the trimming approach. |
88 |
| - Default is ``'truncate'``. |
| 86 | + trimming_rule : str |
| 87 | + A str (``'truncate'`` is the only choice) specifying the trimming approach. |
| 88 | + Default is ``'truncate'``. |
89 | 89 |
|
90 |
| - trimming_threshold : float |
91 |
| - The threshold used for trimming. |
92 |
| - Default is ``1e-2``. |
| 90 | + trimming_threshold : float |
| 91 | + The threshold used for trimming. |
| 92 | + Default is ``1e-2``. |
93 | 93 |
|
94 |
| - draw_sample_splitting : bool |
95 |
| - Indicates whether the sample splitting should be drawn during initialization of the object. |
96 |
| - Default is ``True``. |
| 94 | + draw_sample_splitting : bool |
| 95 | + Indicates whether the sample splitting should be drawn during initialization of the object. |
| 96 | + Default is ``True``. |
97 | 97 |
|
98 |
| - print_periods : bool |
99 |
| - Indicates whether to print information about the evaluated periods. |
100 |
| - Default is ``False``. |
| 98 | + print_periods : bool |
| 99 | + Indicates whether to print information about the evaluated periods. |
| 100 | + Default is ``False``. |
101 | 101 |
|
102 |
| - """ |
| 102 | + """ |
103 | 103 |
|
104 | 104 | def __init__(
|
105 | 105 | self,
|
|
0 commit comments