Nouveau dans 
Estimation des effets du traitement à l’aide du lasso
Vous utilisez des estimateurs des effets du traitement pour tirer des conclusions causales à partir de données d’observation. Vous souhaitez peut-être estimer l’effet d’un régime médicamenteux sur la pression artérielle, l’effet d’une intervention chirurgicale sur la mobilité, l’effet d’un programme de formation sur l’emploi ou l’effet d’une campagne publicitaire sur les ventes.
Vous utilisez les estimateurs inférentiels lasso lorsque vous souhaitez inférer sur quelques covariables tout en contrôlant de nombreuses autres covariables potentielles. (Et quand nous disons beaucoup, nous voulons dire des centaines, des milliers, ou plus!)
Vous pouvez désormais utiliser ces estimateurs simultanément. Avec la nouvelle commande telasso, vous pouvez estimer les effets du traitement tout en contrôlant de nombreuses covariables potentielles.
Par exemple, vous pouvez taper
. telasso (y1 x1-x100) (treat w1-w100)
pour estimer l’effet du traitement binaire treat sur le résultat continu y1, tout en contrôlant les prédicteurs x1 à x100 dans le modèle de résultat et w1 à w100 dans le modèle de traitement. Les estimations obtenues bénéficient des propriétés de robustesse des estimateurs des effets du traitement et du lasso.
Avec telasso, vous obtenez tout ce que vous attendez des effets de traitement et de lasso. Vous pouvez estimer l’effet moyen du traitement, l’effet moyen du traitement sur les personnes traitées et les moyennes des résultats potentiels. Vous pouvez modéliser des résultats continus, binaires et de comptage et choisir entre un modèle de traitement logit ou probit. Et pour la sélection des contrôles, vous pouvez choisir entre l’estimation lasso ou lasso à racine carrée et choisir parmi plusieurs méthodes de sélection, telles que le BIC et la validation croisée.
Points forts
Estimer les effets du traitement avec des contrôles à haute dimension
- Contrôles hautement dimensionnels dans le modèle de résultats
- Contrôles à haute dimension dans le modèle de traitement
Spécification flexible du modèle
- Le modèle des résultats peut être linéaire, logit, probit ou poisson.
- Le modèle d’affectation du traitement peut être logit ou probit.
Différentes mesures des effets du traitement
- ATE: effets moyens du traitement
- Matrice de variance-covariance des effets aléatoires
- ATET: effet moyen du traitement sur les traités
- POM: potential-outcome mean
Estimation robuste
- Double robustesse: un seul des modèles doit être correctement spécifié.
- Orthogonalité de Neyman: protection contre les erreurs de sélection de modèle commises par le lasso.
Double apprentissage machine
- Ajustement croisé et rééchantillonnage
Voyons comment cela fonctionne
Nous souhaitons comparer deux types de transplantations pulmonaires : la transplantation pulmonaire bilatérale (TLB) et la transplantation pulmonaire unique (PLI). La BLT est généralement associée à un taux de mortalité plus élevé à court terme après l’opération, mais à une amélioration plus significative de la qualité de vie que la SLT. Par conséquent, pour les patients qui doivent choisir entre ces deux options thérapeutiques, il est essentiel de connaître l’effet de la TLB (par rapport à la SLT) sur la qualité de vie. Par conséquent, nous voulons estimer l’effet du transtype de traitement sur le résultat fev1p. Ce résultat représente le pourcentage de volume expiratoire forcé en une seconde (VEMS) que le patient a par rapport à une personne en bonne santé.
Nos données comprennent 29 variables enregistrant les caractéristiques des patients et des donneurs. Nous utilisons ces variables et les interactions entre elles comme contrôles dans notre modèle. Il serait fastidieux de taper ces noms de variables un par un pour distinguer les variables continues des variables catégorielles. vl est une suite de commandes qui simplifie ce processus.
Le code suivant crée la liste des variables de contrôle et la stocke dans la macro globale $allvars.
. quietly vl set . vl create cvars = vlcontinuous - (fev1p) note: $cvars initialized with 12 variables. . vl create fvars = vlcategorical - (transtype) note: $fvars initialized with 17 variables. . vl sub allvars = c.cvars i.fvars c.cvars#i.fvars
Nous sommes maintenant prêts à utiliser telasso pour estimer les effets moyens du traitement. Nous supposons un modèle de résultat linéaire et un modèle de traitement logit, les valeurs par défaut. Nous tapons
. telasso (fev1p $allvars) (transtype $allvars) Estimating lasso for outcome fev1p if tran~e = 0 using plugin method ... Estimating lasso for outcome fev1p if tran~e = 1 using plugin method ... Estimating lasso for treatment tran~e using plugin method ... Estimating ATE ... Treatment-effects lasso estimation Number of observations = 937 Outcome model: linear Number of controls = 454 Treatment model: logit Number of selected controls = 8
Robust | ||
fev1p | Coefficient std. err. z P>|z| [95% conf. interval] | |
ATE | ||
transtype | ||
(BLT | ||
vs | ||
SLT) | 37.51841 .1606703 233.51 0.000 37.20351 37.83332 | |
POmean | ||
transtype | ||
SLT | 46.4938 .2021582 229.99 0.000 46.09757 46.89002 | |
Si tous les patients choisissaient une TLB, on s’attend à ce que le VEMS soit supérieur de 38 points de pourcentage à la moyenne de 46% attendue si tous les patients choisissaient une TSL. Parmi les 454 variables de contrôle, telasso n’en sélectionne que 8.
Il est courant d’estimer l’effet moyen du traitement pour déterminer l’effet sur ceux qui ont effectivement reçu le traitement. Pour estimer cette valeur, nous ajoutons l’option atet.
. telasso (fev1p $allvars) (transtype $allvars), atet Estimating lasso for outcome fev1p if tran~e = 0 using plugin method ... Estimating lasso for outcome fev1p if tran~e = 1 using plugin method ... Estimating lasso for treatment tran~e using plugin method ... Estimating ATET ... Treatment-effects lasso estimation Number of observations = 937 Outcome model: linear Number of controls = 454 Treatment model: logit Number of selected controls = 8
Robust | ||
fev1p | Coefficient std. err. z P>|z| [95% conf. interval] | |
ATET | ||
transtype | ||
(BLT | ||
vs | ||
SLT) | 35.78157 .1831478 195.37 0.000 35.42261 36.14053 | |
POmean | ||
transtype | ||
SLT | 43.35214 1.268976 34.16 0.000 40.86499 45.83929 | |
Pour les patients qui ont une TLB, nous nous attendons à ce que le VEMS moyen soit supérieur de 36 points de pourcentage à celui des patients qui choisissent tous une TSL.
Les estimations que nous avons obtenues ci-dessus reposaient sur une hypothèse clé du lasso, l’hypothèse de sparsité, qui exige que seul un petit nombre de covariables potentielles figurent dans le « vrai » modèle. Nous pouvons utiliser une technique d’apprentissage automatique double pour permettre la présence d’un plus grand nombre de covariables dans le vrai modèle. Pour ce faire, nous ajoutons l’option xfold(5) pour diviser l’échantillon en cinq groupes et effectuer l’ajustement croisé et ajoutons l’option resample(3) pour répéter la procédure d’ajustement croisé avec trois échantillons.
Pour garantir que nous pourrons reproduire ultérieurement les résultats de l’estimation, nous définissons également la graine de nombres aléatoires. Nous tapons
. set seed 12345671 . telasso (fev1p $allvars) (transtype $allvars), xfolds(5) resample(3) nolog Treatment-effects lasso estimation Number of observations = 937 Number of controls = 454 Number of selected controls = 16 Outcome model: linear Number of folds in cross-fit = 5 Treatment model: logit Number of resamples = 3
Robust | ||
fev1p | Coefficient std. err. z P>|z| [95% conf. interval] | |
ATE | ||
transtype | ||
(BLT | ||
vs | ||
SLT) | 37.52837 .1683194 222.96 0.000 37.19847 37.85827 | |
POmean | ||
transtype | ||
SLT | 46.4941 .2040454 227.86 0.000 46.09418 46.89402 | |
L’effet de traitement estimé est très similaire à celui rapporté par la première commande telasso, mais le modèle sélectionné inclut 16 contrôles au lieu de 8. similarity of the Les estimations de l’indice de sparsité dans les différentes spécifications suggèrent que notre premier modèle ne souffre pas d’une violation de l’hypothèse de sparsité.