Neu in 
Schätzung der Behandlungseffekte mit Lasso
Sie verwenden Schätzer für Behandlungseffekte, um kausale Schlüsse aus Beobachtungsdaten zu ziehen. Vielleicht möchten Sie den Effekt eines Medikamentenregimes auf den Blutdruck, den Effekt eines chirurgischen Eingriffs auf die Mobilität, den Effekt eines Trainingsprogramms auf die Beschäftigung oder den Effekt einer Werbekampagne auf den Umsatz schätzen.
Sie verwenden Lasso-Inferenzschätzer, wenn Sie an einer Inferenz auf einige wenige Kovariaten interessiert sind, während Sie für viele andere potenzielle Kovariaten kontrollieren. (Und wenn wir viele sagen, meinen wir Hunderte, Tausende oder mehr!)
Sie können nun diese Schätzer gleichzeitig verwenden. Mit dem neuen Befehl telasso können Sie Behandlungseffekte schätzen und gleichzeitig für viele potenzielle Kovariaten kontrollieren.
Sie können zum Beispiel Folgendes eingeben
. telasso (y1 x1-x100) (treat w1-w100)
um den Effekt der binären Behandlung treat auf das kontinuierliche Ergebnis y1 zu schätzen, während für die Prädiktoren x1 bis x100 im Ergebnismodell und für w1 bis w100 im Behandlungsmodell kontrolliert wird. Die erhaltenen Schätzungen profitieren von den Robustheitseigenschaften sowohl der Behandlungseffektschätzer als auch des Lassos.
Mit telasso erhalten Sie alles, was Sie von Behandlungseffekten und vom Lasso erwarten. Sie können den durchschnittlichen Behandlungseffekt, den durchschnittlichen Behandlungseffekt auf die Behandelten und die Mittelwerte der potenziellen Ergebnisse schätzen. Sie können kontinuierliche, binäre und zählende Outcomes modellieren und zwischen einem Logit- oder Probit-Behandlungsmodell wählen. Und für die Auswahl der Kontrollen können Sie zwischen Lasso- oder Quadratwurzel-Lasso-Schätzung wählen und aus mehreren Auswahlmethoden, wie BIC und Kreuzvalidierung, auswählen.
Höhepunkte
Schätzen Sie Behandlungseffekte mit hochdimensionalen Kontrollen
- Hochdimensionale Kontrollen im Ergebnismodell
- Hochdimensionale Kontrollen im Behandlungsmodell
Flexible Modellspezifikation
- Das Ergebnismodell kann linear, logit, probit oder poisson sein
- Behandlungszuweisungsmodell kann logit oder probit sein
Unterschiedliche Maße der Behandlungseffekte
- ATE: durchschnittliche Behandlungseffekte
- Varianz-Kovarianz-Matrix der zufälligen Effekte
- ATET: durchschnittlicher Behandlungseffekt auf die Behandelten
- POM: Mittelwert des Potenzials und der Ergebnisse
Robuste Schätzung
- Doppelte Robustheit: nur eines der Modelle muss korrekt spezifiziert sein
- Neyman-Orthogonalität: Schutz vor Fehlern bei der Modellauswahl durch Lasso
Doppeltes maschinelles Lernen
- Kreuzanpassung und Resampling
Zeigen Sie, wie es funktioniert
Wir möchten zwei Arten der Lungentransplantation miteinander vergleichen: die bilaterale Lungentransplantation (BLT) und die Einzellungentransplantation (SLT). Die BLT ist in der Regel mit einer höheren Sterblichkeitsrate kurz nach der Operation verbunden, aber mit einer deutlicheren Verbesserung der Lebensqualität als die SLT. Daher ist es für Patienten, die sich zwischen diesen beiden Behandlungsoptionen entscheiden müssen, wichtig, den Effekt der BLT (versus SLT) auf die Lebensqualität zu kennen. Daher wollen wir den Effekt der Behandlungstranstype auf den Outcome fev1p schätzen. Dieses Ergebnis stellt den Prozentsatz des forcierten exspiratorischen Volumens in einer Sekunde (FEV1) dar, den der Patient im Vergleich zu einer gesunden Person hat.
Unsere Daten enthalten 29 Variablen, die Merkmale der Patienten und Spender erfassen. Wir verwenden diese Variablen und die Interaktionen zwischen ihnen als Kontrollen in unserem Modell. Es wäre mühsam, diese Variablennamen einzeln einzugeben, um zwischen kontinuierlichen und kategorialen Variablen zu unterscheiden. vl ist eine Suite von Befehlen, die diesen Prozess vereinfacht.
Der folgende Code erstellt die Liste der Steuervariablen und speichert sie im globalen Makro $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
Nun sind wir bereit, telasso zur Schätzung der durchschnittlichen Behandlungseffekte zu verwenden. Wir nehmen ein lineares Ergebnismodell und ein Logit-Behandlungsmodell an, die Standardwerte. Wir geben ein
. 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 | |
Würden alle Patienten eine BLT wählen, wäre der FEV1% erwartungsgemäß um 38 Prozentpunkte höher als der Durchschnitt von 46%, der erwartet wird, wenn alle Patienten eine SLT wählen würden. Unter den 454 Kontrollvariablen wählt telasso nur 8 davon aus.
Es ist üblich, den durchschnittlichen Behandlungseffekt zu schätzen, um den Effekt auf diejenigen zu bestimmen, die die Behandlung tatsächlich erhalten haben. Um diesen Wert zu schätzen, fügen wir die Option atet hinzu.
. 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 | |
Für die Patienten, die einen BLT haben, erwarten wir, dass die durchschnittliche FEV1% um 36 Prozentpunkte höher ist, als wenn alle einen SLT wählen.
Die Schätzungen, die wir oben erhalten haben, beruhten auf einer Schlüsselannahme von Lasso, der Sparsamkeitsannahme, die voraussetzt, dass nur eine kleine Anzahl der potenziellen Kovariaten im „wahren“ Modell enthalten ist. Wir können eine doppelte maschinelle Lerntechnik verwenden, um mehr Kovariaten im wahren Modell zu berücksichtigen. Dazu fügen wir die Option xfold(5) hinzu, um die Stichprobe in fünf Gruppen aufzuteilen und eine Kreuzanpassung durchzuführen, und fügen die Option resample(3) hinzu, um das Kreuzanpassungsverfahren mit drei Stichproben zu wiederholen.
Um zu gewährleisten, dass wir die Schätzergebnisse später reproduzieren können, setzen wir auch den Zufallszahlen-Seed. Wir tippen
. 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 | |
Der geschätzte Behandlungseffekt ist dem des ersten telasso-Befehls sehr ähnlich, aber das gewählte Modell enthielt 16 statt 8 Kontrollen. Die Ähnlichkeit der Schätzungen über die verschiedenen Spezifikationen hinweg deutet darauf hin, dass unser erstes Modell nicht unter einer Verletzung der Sparsity-Annahme litt.