贝叶斯分析入门

---
title: "贝叶斯分析入门"
author: "xuefliang"
date: "5/31/2019"
output:
  html_document:
    theme: readable
    highlight: haddock 
    df_print: paged
    code_folding: show
    toc: true
    toc_float: TRUE
    number_sections: false 
    fig_width: 10.08
    fig_height: 6
    fig_caption: TRUE
tags: [r, bayesian, posterior, test]
editor_options:
  chunk_output_type: console
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE,warning = FALSE,message = FALSE,comment=">",tidy = T)
#eval判断是否执行这个代码eval判断是否执行这个代码
#echo选择是否让代码在结果中显示
#results是否输出结果
options(knitr.kable.NA = '',digits=2)
set.seed(333)
```

```{r results='hide'}
#https://github.com/easystats/bayestestR#documentation
#https://www.r-bloggers.com/bayesian-models-in-r-2/
#devtools::install_github("easystats/easystats")
#https://blog.csdn.net/leolotus/article/details/50769017
## https://blog.csdn.net/leolotus/article/details/50956532
library(tidyverse)
library(bayestestR)
library(rstanarm)
library(insight)
library(kableExtra)
```
## 为什么要使用贝叶斯框架?
叶斯统计框架在科学家中迅速普及,与开放和诚实科学的普遍转变相关。更喜欢这种方法的原因是可靠性,准确性 (在噪声数据和小样本中),将先验知识引入分析的可能性,以及关键的结果直观性和直接解释。一般而言,频率论方法与对零假设检验的关注有关,并且p值的误用已经显示出对心理科学的再现性危机的关键性贡献。 人们普遍认为,贝叶斯方法的推广是克服这些问题的一种方法。

### 什么是贝叶斯框架?
采用贝叶斯框架更多地是范式的转变而不是方法的改变。实际上,所有常见的统计程序(t检验,相关性,ANOVA,回归等)都可以使用贝叶斯框架来实现。其中一个核心差异在于频率论观点(“经典”统计,p和t值,以及一些奇怪的自由度),效果是固定的(但未知),数据是随机的。相反,贝叶斯推理过程计算给定观测数据的不同效果的概率。这种概率方法不是具有“真实效应”的一个估计值,而是给出值的分布,称为“后验”分布。

例如,贝叶斯的不确定性可以通过给出分布的中值以及后验分布的一系列值来概括,其中包括95%最可能的值(95%可信区间)。为了说明解释的不同,贝叶斯框架允许说“给定观察到的数据,效果有95%的概率落在这个范围内”,而频率论直接替代(95%置信区间)将是“有95%的概率,当从这种数据计算置信区间时,效果落在这个范围内“。
省略其背后的数学,我们可以说:频率论试图估计“真正的效果”。例如,x和y之间的相关性的“实际”值。因此,频率论模型返回在一些模糊假设下估计的“实际”相关性(例如,r =0.42)的“点估计”(即,单个值)(至少考虑到数据在来自“父母”的随机,通常是正态分布)。贝叶斯大师假设没有这样的东西。数据就是它们。基于该观察到的数据(以及关于结果的先验信念),贝叶斯采样算法(有时称为MCMC采样)返回与观察数据兼容的效果的概率分布(称为后验)。对于x和y之间的相关性,它将返回一个分布,例如,“最可能的效应是0.42,但该数据也与0.12和0.74的相关性兼容”。
为了表征我们的效果,不需要p值或其他神秘指数。我们简单地描述了效果的后验分布。例如,我们可以报告中位数,90%可信区间或其他指数。

### 传统的线性回归
让我们首先拟合一个简单的频率线性回归(lm()函数代表线性模型 )来自着名的iris数据集的两个数字变量Sepal.Length和Petal.Length ,默认包含在R.
```{r}
model <- lm(Sepal.Length ~ Petal.Length, data=iris)
summary(model)
```
该分析表明,两个变量之间存在显著和正相关(系数为0.41)的线性关系。拟合和解释频率论模型非常容易 ,很明显人们使用它而不是贝叶斯框架......对吗?

### 贝叶斯线性回归

```{r}
model <- stan_glm(Sepal.Length ~ Petal.Length, data=iris)
describe_posterior(model) %>% kable() %>%
  kable_styling() %>%
  scroll_box("150px")
```
通过简单地使用stan_glm()而不是lm()来拟合模型的贝叶斯版本,并描述了参数的后验分布。 在这个例子中,可以得出的结论非常相似。 效果(效应的后验分布的中位数)约为0.41,并且在贝叶斯意义上也可以被认为是显著的。






评论

此博客中的热门博文

V2ray websocket(ws)+tls+nginx分流

Rstudio 使用代理