gpt4 book ai didi

R glm() 公式语法与 |和 >

转载 作者:行者123 更新时间:2023-11-30 23:56:09 24 4
gpt4 key购买 nike

我看到两个 R glm 公式,我不知道它们是什么意思。

假设我们有 3 个变量,x1x2y。当公式包含 > 时,这意味着什么,例如 glm((y>0) ~ x1 + x2)?使用 | 是什么意思,例如 glm(y ~ x1|x2)

对于第二个,我找到的解释是 x1 given x2,但我不确定当 x1x2 都是列向量而不是随机变量。

最佳答案

> 有其通常的含义; y 是否大于 0?对于大于 0 或不大于 0 的观察值,这分别评估为具有 TRUEFALSE 的逻辑向量。这具有被视为 10 的向量的效果(再次分别)。我假设您遗漏了指定 family = binomial 或类似数据以说明数据的 0/1 性质的部分?

|glm()(和其他基本 R 函数)接受的公式中没有任何特殊含义。它与 ?'|' 具有相同的含义,后者是一个 OR 运算符。因此在 x1 | x2,我们可能会认为这是或(x1, x2),它具有标准函数调用的形式。如果x1 x2TRUE,则此处的结果为TRUE,强制转换x1x2 根据需要逻辑化。如果 x1x2 都是数字,那么唯一的方法是 x1 |如果两者正好等于 0,则 x2 将为 FALSE。就此而言,这只是R的公式和标准非标准评估的一个特征;公式可以包含函数调用,例如 log(x)sqrt(y) 等,当拟合函数收集拟合所需的数据时,这些调用将被评估。

下面是一个示例,可以解释 | 在公式中的作用:

> set.seed(1)
> df <- data.frame(Y = rnorm(5), A = rnorm(5), B = rep(FALSE, 5),
+ C = c(rep(TRUE, 4), FALSE))
> df
Y A B C
1 -0.6264538 -0.8204684 FALSE TRUE
2 0.1836433 0.4874291 FALSE TRUE
3 -0.8356286 0.7383247 FALSE TRUE
4 1.5952808 0.5757814 FALSE TRUE
5 0.3295078 -0.3053884 FALSE FALSE
> model.frame(Y ~ A + (B | C), data = df)
Y A B | C
1 -0.6264538 -0.8204684 TRUE
2 0.1836433 0.4874291 TRUE
3 -0.8356286 0.7383247 TRUE
4 1.5952808 0.5757814 TRUE
5 0.3295078 -0.3053884 FALSE

此处的第三列由对 '|'(A, B) 的调用形成,结果为

> with(df, B | C)
[1] TRUE TRUE TRUE TRUE FALSE

请注意,您必须将 | 子句括在括号中,否则它会吞噬 ~ 右侧的其他项:

> model.frame(Y ~ A + B | C, data = df)
Y A + B | C
1 -0.6264538 TRUE
2 0.1836433 TRUE
3 -0.8356286 TRUE
4 1.5952808 TRUE
5 0.3295078 TRUE

## Note there is no `A` and all are `TRUE` now.

最后一个元素现在是 TRUE 的原因,请注意 A (-0.3053884) 的最后一个元素不完全等于 0,因此它的计算结果为 TRUE,因此我们有 TRUE | FALSE,结果为 TRUE

| 是否在其他包中有特殊含义,例如在lme4包中,它用于嵌套随机效果。

关于R glm() 公式语法与 |和 >,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21273743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com