在beta回归中处理0.1值


20

我在[0,1]中有一些数据,希望通过beta回归进行分析。当然,需要做一些事情来容纳0,1值。我不喜欢修改数据以适合模型。我也不认为通货膨胀为零和1是个好主意,因为我认为在这种情况下,应将0视为很小的正值(但我不想确切地说出什么值是合适的。一个合理的选择我相信应该选择.001和.999这样的较小值,并使用beta的累积距离来拟合模型,因此对于观测值y_i,对数似然度LL_i应该为

 if  y_i < .001   LL+=log(cumd_beta(.001))
 else if y_i>.999  LL+=log(1.0-cum_beta(.999))
 else LL+=log(beta_density(y_i))

我喜欢这个模型的地方在于,如果beta回归模型有效,那么该模型也是有效的,但是它消除了对极值的敏感性。但是,这似乎是一种自然的方法,我想知道为什么我在文献中找不到任何明显的参考文献。所以我的问题是不是修改数据,而不是修改模型。修改数据会使结果产生偏差(基于原始模型有效的假设),而通过对极值进行装仓来修改模型不会使结果产生偏差。

也许有一个我忽略的问题?


1
如果不进一步了解特定问题,就不可能对这个问题给出良好的答案。关键问题是,确切的零和一是否由与(0,1)中的数据生成过程不同的过程生成。一个典型的例子是降雨,那里有确切的零,代表不下雨的日子。在您的应用程序中,零和一以某种方式“特殊”吗?
迪克兰有袋博物馆,2012年

Answers:


16

根据本文,适当的转换是

X=Xñ-1个+sñ

“其中N是样本大小,而s是介于0和1之间的常数。从贝叶斯观点来看,s的作用就好像我们考虑了先验。s的合理选择是0.5。”

这将挤压数据在于是在0 1 。上面的引用以及转换的数学原因可在本文的补充说明中找到[01个]01个


1
+1 ..但是,您可以解决第一个链接还是至少引用该论文,以便我们可以独立找到它?
ub

1
但这不能回答我的问题。我很清楚,一个人可以转换数据。我的问题是为什么不转换模型呢?
dave fournier 2012年

1
戴夫,然后请编辑您的问题以反映这一点:当前,它看起来像是您正在寻找一种转换数据的方法。在此过程中,这将有助于您指出您认为数据转换和模型更改之间的区别是什么,因为如果有区别的话,那就太微妙了。
ub

@davefournier,如果您阅读Cam网站上的论文,则部分可以解决您的问题。他们还提供了替代模型建议(请参见第69页),部分建议取决于数据的性质。您调整后的可能性看起来像“混合离散连续过程”(在第69页末尾提到)。给定您的数据,Tobit模型也可能会令人满意,尽管最好参考Tobit模型的适用性的其他参考资料,例如Scott Long的分类回归书。
安迪W

1
但是他们不采用这种方法。他们提出了一个不同的模型,一个混合的离散连续过程。这与对极值进行分箱非常不同。正如我之前说过的,如果beta模型有效,则分箱模型有效。如果离散连续模型有效,则beta模型无效。我怀疑它们的分析主要是由可以与软件配合的各种混合模型驱动的。装箱的beta混合模型更难拟合。
dave fournier 2012年

3

戴夫

解决此问题的常用方法是拟合2个logistic回归模型,以预测案例是0还是1。然后,对于(0,1)范围内的模型使用beta回归。


你能举个例子吗?还是更详细地讨论这个问题的论文?
user1607

2

(logX日志1个-X

XXX2

我相信,由于它们都是指数族,因此很容易以贝叶斯方法估算。如您所愿,这是对模型的修改。


1

我认为这个问题的实际“正确”答案是零膨胀的beta回归。它设计用于处理在间隔[0,1]上连续变化的数据,并允许数据中包含许多实数0和1。这种方法在贝叶斯上下文中适合三个单独的模型,类似于@B_Miner提出的模型。

模型1:值是离散的0/1,还是(0,1)中的值?符合bernoulli分布。

模型2:用bernoulli分布拟合离散子集。

模型3:使用Beta回归拟合(0,1)子集。

为了进行预测,可以使用第一个模型结果对模型2和3的预测进行加权。这可以在zoibR包中实现,也可以在BUGS / JAGS / STAN / etc中自酿。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.