New In

Оценяване на гъвкави системи за търсене

Акценти

  • Генериране на сплайн базисни функции за няколко променливи едновременно

  • Базови функции на B-сплайна

  • Последователни полиномни базисни функции

  • Ограничени кубични сплайн базисни функции

  • Изберете броя на възлите, предоставете списък на възлите или използвайте матрица на възлите

Често не искаме да правим предположения за функционалната форма на данните, които анализираме. Може да искаме да приложим регресия на резултата върху набор от регресори и да не се интересуваме от функционалната форма на регресорите. Базовите функции на сплайна са гъвкави приближения към функционалната форма на регресорите. Може също така да искаме да визуализираме връзката между резултата и регресора или между променливите. Можем да използваме сплайни, за да визуализираме тази връзка, без да претендираме за линейност или други функционални форми.

В Stata 18 можете да използвате новата команда makespline, за да генерирате B-сплайн, парчеобразен полиномен сплайн и ограничени кубични сплайн базисни функции от списък със съществуващи променливи. Например, можем да въведем

. makespline bspline x1 x2 x3 x4 ...x100

за формиране на 100 базисни функции от трети ред B-spline, по една за всяка променлива от x1 до x100. Сега можем да използваме всяка от базовите функции, за да подготвим модел и да бъдем агностични по отношение на връзката между ковариативните и резултата от интерес. Или можем да визуализираме връзката между резултата от интерес и всеки от компонентите на базовите функции, генерирани от makespline.

Нека видим как работи

Бихме искали да видим ефекта от пушенето на майките (mbsmoke) върху теглото на бебето при раждане (bweight), като използваме командата telasso. Командата telasso ни позволява да моделираме както резултата (bweight), така и третирането (mbsmoke). Смятаме, че има връзка между теглото при раждане и възрастта на майката (mage), образователното равнище на майката (medu) и образователното равнище на бащата (fedu). Също така смятаме, че medu е добър прогностичен фактор за това дали майката пуши по време на бременността.

Не сме наясно с функционалната форма на връзката между теглото b и mage, medu и fedu. Също така сме агностици по отношение на връзката между mbsmoke и medu. Това не е от значение за telasso. Командата избира от набор от кандидатстващи ковариати и оценява интересуващия ни ефект от лечението.

Използваме makespline, за да формираме базисни функции от всеки от ковариатите, които ни интересуват.

. makespline bspline mage medu fedu

Генерирахме базисни функции от трети ред B-spline, всяка от които се състои от пет променливи, от mage, medu и fedu. Генерираните променливи имат общи системни имена, започващи с _bsp. Ако предпочитате, можете да промените имената на базите, като използвате опцията basis(). По-долу са показани генерираните променливи:

Компонентите на B-сплайновата базисна функция от mage започват с_bsp_1, от medu с _bsp_2, а от fedu с _bsp_3. Като използваме тези базисни функции, подбираме модела на ефекта от лечението:

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

bweight е произволна функция на взаимодействието (зададено с помощта на ##) на базисните функции за mage и medu и на базисната функция за образованието на бащата. mbsmoke е произволна функция на базисната функция за образованието на майката. По-долу са представени резултатите:

Променливите на базовата функция, създадени от makespline, и техните взаимодействия дадоха 40 потенциални контролни променливи. telasso избра 5 от тези контролни променливи и ги използва, за да изчисли ефекта от третирането от -263 грама. С други думи, теглото на бебетата при раждане би било с 263 грама по-малко, ако всички майки пушат, в сравнение с контрафакта, при който нито една майка не пуши.