微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 R 中的泊松分布获得两个值之间的比较?

如何解决如何使用 R 中的泊松分布获得两个值之间的比较?

我想使用泊松分布来评估两个值中哪个值在数据帧中出现最低值的概率更高。这就是我试图做的:

df <- mtcars

f <- function(x,y){
  n1 = df$mpg[x]; n2 = df$mpg[y]
  ppois(0,lambda = n1 - n2)
}

res <- outer(X = df$mpg,Y = df$mpg,f)
dimnames(res) <- list(row.names(df),row.names(df))
res <- data.frame(res)
res <- tibble::rownames_to_column(res,'p1')

datalong_2 <- tidyr::gather(res,'p2','value',-1) # output
datalong_2$value <- round(datalong_2$value,4)

但是这段代码没有给我我想要的东西。如果两辆车的 mpg 值相同,我预计它们有 50% 的机会获得最低分。

f <- function(n1,n2){
  mean(rpois(1000,n1) < rpois(1000,n2))
}
g <- Vectorize(f,c("n1","n2"))
res <- outer(df$mpg,df$mpg,g)
dimnames(res) <- list(row.names(df),4)

我也试过这个是有效的,但我想了解为什么以前的代码不起作用,以及如何获得实际的理论概率而不是模拟

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。