pscl :: predict.hurdle概率不总和为1

时间:2016-02-18 20:54:30

标签: r pscl

我正在使用predict.hurdle包中的pscl函数来估计观察数据集中0,1,2,...,N事件的概率。

使用?predict.hurdle中的示例:

data("bioChemists", package = "pscl")

fm_hp1 <- hurdle(art ~ ., data = bioChemists)
summary(fm_hp1)

head(predict(fm_hp1, newdata = bioChemists, type = "prob"))
# returns a matrix of probabilities too large to show here

此矩阵的每一行都是一个观察点,每列都是该计数的概率,在这种情况下为0-19。

summary(rowSums(predict(fm_hp1, newdata = bioChemists, type = "prob")))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.9998  1.0000  1.0000  1.0000  1.0000  1.0000 

但有些行并不是他们应该的总和。但好吧,他们很接近所以也许这不是问题......

但是,我需要校准拦截术语。我所在行业的“校准”是一种可以接受的方式来说“改变估计的参数”。是的,我知道有很多理由说明为什么这在统计上不是一个好主意(故意偏向估计)。但是,我仍然期望代码能够工作,并且预测会遵守概率规则。

# Change the count model intercept
fm_hp1$coefficients$count["(Intercept)"] <- 3

summary(rowSums(predict(fm_hp1, newdata = bioChemists, type = "prob")))
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
0.001521 0.434300 0.647400 0.602000 0.818400 0.983900 

现在我们看到了由此产生的概率的一些主要问题。

我很想通过以下方式简单地以0-1的比例重新规范这些实用程序:

old.p <- predict(fm_hp1, newdata = bioChemists, type = "prob")
new.p <- t(apply(X = old.p, MARGIN = 1, FUN = function(x) x/sum(x)))
summary(rowSums(new.p))

但我担心概率问题的原因总和为1意味着这不合适。

我的担心是否成立?我是否需要修改fm_hp1的另一个元素才能更改截距词,但仍能获得正确的概率预测?

1 个答案:

答案 0 :(得分:1)

hurdle()支持的计数分布都支持0,1,2,......(最多无穷大)。因此,为了将完全总和为1,您必须总结所有这些整数0,1,2的概率......

由于无限多的值在实践中没有用,predict()方法只提供有限数量整数的概率,默认为0,1,2,...,max(y),即up达到最大反应。如果是bioChemists数据,则为0,1,...,19。

因此,通过仅取这些概率的总和,您可以忽略所有较高计数的概率。通常,这个概率权重很小,如您的第一个摘要所示。但是,如果增加截距,则比原始数据集更有可能产生更高的计数(期望值增加约10倍!)。因此,您需要总结一个更大的支持。您可以通过提供at参数来执行此操作:

summary(rowSums(predict(fm_hp1, type = "prob", at = 0:50)))
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## 0.001789 1.000000 1.000000 0.994000 1.000000 1.000000 
summary(rowSums(predict(fm_hp1, type = "prob", at = 0:100)))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.9889  1.0000  1.0000  1.0000  1.0000  1.0000 
summary(rowSums(predict(fm_hp1, type = "prob", at = 0:200)))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       1       1       1       1       1       1 

正如上面的评论中提到的那样,我怀疑拦截的这种变化在这里确实是一个很好的策略,但这是一个不同的辩论......