繁体   English   中英

在概率上拟合二项式 GLM(即使用逻辑回归进行回归而不是分类)

[英]Fit binomial GLM on probabilities (i.e. using logistic regression for regression not classification)

我想使用逻辑回归来实际执行回归而不是分类。

我的响应变量是 0 到 1 之间的数字,而不是分类变量。 该响应变量是相关的任何形式的二项式过程。 特别是,没有“成功”,没有“试验次数”等。它只是一个实际变量,根据情况取 0 到 1 之间的值。

这是一个最小的例子来说明我想要实现的目标

dummy_data <- data.frame(a=1:10, 
                         b=factor(letters[1:10]), 
                         resp = runif(10))
fit <- glm(formula = resp ~ a + b, 
           family = "binomial",
           data = dummy_data)

此代码发出警告然后失败,因为我试图适应“错误类型”的数据:

在 eval(family$initialize) 中:二项式 glm 中的非整数 #successes!

但我想一定有办法,因为family的帮助说:

对于二项式和拟二项式族,可以通过以下三种方式之一指定响应: [...] (2) 作为值介于 0 和 1 之间的数值向量,解释为成功案例的比例(案例总数由权重给出)。

不知何故,相同的代码使用"quasibinomial"作为家庭,这让我认为可能有一种方法可以使其与二项式 glm 一起使用。

我知道可能性是假设 $y_i$ 在 ${0, 1}$ 中得出的,但是,从数学上看,似乎对数似然对于 $[0, 1] 中的 $y_i$ 仍然有意义$. 我错了吗?

这是因为您正在使用二项式族并给出错误的输出。 由于选择的家庭是二项式的,这意味着结果必须是 0 或 1,而不是概率值。

此代码工作正常,因为响应是 0 或 1。

dummy_data <- data.frame(a=1:10, 
                         b=factor(letters[1:10]), 
                         resp = sample(c(0,1),10,replace=T,prob=c(.5,.5)) )

fit <- glm(formula = resp ~ a + b, 
           family = binomial(),
           data = dummy_data)

如果您想直接对概率建模,您应该包含一个包含案例总数的附加列。 在这种情况下,您想要建模的概率被解释为给定权重列中案例数的成功率。

 dummy_data <- data.frame(a=1:10, 
                         b=factor(letters[1:10]), 
                         resp = runif(10),w=round(runif(10,1,11)))

fit <- glm(formula = resp ~ a + b, 
           family = binomial(),
           data = dummy_data, weights = w)

您仍然会收到警告消息,但您可以忽略它,前提是这些条件:

  1. resp是 n 次试验中 1 的比例。

  2. 对于resp每个值, w对应的值是试验次数。

来自警告的讨论:二项式 glm 中的非整数 #successes! (调查包) ,我想我们可以通过另一个族函数?quasibinomial()来解决它。

dummy_data <- data.frame(a=1:10, 
                         b=factor(letters[1:10]), 
                         resp = runif(10),w=round(runif(10,1,11)))

fit2 <- glm(formula = resp ~ a + b, 
           family = quasibinomial(),
           data = dummy_data, weights = w)

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM