New In

Байєсівське усереднення моделі (BMA) для лінійної регресії

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

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

  • Вибір моделі, висновки та прогнозування

  • Перепис моделей та вибірка MC3

  • Завжди включені та згруповані предиктори

  • Моделі попередніх подій: рівномірна, біноміальна, бета-біноміальна

  • Багато g-пріорів, включаючи гіпер-g та robust

  • Факторні змінні та оператори часових рядів

  • Сильна, слабка або відсутня спадковість для взаємодії

  • Конвергенція BMA MCMC

  • Апостеріорна модель та ймовірності включення

  • Попередній та апостеріорний розподіл розміру моделі

  • Апостеріорні розподіли параметрів моделі

  • Міри спільності для пар предикторів

  • Карти включення змінних

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

  • Аналіз чутливості

  • Прогнозування

  • Підтримка стандартних функцій байєсівського постоцінювання

  • Побачити більше Усереднення байєсівської моделі особливості

Вступ

Традиційно ми обираємо модель і робимо висновки та прогнози на основі цієї моделі. Наші результати, як правило, не враховують невизначеність у виборі моделі і тому можуть бути надто оптимістичними. Вони навіть можуть бути неправильними, якщо обрана нами модель суттєво відрізняється від справжньої моделі, що генерує дані (МГД). У деяких додатках ми можемо мати переконливі теоретичні або емпіричні докази щодо DGM. В інших додатках, зазвичай складних і нестабільних за своєю природою, таких як економіка, психологія та епідеміологія, вибір однієї надійної моделі може бути складним. Замість того, щоб покладатися лише на одну модель, модельне усереднення усереднює результати за кількома правдоподібними моделями, заснованими на спостережуваних даних. У BMA “правдоподібність” моделі описується апостеріорною ймовірністю моделі (PMP), яка визначається за допомогою фундаментальних байєсівських принципів – теореми Байєса – і застосовується універсально до всіх аналізів даних. БМА можна використовувати для врахування невизначеності моделі при оцінюванні параметрів моделі та прогнозуванні нових спостережень, щоб уникнути надмірно оптимістичних висновків. Він особливо корисний у випадках, коли є кілька правдоподібних моделей, і немає жодної остаточної причини для вибору певної моделі над іншими. Але навіть якщо вибір однієї моделі є кінцевою метою, ви можете знайти BMA корисним. Він забезпечує принциповий спосіб виявлення важливих моделей і предикторів у розглянутих класах моделей. Його структура дозволяє дізнатися про взаємозв’язки між різними предикторами з точки зору їхньої тенденції з’являтися в моделі разом, окремо або незалежно. Він може бути використаний для оцінки чутливості кінцевих результатів до різних припущень про важливість різних моделей і предикторів. Він забезпечує оптимальні прогнози в сенсі лог-балів.

Набір bma

У регресії невизначеність моделі дорівнює невизначеності того, які предиктори слід включити в модель. Ми можемо використовувати bmaregress, щоб врахувати вибір предикторів у лінійній регресії. Він досліджує простір моделі або вичерпно з опцією перебору, коли це можливо, або за допомогою алгоритму композиції моделі ланцюгового Монте-Карло (MCMC) (MC3) з опцією вибірки. Він надає різні зведення про переглянуті моделі та включені предиктори, а також про апостеріорні розподіли параметрів моделі. Дозволяє вказати групи предикторів, які потрібно включити або виключити з моделі разом, а також ті, які включаються в усі моделі. Він надає різні попередні розподіли для моделей в опції mprior() і для параметра g, який контролює зсув коефіцієнтів регресії до нуля, в опції gprior(). Він також підтримує факторні змінні та оператори часових рядів і надає кілька способів обробки взаємодій під час оцінювання за допомогою опції heredity().

Існує багато підтримуваних функцій постобчислення, які також включають деякі стандартні функції байєсівського постобчислення.

КомандирОпис

bmacoefsample

Апостеріорні вибірки коефіцієнтів регресії



bmagraph pmp

модельно-імовірнісні графіки

bmagraph msize

графіки розподілу за розміром моделі

bmagraph varmap

карти включення змінних

bmagraph coefdensity

графіки апостеріорної щільності коефіцієнтів



bmastats models

