New In

Estimarea sistemelor flexibile de cerere

Repere

  • Generarea funcțiilor de bază spline pentru mai multe variabile deodată

  • Funcții de bază B-spline

  • Funcții de bază polinomiale pe bucăți

  • Funcții de bază spline cubice restricționate

  • Selectați numărul de noduri, furnizați o listă de noduri sau utilizați o matrice de noduri

Adesea, nu dorim să facem ipoteze de formă funcțională cu privire la datele pe care le analizăm. Este posibil să dorim să ajustăm o regresie a unui rezultat la un set de regresori și să fim agnostici cu privire la forma funcțională a regresorilor. Funcțiile de bază Spline sunt aproximări flexibile ale formei funcționale a regresorilor. De asemenea, este posibil să dorim să vizualizăm relația dintre un rezultat și un regresor sau dintre variabile. Putem utiliza spline pentru a vizualiza această relație fără a pretinde liniaritate sau alte forme funcționale.

În Stata 18, puteți utiliza noua comandă makespline pentru a genera funcții de bază B-spline, piecewise polynomial spline și spline cubice restrânse dintr-o listă de variabile existente. De exemplu, am putea tasta

. makespline bspline x1 x2 x3 x4 ...x100

pentru a forma 100 de funcții de bază B-spline de ordinul trei, câte una pentru fiecare variabilă de la x1 la x100. Acum putem utiliza oricare dintre funcțiile de bază pentru a ajusta un model și a fi agnostici în ceea ce privește relația dintre covariate și un rezultat de interes. Sau putem vizualiza relația dintre rezultatul de interes și oricare dintre componentele funcției de bază generate de makespline.

Să vedem cum funcționează

Am dori să vedem efectul fumatului mamelor (mbsmoke) asupra greutății la naștere a unui copil (bweight) folosind comanda telasso. Comanda telasso ne permite să modelăm atât rezultatul (bweight), cât și tratamentul (mbsmoke). Considerăm că există o relație între greutatea la naștere și vârsta mamei (mage), nivelul de educație al mamei (medu) și nivelul de educație al tatălui (fedu). Credem, de asemenea, că medu este un bun predictor al faptului că mama fumează sau nu în timpul sarcinii.

Suntem agnostici în ceea ce privește forma funcțională a relației dintre bweight și mage, medu și fedu. De asemenea, suntem agnostici în ceea ce privește relația dintre mbsmoke și medu. Acest lucru nu contează pentru telasso. Comanda selectează dintr-un set de covariate candidate și estimează efectul de tratament de interes.

Utilizăm makespline pentru a forma funcții de bază din fiecare dintre covariatele de interes.

. makespline bspline mage medu fedu

Am generat funcții de bază B-spline de ordinul al treilea, fiecare constând din cinci variabile, din mage, medu și fedu. Variabilele generate au nume de sistem generice, care încep cu _bsp. Dacă preferați, puteți schimba numele bazelor folosind opțiunea basis(). Mai jos, prezentăm variabilele generate:

Componentele funcției de bază B-spline de la mage încep cu_bsp_1, de la medu cu _bsp_2 și de la fedu cu _bsp_3. Utilizând aceste funcții de bază, potrivim modelul de efecte ale tratamentului:

. telasso (bweight c._bsp_1*##c._bsp_2* _bsp_3*) (mbsmoke _bsp_2*)

bweight este o funcție arbitrară a interacțiunii (specificată prin utilizarea ##) funcțiilor de bază pentru mage și medu și a funcției de bază pentru educația tatălui. mbsmoke este o funcție arbitrară a funcției de bază pentru educația mamei. Mai jos sunt rezultatele:

Variabilele funcției de bază create de makespline și interacțiunile acestora au produs 40 de variabile de control potențiale. telasso a selectat 5 dintre aceste variabile de control și le-a utilizat pentru a calcula un efect al tratamentului de -263 de grame. Cu alte cuvinte, greutatea la naștere a bebelușilor ar fi cu 263 de grame mai mică dacă toate mamele ar fuma în raport cu situația contrafactuală în care nicio mamă nu fumează.