New In

Оцінка систем гнучкого попиту

Основні моменти

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

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

  • Кусково-поліноміальні базисні функції

  • Обмежені кубічні сплайнові базисні функції

  • Виберіть кількість вузлів, надайте список вузлів або використовуйте матрицю вузлів

Часто ми не хочемо робити припущення про функціональну форму даних, які аналізуємо. Ми можемо захотіти підігнати регресію результату до набору регресорів і бути агностиками щодо функціональної форми регресорів. Сплайн-базисні функції є гнучкими наближеннями до функціональної форми регресорів. Нам також може знадобитися візуалізувати зв’язок між результатом і регресором або між змінними. Ми можемо використовувати сплайни для візуалізації цього зв’язку, не претендуючи на лінійність або інші функціональні форми.

У Stata 18 ви можете скористатися новою командою makepline для створення B-сплайна, кусково-поліноміального сплайна та обмеженого кубічного сплайна на основі списку наявних змінних. Наприклад, можна ввести

. makespline bspline x1 x2 x3 x4 ...x100

щоб сформувати 100 базисних функцій B-сплайна третього порядку, по одній для кожної змінної від x1 до x100. Тепер ми можемо використовувати будь-яку з базисних функцій для підбору моделі і бути агностиками щодо зв’язку між коваріатами та результатом, який нас цікавить. Або ж ми можемо візуалізувати зв’язок між результатом, який нас цікавить, і будь-яким з компонентів базисної функції, який генерує сплайн.

Подивимося, як це працює

Ми хотіли б побачити вплив куріння матері (mbsmoke) на вагу дитини при народженні (bweight) за допомогою команди telasso. Команда telasso дозволяє нам моделювати як результат (bweight), так і лікування (mbsmoke). Ми вважаємо, що існує зв’язок між вагою при народженні та віком матері (mage), рівнем освіти матері (medu) та рівнем освіти батька (fedu). Ми також вважаємо, що medu є добрим предиктором того, чи курить мати під час вагітності.

Ми агностично ставимося до функціональної форми зв’язку між bweight та mage, medu та fedu. Ми також агностично ставимося до зв’язку між mbsmoke і medu. Для telasso це не має значення. Команда вибирає з набору коваріатів-кандидатів і оцінює ефект лікування, що нас цікавить.

Ми використовуємо makespline для формування базисних функцій для кожної з коваріацій, що нас цікавлять.

. makespline bspline mage medu fedu

Ми згенерували базисні функції B-сплайна третього порядку, кожна з яких складається з п’яти змінних, з 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 грами меншою, якби всі матері курили, порівняно з контрфактичною ситуацією, в якій жодна мати не курила.