апостеріорна модель та підсумки включення змінних

bmastats msize

зведення про розмір моделі

bmastats pip

апостеріорні ймовірності включення (PIP) для предикторів

bmastats jointness

міри спільності для предикторів

bmastats lps

log predictive-score (LPS)



bmapredict

Прогнози BMA



bayesgraph

Байєсівські графічні зведення та діагностика збіжності

bayesstats summary

Байєсівська підсумкова статистика для параметрів моделі та їх функцій

bayesstats ess

Байєсівський ефективний розмір вибірки та пов’язані з ним статистики

bayesstats ppvalues

Байєсівські прогнозні p-значення

bayespredict

Байєсівські прогнози

Нижче ми розглянемо деякі можливості bma на прикладі іграшкового набору даних. Цей набір даних містить n=200

�=200 спостережень, p=10 �=10 ортогональних предикторів та результат y, згенерований як

y=0.5+1.2×x2+5×x10+ϵ

�=0.5+1.2�2+5�10+�

де ϵ∼N(0,1)

�∼�(0,1) – стандартна нормальна похибка.

. webuse bmaintro
(Simulated data for BMA example)

. summarize
Variable
Obs Mean Std. dev. Min Max

y
200 .9944997 4.925052 -13.332 13.06587
x1
200 -.0187403 .9908957 -3.217909 2.606215
x2
200 -.0159491 1.098724 -2.999594 2.566395
x3
200 .080607 1.007036 -3.016552 3.020441
x4
200 .0324701 1.004683 -2.410378 2.391406

x5
200 -.0821737 .9866885 -2.543018 2.133524
x6
200 .0232265 1.006167 -2.567606 3.840835
x7
200 -.1121034 .9450883 -3.213471 1.885638
x8
200 -.0668903 .9713769 -2.871328 2.808912
x9
200 -.1629013 .9550258 -2.647837 2.472586

x10
200 .083902 .8905923 -2.660675 2.275681

Перерахування моделей

Ми використовуємо bmaregress, щоб підігнати лінійну регресію BMA для y від x1 до x10.

. bmaregress y x1-x10

Enumerating models ...
Computing model probabilities ...

Bayesian model averaging                            No. of obs         =    200
Linear regression                                   No. of predictors  =     10
Model enumeration                                               Groups =     10
                                                                Always =      0
Priors:                                             No. of models      =  1,024
  Models: Beta-binomial(1, 1)                           For CPMP >= .9 =      9
   Cons.: Noninformative                            Mean model size    =  2.479
   Coef.: Zellner's g
       g: Benchmark, g = 200                        Shrinkage, g/(1+g) = 0.9950
  sigma2: Noninformative                            Mean sigma2        =  1.272

y
Mean Std. dev. Group PIP

x2
1.198105 .0733478 2 1
x10
5.08343 .0900953 10 1
x3
-.0352493 .0773309 3 .21123
x9
.004321 .0265725 9 .051516
x1
.0033937 .0232163 1 .046909
x4
-.0020407 .0188504 4 .039267
x5
.0005972 .0152443 5 .033015
x9
-.0005639 .0153214 8 .032742
x7
-8.23e-06 .015497 7 .032386
x6
-.0003648 .0143983 6 .032361

Always

_cons
.5907923 .0804774 0 1

Note: Coefficient posterior means and std. dev. estimated from 1,024 models.
Note: Default priors are used for models and parameter g.

З 10 предикторами та фіксованим (еталонним) g-пріоритетом за замовчуванням, bmaregress використовує перебір моделей і досліджує всі 210=1 024

210=1,024 можливі моделі. За замовчуванням використовується бета-біноміальна модель з параметрами форми 1, яка є рівномірною за розміром моделі. Апріорі наша БМА-модель припускала незначне спадання коефіцієнтів регресії до нуля, оскільки g/(1+g)=0.9950 �/(1+�)=0.9950 є близьким до 1.

bmaregress визначив x2 та x10 як дуже важливі предиктори – їхні апостеріорні ймовірності включення (PIP) практично дорівнюють 1. Середні апостеріорні оцінки їхніх коефіцієнтів регресії становлять, відповідно, 1,2 (округлено) та 5,1 і є дуже близькими до істинних значень 1,2 та 5. Всі інші предиктори мають значно нижчі ПІП та оцінки коефіцієнтів, близькі до нуля. Наші результати БМА узгоджуються з істинним ДГМ.

Збережемо наші поточні результати оцінювання для подальшого використання. Як і у випадку з іншими байєсівськими командами, ми повинні спочатку зберегти результати моделювання, перш ніж ми зможемо використати сховище оцінок для зберігання результатів оцінювання.

. bmaregress, saving(bmareg)
note: file bmareg.dta saved.

. estimates store bmareg

Довірчі інтервали

За замовчуванням bmaregress не показує довірчі інтервали (ДІ), оскільки це вимагає потенційно трудомісткого моделювання апостеріорної вибірки параметрів моделі. Але ми можемо обчислити їх після оцінювання.

Спочатку ми використовуємо bmacoefsample для генерації вибірки MCMC з апостеріорного розподілу параметрів моделі, які включають коефіцієнти регресії. Потім ми використовуємо існуючу команду bayesstats summary для обчислення апостеріорних підсумків згенерованої вибірки MCMC.

. bmacoefsample, rseed(18)

Simulation (10000): ....5000....10000 done

. bayesstats summary

Posterior summary statistics                      MCMC sample size =    10,000



Equal-tailed


Mean Std. dev. MCSE Median [95% cred. interval]

y

x1
.0031927 .0234241 .000234 0 0 .0605767
x2
1.197746 .0726358 .000735 1.197211 1.053622 1.341076
x3
-.0361581 .0780037 .00078 0 -.2604694 0
x4
-.0021015 .018556 .000186 0 -.0306376 0
x5
.0004701 .0147757 .000148 0 0 0
x6
-.0003859 .0140439 .000142 0 0 0
x7
-.0003311 .0166303 .000166 0 0 0
x8
-.0005519 .0145717 .00015 0 0 0
x9
.0046535 .0273899 .000274 0 0 .096085
x10
5.08357 .0907759 .000927 5.083466 4.90354 5.262716
_cons
.5901334 .0811697 .000801 .5905113 .4302853 .7505722

sigma2
1.272579 .1300217 .0013 1.262612 1.043772 1.555978
g
200 0 0 200 200 200

95% ДІ для коефіцієнта x2 становить [1,05, 1,34], а для x10 – [4,9, 5,26], що узгоджується з нашою ММР.

Впливові моделі

Оцінки коефіцієнта BMA усереднені для 1024 моделей. Важливо дослідити, які моделі є впливовими. Ми можемо використати моделі bmastats для дослідження ПМП.

. bmastats models

Model summary         Number of models:
                               Visited = 1,024
                              Reported =     5

Analytical PMP Model size .6292 2 .1444 3 .0258 3 .0246 3 .01996 3




Rank12345


Variable-inclusion summary



Rank Rank Rank Rank Rank


1 2 3 4 5

x2
x x x x x
x10
x x x x x
x3
x
x9
x
x1
x
x4
x

Legend: 
x - estimated

Не дивно, що модель, яка містить як x2, так і x10, має найвищий ПМП – близько 63%. Насправді, дві найкращі моделі відповідають кумулятивній ЧПС близько 77%:

. bmastats models, cumulative(0.75)

Computing model probabilities ...

Model summary           Number of models:
                                 Visited = 1,024
                                Reported =     2



Analytical CPMP Model size

Rank

1
.6292 2
2
.7736 3

Variable-inclusion summary



Rank Rank


1 2

x2
x x
x10
x x
x3
x

Legend: 
x - estimated

Ми можемо використати bmagraph pmp для побудови графіку кумулятивного PMP.

. bmagraph pmp, cumulative

За замовчуванням команда будує перші 100 моделей, але ви можете вказати опцію top(), якщо хочете побачити більше моделей.

Важливі предиктори

Ми можемо дослідити важливість предикторів візуально, використовуючи bmagraph varmap для створення карти включення змінних.

. bmagraph varmap

Computing model probabilities ...

x2 та x10 входять до всіх 100 найкращих моделей, ранжованих за PMP. Їх коефіцієнти є додатними в усіх моделях.

Розподіл розмірів моделі

Ми можемо дослідити складність нашої BMA-моделі, використовуючи bmastats msize та bmagraph msize для дослідження попереднього та наступного розподілів розміру моделі.

