gpt4 book ai didi

r - 确定模型公式是否只有截距的最简单方法

转载 作者:行者123 更新时间:2023-12-04 22:10:11 26 4
gpt4 key购买 nike

在 R 公式语法中,有时用户会指定一个非常简单的模型,它只有一个截距,例如

fit = lm(Response ~ 1, data)

这些模型允许相对于更复杂的模型进行简化,例如 lm(Response ~ A + B + A:B, ...) ,我想有一个简单的方法来检测方程的 RHS 何时只包含 1 而没有其他项。文本操作似乎是可能的,但是有没有其他方法可以使用 R formula 类或其他方法来做到这一点?

最佳答案

terms 的答案可能是规范的答案,但您也可以使用子集删除公式的 LHS 并针对 ~1 对其进行测试:

fit = lm(Response ~ 1, data=data.frame(Response=1:10))
identical(formula(fit)[-2],~1)
  • 这假设了一个双面公式
  • 要理解子集,你需要知道一个双面公式被当作一个二元运算并存储为 (~,Response,1) 的解析树:第一个元素是操作符,第二个元素是第一个参数(LHS),正确的元素是第二个参数(RHS)。 [-2] 删除第二个元素并使公式成为单边公式。

  • @G.Grothendieck 在评论中提供了一个稍微不那么笨拙的变体(不需要知道或理解公式对象的内部结构),使用 update 用 0 覆盖响应变量:
    identical(update(formula(fit), 0 ~ .), 0 ~ 1) 

    关于r - 确定模型公式是否只有截距的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41292078/

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