首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MCMC永远无法在SAS中运行

MCMC永远无法在SAS中运行
EN

Stack Overflow用户
提问于 2019-01-03 04:41:09
回答 1查看 137关注 0票数 1

假设我有一个回归,其中响应变量是sales,并且我有各种销售驱动因素作为自变量。我想使用MCMC构建一个模型,但我不确定这是否可能(我在SAS中运行)。简化的模型结构见下文(生产模型中有更多的变量和随机交互):

Yij=β0+β1TVX1ij+γ(TV×dma)i+εi

对于上面的模型,我对β1表示的TV有一个主要效果,并在DMA (美国有210个DMA)和TV之间进行随机交互。我有我的所有参数的先验,当我在SAS中运行MCMC时,它需要几个小时才能运行。MCMC可以处理210随机项的随机交互吗?我使用MCMC是因为我想利用前几轮建模中的先验知识,但如果它需要永远运行,那就没有意义了。

代码语言:javascript
运行
复制
proc mcmc data=modeldbsubset outpost=postout thin=1000 nmc=20000 seed=7893

         monitor=(b0 b1);
  ods select PostSummaries PostIntervals tadpanel;
  parms b0 0 b1 0;
  parms s2 1 ;
  parms s2g 1;
  prior b: ~ normal(0, var = 10000);
  prior s2: ~ igamma(0.001, scale = 1000);
    random gamma ~ normal(0, var=s2g) subject = dmanum monitor = (gamma) namesuffix = position;


  mu = b0 + b1*TV + gamma;

  model Y ~ normal(mu, var = s2);
EN

回答 1

Stack Overflow用户

发布于 2019-01-09 17:35:00

我不使用SAS,但毫不奇怪,这种规模的模型在使用默认的随机漫步Metropolis时会失败,该默认随机漫步Metropolis使用提案分布的身份覆盖矩阵进行初始化。The documentation on scale tuning说你可以调优到覆盖的MAP估计值(这是PyMC3默认做的),所以也许可以试着从那里开始。然而,文档也表示,这样做将使用MAP进行参数初始化,这是一个坏主意,因为MAP通常不在高维的典型集合中。

最后,我希望您需要针对您的数据做大量的调整,才能真正让它干净地运行,不幸的是,这只是艺术的一部分。

或者,您最好选择实现HMC/NUTS的更高级的MCMC采样框架,例如Stan、PyMC3或Edward。甚至还有一些高级包,如RStanArm,专门用于贝叶斯回归建模,但它将较低级别的MCMC内容保留在后台。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54012882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档