. bmastats msize

Model-size summary

Number of models = 1,024
Model size:
  Minimum =  0
  Maximum = 10



Mean Median

Prior

Analytical
5.0000 5

Posterior

Analytical
2.4794 2

Note: Frequency summaries not available.

. bmagraph msize

Попередній розподіл розмірів моделей є рівномірним за розміром моделі. Апостеріорний розподіл моделей за розміром зміщений вліво з модою близько 2. Попередній середній розмір моделі становить 5, а апостеріорний – 2,48. Отже, виходячи зі спостережених даних, BMA надає перевагу меншим моделям з приблизно двома предикторами в середньому, порівняно з нашим апріорним припущенням.

Апостеріорні розподіли коефіцієнтів

Ми можемо використати bmagraph coefdensity для побудови апостеріорних розподілів коефіцієнтів регресії.

. bmagraph coefdensity {x2} {x3}, combine

Ці розподіли є сумішшю точкової маси в нулі, що відповідає ймовірності невключення предиктора, і неперервної щільності, зумовленої включенням. Для коефіцієнта x2 ймовірність невключення є незначною, тому його апостеріорний розподіл є неперервною, досить симетричною щільністю з центром в точці 1,2. Для коефіцієнта x3, на додаток до умовної неперервної щільності, існує червона вертикальна лінія в нулі, що відповідає апостеріорній ймовірності невключення приблизно 1-.2 = 0.8.

Прогнозування BMA

bmapredict створює різні прогнози BMA. Наприклад, обчислимо апостеріорне прогностичне значення.

. bmapredict pmean, mean
note: computing analytical posterior predictive means.

Ми також можемо обчислити прогнозні CRI, щоб оцінити невизначеність наших прогнозів. (Це недоступно для багатьох традиційних методів вибору моделі.) Зауважте, що ці прогнозні CrI також включають невизначеність моделі. Щоб обчислити прогнозні CrI, ми повинні спочатку зберегти апостеріорну вибірку параметрів моделі MCMC.

. bmacoefsample, saving(bmacoef)
note: saving existing MCMC simulation results without resampling; specify
      option simulate to force resampling in this case.
note: file bmacoef.dta saved.

. bmapredict cri_l cri_u, cri rseed(18)
note: computing credible intervals using simulation.

Computing predictions ...

Підбиваємо підсумки прогнозованих результатів:

.  summarize y pmean cri*
 
Variable   Obs Mean Std. dev. Min Max
 
y   200 .9944997 4.925052 -13.332 13.06587
pmean   200 .9944997 4.783067 -13.37242 12.31697
cri_l   200 -1.24788 4.787499 -15.66658 10.03054
cri_u   200 3.227426 4.779761 -11.06823 14.58301

Наведені середні значення за спостереженнями для прогнозних середніх, а також нижня та верхня 95% межі прогнозного CrI виглядають обґрунтованими відносно спостережуваного результату y.

Інформативні судимості моделі

Однією з сильних сторін БМА є можливість врахування попередньої інформації про моделі та предиктори. Це дозволяє дослідити чутливість результатів до різних припущень про важливість моделей і предикторів. Припустимо, що ми маємо достовірну інформацію про те, що всі предиктори, окрім x2 та x10, з меншою ймовірністю пов’язані з результатом. Ми можемо вказати, наприклад, біноміальну модель з низькою попередньою ймовірністю включення для цих предикторів.

Щоб пізніше порівняти ефективність моделей BMA поза вибіркою, ми випадковим чином розділили нашу вибірку на дві частини і підібрали модель BMA, використовуючи першу підвибірку. Ми також зберегли результати цієї більш інформативної моделі BMA.

. splitsample, generate(sample) nsplit(2) rseed(18)

. bmaregress y x1-x10 if sample == 1, mprior(binomial x2 x10 0.5 x1 x3-x9 0.05)
  saving(bmareg_inf)

Enumerating models ...
Computing model probabilities ...

Bayesian model averaging                          No. of obs         =    100
Linear regression                                 No. of predictors  =     10
Model enumeration                                             Groups =     10
                                                              Always =      0
