Julia 中的二项式 GLM - 如何指定命中和未命中
Binomial GLM in Julia - how to specify hits and misses
在 Julia 中,我想用族 Binomial()
和 LogitLink()
计算 GLM。我的数据是三个线性数组:xvalues
、hits
的数量和 misses
的数量。我想通过它们在 x 轴上的位置来解释二项式分布的命中和未命中。我有多个具有相同 x 坐标的样本(因为数据最初来自一个被展平的二维数组)。
在 R 中,我必须在两列矩阵中提供命中和未命中。类似于以下作品:
glm1 <- glm(cbind(hits, misses)~xvalues, family=binomial)
但在 Julia 的 GLM 公式中,我不能指定任意数组。相反,我必须从数据框指定列,而数据框的列似乎不能是二维的。所以我将我的数据放入数据框中:
data = DataFrame(xvals = xvals, hits = hits, misses = misses)
并尝试了一些不起作用的方法(比如这样):
glm1 = glm(hcat(hits, misses) ~ xvals, data, family = Binomial, link = LogitLink())
可以下载带数据的例子here。
有什么建议吗?
干杯,
汉内斯
虽然将数据集膨胀到约 100k 行的数据帧并不漂亮,但它确实可以正常工作。要使用下面的代码,首先将您的数据集加载到 xvals
、hits
和 misses
(如问题中的链接),然后:
# spreading dataset to one row per trial...
data = DataFrame(
xvals = vcat(rep(xvals,hits),rep(xvals,misses)),
outcome = vcat(rep(1,sum(hits)),rep(0,sum(misses))))
glm1 = glm(outcome ~ xvals, data, Binomial(),LogitLink())
粗略看了一下,结果似乎符合数据。还要注意 Binomial
和 LogicLink
是位置参数而不是命名参数。
在 Julia 中,我想用族 Binomial()
和 LogitLink()
计算 GLM。我的数据是三个线性数组:xvalues
、hits
的数量和 misses
的数量。我想通过它们在 x 轴上的位置来解释二项式分布的命中和未命中。我有多个具有相同 x 坐标的样本(因为数据最初来自一个被展平的二维数组)。
在 R 中,我必须在两列矩阵中提供命中和未命中。类似于以下作品:
glm1 <- glm(cbind(hits, misses)~xvalues, family=binomial)
但在 Julia 的 GLM 公式中,我不能指定任意数组。相反,我必须从数据框指定列,而数据框的列似乎不能是二维的。所以我将我的数据放入数据框中:
data = DataFrame(xvals = xvals, hits = hits, misses = misses)
并尝试了一些不起作用的方法(比如这样):
glm1 = glm(hcat(hits, misses) ~ xvals, data, family = Binomial, link = LogitLink())
可以下载带数据的例子here。
有什么建议吗? 干杯, 汉内斯
虽然将数据集膨胀到约 100k 行的数据帧并不漂亮,但它确实可以正常工作。要使用下面的代码,首先将您的数据集加载到 xvals
、hits
和 misses
(如问题中的链接),然后:
# spreading dataset to one row per trial...
data = DataFrame(
xvals = vcat(rep(xvals,hits),rep(xvals,misses)),
outcome = vcat(rep(1,sum(hits)),rep(0,sum(misses))))
glm1 = glm(outcome ~ xvals, data, Binomial(),LogitLink())
粗略看了一下,结果似乎符合数据。还要注意 Binomial
和 LogicLink
是位置参数而不是命名参数。