原文连接:http://tecdat.cn/?p=6252

原文出处:拓端数据部落公众号

R的Stan

可以从许多统计软件包中运行Stan。到目前为止,我一直在从R运行Stan。

简单线性回归

第一步是为Stan模型编写文件。这包含一个文件linreg.stan:


data {int N;vector[N] x;vector[N] y;
}model {y ~ normal(alpha + beta * x, sigma);
}

该文件的第一部分称为数据,它声明了将作为输入传递给Stan的标量,向量和矩阵。

接下来,我们可以通过运行以下R代码来模拟数据集,并使用Stan和我们的文件linreg.stan来拟合模型:

stan(file = 'linreg. ', data = mydata, iter = 1000,   = 4)

第一次安装Stan模型时,模型编译成C ++时会有几秒钟的延迟。然而,一旦编译了模型,就可以将其应用于新的数据集而无需重复编译过程(执行模拟研究具有很大的优势)。

在上面的代码中,我们要求Stan运行4个独立的链,每个链有1000次迭代。运行后,我们可以通过以下方式汇总输出:

Inference for Stan model: linreg.
4 chains, each with iter=1000; warmup=500; thin=1;
post-warmup draws per chain=500, total post-warmup draws=2000.mean se_mean   sd   2.5%    25%    50%    75%  97.5% n_eff Rhat
alpha  -0.10    0.00 0.10  -0.29  -0.16  -0.10  -0.04   0.09  1346    1
beta    0.95    0.00 0.11   0.75   0.88   0.95   1.02   1.17  1467    1
sigma   0.98    0.00 0.07   0.85   0.93   0.98   1.03   1.12  1265    1
lp__  -47.54    0.06 1.24 -50.77 -48.02 -47.24 -46.68 -46.17   503    1Samples were drawn using NUTS(diag_e) at Mon Jun 08 18:35:58 2015.
For each parameter, n_eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor on split chains (at
convergence, Rhat=1).

对于回归斜率β,我们的后验均值为0.95(接近用于模拟数据的真实值1)。为了形成95%的后验置信区间,我们简单地采用取样后验的2.5%和97.5%的百分位数,这里是0.75到1.17。

您可以从拟合的模型中获取各种其他数量。一种是绘制其中一个模型参数的后验分布。要获得回归斜率,我们可以执行以下操作:


hist(result$beta)

β后验分布直方图

现在让我们使用标准普通最小二乘拟合线性模型:

Residuals:Min      1Q  Median      3Q     Max
-1.9073 -0.6835 -0.0875  0.5806  3.2904 Coefficients:Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.10280    0.09755  -1.054    0.295
x            0.94753    0.10688   8.865  3.5e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 0.9707 on 98 degrees of freedom
Multiple R-squared:  0.4451,    Adjusted R-squared:  0.4394
F-statistic:  78.6 on 1 and 98 DF,  p-value: 3.497e-14

这给出了我们对斜率0.95的估计,与Stan的后验平均值相差2位小数,标准误差为0.11,这与Stan的后验SD相同。

stan和贝叶斯推断

有兴趣探索Stan并使用它来执行贝叶斯推断,这是出于测量误差和数据缺失的问题。正如WinBUGS和作者所描述的,贝叶斯方法在解决不同的不确定性来源问题时非常自然,这些不确定性来源超出参数不确定性,例如缺失数据或用误差测量的协变量。实际上,对于流行的缺失数据多重插补方法是在贝叶斯范式内发展的。


最受欢迎的见解

1.R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究

2.R语言时变参数VAR随机模型

3.R语言时变参数VAR随机模型

4.R语言基于ARMA-GARCH过程的VAR拟合和预测

5.GARCH(1,1),MA以及历史模拟法的VaR比较

6.R语言时变参数VAR随机模型

7.R语言实现向量自动回归VAR模型

8.R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

9.R语言VAR模型的不同类型的脉冲响应分析