Priors:                                           No. of models      =  1,024
  Models: Binomial, IP varies                         For CPMP >= .9 =      1
   Cons.: Noninformative                          Mean model size    =  2.072
   Coef.: Zellner's g
       g: Benchmark, g = 100                      Shrinkage, g/(1+g) = 0.9901
  sigma2: Noninformative                          Mean sigma2        =  1.268
 
y   Mean Std. dev. Group PIP
 
x2   1.168763 .1031096 2 1
x10   4.920726 .124615 10 1
x1   .0019244 .0204242 1 .013449
x5   -.0018262 .0210557 5 .011973
x3   -.0017381 .0205733 3 .011557
x4   -.0015444 .0193858 4 .010709
 
Always    
_cons   .5637673 .113255 0 1
 
Note: Coefficient posterior means and std. dev. estimated from 1,024 models.
Note: Default prior is used for parameter g.
Note: 4 predictors with PIP less than .01 not shown.

file bmareg_inf.dta saved.

. estimates store bmareg_inf

Наслідком такого попереднього врахування моделі є те, що PIP всіх неважливих предикторів тепер менше 2%.

Зауважте, що коли ми обираємо одну модель, ми, по суті, підганяємо модель BMA з дуже сильним попереднім значенням, що всі обрані предиктори мають бути включені з ймовірністю 1. Наприклад, ми можемо змусити bmaregress включити всі змінні в модель:

. bmaregress y (x1-x10, always) if sample == 1, saving(bmareg_all)

Enumerating models ...
Computing model probabilities ...

Bayesian model averaging                           No. of obs         =    100
Linear regression                                  No. of predictors  =     10
Model enumeration                                              Groups =      0
                                                               Always =     10
Priors:                                            No. of models      =      1
  Models: Beta-binomial(1, 1)                          For CPMP >= .9 =      1
   Cons.: Noninformative                           Mean model size    = 10.000
   Coef.: Zellner's g
       g: Benchmark, g = 100                       Shrinkage, g/(1+g) = 0.9901
  sigma2: Noninformative                           Mean sigma2        =  1.192


Mean Std. dev. Group PIP

.1294521 .105395 0 1

1.166679 .1129949 0 1

-.1433074 .1271903 0 1

-.1032189 .1223152 0 1

-.0819008 .1261309 0 1

.0696633 .1057512 0 1

.0222949 .1215404 0 1

-.0252311 .1124352 0 1

.0587412 .1166921 0 1

4.949992 .1276795 0 1

.6006153 .1127032 0 1
 
y   Always x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 _cons  
Note: Coefficient posterior means and std. dev. estimated from 1 model.
Note: Default priors are used for models and parameter g.

file bmareg_all.dta saved.

. estimates store bmareg_all
Прогнозування продуктивності за допомогою LPS

Для порівняння розглянутих моделей ВМР ми модифікуємо нашу стандартну модель ВМР, використовуючи першу підвибірку, і зберігаємо результати оцінювання.

. qui bmaregress y x1-x10 if sample == 1, saving(bmareg, replace)
. estimates store bmareg

Ми можемо порівняти позавибіркову прогностичну ефективність наших моделей BMA, використовуючи bmastats lps для обчислення log predictive-score (LPS) для позавибіркових спостережень.

. bmastats lps bmareg bmareg_inf bmareg_all if sample == 2, compact

Log predictive-score (LPS)

Number of observations = 100
 
LPS   Mean Minimum Maximum
 
bmareg   1.562967 1.039682 6.778834
bmareg_inf   1.562238 1.037576 6.883794
bmareg_all   1.576231 1.032793 6.084414
 
Notes: Using analytical PMPs.
       Result bmareg_inf has the smallest mean LPS.

Більш інформативна модель bmareg_inf має дещо менше середнє значення LPS, але зведення LPS для всіх моделей дуже схожі. Дивіться [BMA] bmastats lps про те, як порівняти ефективність моделей BMA за допомогою перехресної перевірки.

Прибирання

Під час аналізу ми створили кілька наборів даних. Вони нам більше не потрібні, тому в кінці ми їх видалимо. Але ви можете вирішити зберегти їх, особливо якщо вони відповідають потенційно трудомісткому фінальному аналізу.

. erase bmareg.dta
. erase bmacoef.dta
. erase bmareg_inf.dta
. erase bmareg_all.dta