首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用`ppc_stat()`时直方图值失真

使用`ppc_stat()`时直方图值失真
EN

Stack Overflow用户
提问于 2018-04-30 16:15:52
回答 1查看 67关注 0票数 1

我使用了以下数据:

代码语言:javascript
复制
speed <- c(28, 26, 33, 24, 34, -44, 27, 16, 40, -2, 29, 22, 24, 21, 25, 30, 23, 29, 31, 19, 24, 20, 36, 32, 36, 28, 25, 21, 28, 29, 37, 25, 28, 26, 30, 32, 36, 26, 30, 22, 36, 23, 27, 27, 28, 27, 31, 27, 26, 33, 26, 32, 32, 24, 39, 28, 24, 25, 32, 25, 29, 27, 28, 29, 16, 23)

我当前的Stan代码如下:

代码语言:javascript
复制
```{stan output.var="NMM_PPD"}

数据{

int n;

向量y;

real nu;

}

参数{

真正的y_mu;

真正的y_sd;

}

模型{

Y~ student_t(nu,y_mu,y_sd);

y_mu ~ normal(0,1000);

y_sd ~柯西(0,5);

}

生成的数量{

向量y_rep;

for(i in 1:n){

代码语言:javascript
复制
y_rep[i] = student_t_rng(nu, y_mu, y_sd);

}

}

代码语言:javascript
复制

我传入了nu的值,并使用以下代码从模型中绘制样本:

代码语言:javascript
复制
```{r}

速度<- data.in (y=speed,n=length(速度),"nu“= 1)

model.fit <-采样(NMM_PPD,data=data.in)

代码语言:javascript
复制

我们使用extract()函数从model.fit对象中提取复制的数据集:

代码语言:javascript
复制
```{r}

yrep <- extract(model.fit,pars = "y_rep")[1]

代码语言:javascript
复制

我现在绘制直方图:

代码语言:javascript
复制
```{r}

Ppc_hist(速度,yrepsample(NROW(yrep),11),)

代码语言:javascript
复制

代码语言:javascript
复制
```{r}

Ppc_dens(速度,yrepsample(NROW(yrep),2),)

代码语言:javascript
复制

代码语言:javascript
复制
```{r}

Ppc_dens_overlay(速度,yrepsample(NROW(yrep),11),)

代码语言:javascript
复制

代码语言:javascript
复制
```{r}

Ppc_stat(速度,yrep)

代码语言:javascript
复制

代码语言:javascript
复制
```{r}

Ppc_stat(速度,yrep,stat =“中位数”)

代码语言:javascript
复制

代码语言:javascript
复制
```{r}

ppc_stat(speed,yrep,stat = "max")

代码语言:javascript
复制

代码语言:javascript
复制
```{r}

Ppc_stat(速度,yrep,stat = "min")

代码语言:javascript
复制

请注意,其中一些直方图由于存在较小和较大的值而失真。我想修复这个失真,这样我就可以直观地看到直方图值。

我在ppc_stat()documentation中看不到任何可以让我们解决这个问题的东西。

EN

回答 1

Stack Overflow用户

发布于 2020-03-26 11:24:59

ppc_stat()会返回一个ggplot对象,因此您可以像修改ggplot一样对其进行修改。你可能会想要小心,只是在尺度上设置任意的限制,因为边缘上有数据,只是不是很多。您还可以使用伪对数转换。下面的代码显示要同时执行这两项操作:

代码语言:javascript
复制
ppc_hist(speed, yrep[sample(NROW(yrep), 11), ]) + 
  scale_x_continuous(limits = c(-100,100), trans='pseudo_log')
ppc_stat(speed, yrep, stat = "min") + 
  scale_x_continuous(limits = c(-10000,100), trans='pseudo_log')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50096497

复制
相关文章

相似问题

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