我想拟合β-二项式回归。我没有计数,只有比例。下面是一个例子:
library(dplyr)
library(gamlss)
df <- tibble(
cluster = LETTERS[1:20]
) |>
mutate(
p = rbeta(n(), 1, 1),
n = as.integer(3 * runif(n()))
)
fit <- gamlss(
p ~ log(n),
weights = n,
data = df,
family = BB(mu.link='identity')
)
我得到错误:
Error in while (abs(olddv - dv) > cc && itn < cyc) { :
missing value where TRUE/FALSE needed
In addition: There were 50 or more warnings (use warnings() to see the first 50)
警告如下所示:
In dbinom(x, size = bd, prob = mu, log = log) : non-integer x = 0.834502
请注意,我不想四舍五入成功的数量,如mutate(y = round(p * n))
。
1条答案
按热度按时间5jvtdoz21#
BB()
家族的帮助文件建议,因变量应该是成功和失败次数的两列矩阵。(成功的概率)得到n
(试验次数),那么你可以使成功次数为k=floor(p*n)
,失败次数为notk = n-k
,然后,你可以像我下面做的那样做。由reprex package(v2.0.1)于2023年1月20日创建