@@ -21,12 +21,8 @@ and that obey the **Neyman orthogonality condition**
21
21
22
22
\partial _{\eta } \mathbb {E}[ \psi (W; \theta _0 , \eta )] \bigg |_{\eta =\eta _0 } = 0 .
23
23
24
- An integral component for the object-oriented (OOP) implementation of
25
- ``DoubleMLPLR ``,
26
- ``DoubleMLPLIV ``,
27
- ``DoubleMLIRM ``,
28
- and ``DoubleMLIIVM ``
29
- is the linearity of the score function in the parameter :math: `\theta `
24
+ The score functions of many double machine learning models (PLR, PLIV, IRM, IIVM) are linear in the parameter
25
+ :math: `\theta `, i.e.,
30
26
31
27
.. math ::
32
28
@@ -43,7 +39,14 @@ general way.
43
39
The methods and algorithms to estimate the causal parameters, to estimate their standard errors, to perform a multiplier
44
40
bootstrap, to obtain confidence intervals and many more are implemented in the abstract base class ``DoubleML ``.
45
41
The object-oriented architecture therefore allows for easy extension to new model classes for double machine learning.
46
- This is doable with very minor effort whenever the linearity of the score function is satisfied.
42
+ This is doable with very minor effort.
43
+
44
+ If the linearity of the score function is not satisfied, the computations are more involved.
45
+ In the Python package ``DoubleML ``, the functionality around the score functions is implemented in mixin classes called
46
+ ``LinearScoreMixin `` and ``NonLinearScoreMixin ``.
47
+ The R package currently only comes with an implementation for linear score functions.
48
+ In case of a non-linear score function, the parameter estimate :math: `\tilde {\theta }_0 ` is obtained via numerical root
49
+ search of the empirical analog of the moment condition :math: `\mathbb {E}[ \psi (W; \theta _0 , \eta _0 )] = 0 `.
47
50
48
51
Implementation of the score function and the estimate of the causal parameter
49
52
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -106,7 +109,8 @@ stores the estimate :math:`\tilde{\theta}_0` in its ``coef`` attribute.
106
109
print(dml_plr_obj$coef)
107
110
108
111
The values of the score function components :math: `\psi _a(W_i; \hat {\eta }_0 )` and :math: `\psi _b(W_i; \hat {\eta }_0 )`
109
- are stored in the attributes ``psi_a `` and ``psi_b ``.
112
+ are stored in the attributes ``psi_elements['psi_a'] `` and ``psi_elements['psi_b'] `` (Python package ``DoubleML ``)
113
+ and ``psi_a `` and ``psi_b `` (R package ``DoubleML ``).
110
114
In the attribute ``psi `` the values of the score function :math: `\psi (W_i; \tilde {\theta }_0 , \hat {\eta }_0 )` are stored.
111
115
112
116
.. tabbed :: Python
0 commit comments