我可以测试先前给定数据的有效性吗?

机器算法验证 分布 可能性 贝叶斯
2022-03-27 20:26:52

问题

我正在编写一个 R 函数,该函数执行贝叶斯分析以估计给定先验和数据的后验密度。如果用户需要重新考虑之前的情况,我希望该功能发送警告。

在这个问题中,我有兴趣学习如何评估先验。以前的问题已经涵盖了陈述知情先验的机制(这里这里。)

以下情况可能需要重新评估先验:

  • 数据代表了一个极端情况,在陈述先前的情况时没有考虑到
  • 数据错误(例如,如果数据以 g 为单位,而先验以 kg 为单位)
  • 由于代码中的错误,从一组可用的先验中选择了错误的先验

在第一种情况下,先验通常仍然足够分散,以至于数据通常会压倒它们,除非数据值位于不受支持的范围内(例如 <0 表示 logN 或 Gamma)。其他情况是错误或错误。

问题

  1. 关于使用数据评估先验的有效性是否存在任何问题?
  2. 是否有任何特定的测试最适合这个问题?

例子

这里有两个数据集与logN(0,1)之前因为他们来自人群N(0,5)(红色)或N(8,0.5)(蓝色的)。

蓝色数据可能是有效的先验 + 数据组合,而红色数据需要支持负值的先验分布。

在此处输入图像描述

 set.seed(1)
 x<- seq(0.01,15,by=0.1)
 plot(x, dlnorm(x), type = 'l', xlim = c(-15,15),xlab='',ylab='')
 points(rnorm(50,0,5),jitter(rep(0,50),factor =0.2), cex = 0.3, col = 'red')
 points(rnorm(50,8,0.5),jitter(rep(0,50),factor =0.4), cex = 0.3, col = 'blue')
2个回答

你需要清楚你所说的“之前”是什么意思。例如,如果您对我之前对英国预期寿命的看法感兴趣,那不会错。这是我的信念!它可能与观察到的数据不一致,但这完全是另一回事。

上下文也很重要。例如,假设我们对某事物的数量感兴趣。我之前断言这个数量必须是严格非负的。然而,观察到的数据有误,我们有负面的测量结果。在这种情况下,先验并不是无效的,它只是潜在过程的先验。

为了回答您的问题,

  1. 关于使用数据评估先验的有效性是否存在任何问题?

纯粹主义者会争辩说您不应该两次使用数据。然而,务实的人只会反驳说你一开始就没有考虑足够的先验。

2 是否有任何特定的测试最适合这个问题?

这实际上取决于所考虑的模型。我想在最基本的情况下,您可以将先前的范围与数据范围进行比较。

这是我的两分钱:

  1. 我认为您应该关注与比率相关的先验参数。

  2. 您谈论的是信息性先验,但我认为您应该警告用户什么是合理的非信息性先验。我的意思是,有时一个均值为零且方差为 100 的正态值是相当无信息的,有时它是信息量很大的,具体取决于所使用的尺度。例如,如果您要根据身高(厘米)对工资进行回归,则上述先前的信息非常有用。但是,如果您根据高度(米)回归对数工资,那么上述先验信息并没有那么丰富。

  3. 如果您使用的是先前分析的结果的先验,即新的先验实际上是先前分析的旧后验,那么情况就不同了。我假设这是注意的情况。