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é.