拓端tecdat|R语言stan进行基于贝叶斯推断的回归模型相关推荐

  1. 干货 | 基于贝叶斯推断的分类模型 机器学习你会遇到的“坑”

    本文转载自公众号"读芯术"(ID:AI_Discovery) 本文3153字,建议阅读8分钟. 本文讲解了在学习基于贝叶斯推断的分类模型中,我们需要的准备和方法. 数学准备 概率: ...

  2. 基于贝叶斯推断的分类模型 机器学习你会遇到的“坑”

    链接:贝叶斯推断分类 数学准备 概率:事件不确定性程度的量化,概率越大,表示事件发生的可能性越大. 条件概率:P(A|B),在条件B下,发生A的概率. 联合概率:P(A,B),A事件与B事件同时发生的 ...

  3. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  4. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  5. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  6. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  7. R语言临床预测模型:分层构建COX生存回归模型STRATIFIED COX MODEL、KM生存曲线、PH假设检验...

    全文链接:http://tecdat.cn/?p=32046 stratified cox model是针对协变量不满足PHA提出的,这里的思想是对协变量分层(点击文末"阅读原文" ...

  8. R语言使用car包的durbinWatsonTest函数检验回归模型的响应变量(或者残差)是否具有独立性(Independence、是否具有自相关关javascript系autocorrelated)

    R语言使用car包的durbinWatsonTest函数检验回归模型的响应变量(或者残差)是否具有独立性(Independence.是否具有自相关关系autocorrelated) 目录

  9. R语言survival包clogit函数构建条件logistic回归模型、summary函数查看模型汇总统计信息、通过似然比检验分析结果判断模型有无统计学意义

    R语言survival包clogit函数构建条件logistic回归模型.summary函数查看模型汇总统计信息.通过似然比检验分析结果判断模型有无统计学意义 目录

  10. R语言使用ggplot2函数可视化需要构建泊松回归模型的计数目标变量的直方图分布并分析构建泊松回归模型的可行性

    R语言使用ggplot2函数可视化需要构建泊松回归模型的计数目标变量的直方图分布并分析构建泊松回归模型的可行性 目录

最新文章

  1. Node版本管理nvm, npm
  2. Atitit.去除水印的方案
  3. Celery中文翻译-Application
  4. 费氏搜寻法之算法分析与实现
  5. 四十四、ETL工具的查询_连接和映射
  6. C#--记录用户程序退出时间日志
  7. 蓝桥杯省赛考点_【蓝桥杯单片机01】从历年决赛真题中寻找单片机常见的考点...
  8. xp系统目前禁用索引服务器,WinXP系统中可以被禁用的服务对照表
  9. java mongo 查询数组_MongoDB查询(数组、内嵌文档)
  10. typescript箭头函数参数_Typescript 入门基础篇(一)
  11. (10)Verilog HDL异步复位同步释放
  12. 记录下 k8s (1.14.2)使用kubeadm方式搭建和rancher搭建需要的镜像清单
  13. android 投屏 ipad,安卓手机投屏到ipad上
  14. 北京程序员平均工资达2万!你拖后腿了吗?
  15. SQL19 查找所有员工的last_name和first_name以及对应的
  16. 微信小程序对接海康威视摄像头
  17. 区块链-网络安全的未来
  18. 谷歌身份验证器 手表_6条使您的三星手表更加Google-y的提示
  19. 【kafka】Error while fetching metadata xxx: {TEST=LEADER_NOT_AVAILABLE}
  20. 趣店季报图解:营收3.8亿同比降47% 股价重回1美元以上

热门文章

  1. svn利用钩子post-commit自动更新到线上测试服务器
  2. Delphi运行期错误
  3. 面色红润从滋补五脏开始
  4. main函数中argc和argc参数解释
  5. 命名实体识别研究综述
  6. C++--第1课 - C到C++的升级
  7. Java变量的默认值和初始化
  8. 开发工具总结(6)之Android Studio模板配置详解(提高开发效率必备技能)
  9. [华为机试真题][2014]63.等式变换
  10. Visual Studio 开源控件扩展 NuGet 常用组件安装命令