Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ols的带相互作用的公式_R - Fatal编程技术网

R ols的带相互作用的公式

R ols的带相互作用的公式,r,R,在下面的代码中,模型1和2工作得很好,并产生相同的结果。模型4也很好用 require(rms) mtcars$ind <- I(mtcars$gear==4) dd <- datadist(mtcars) options(datadist = "dd") ols(as.formula(mpg ~ wt + cyl + gear + cyl:gear), data=mtcars) #1 ols(as.formula(mpg

在下面的代码中,模型1和2工作得很好,并产生相同的结果。模型4也很好用

    require(rms)

    mtcars$ind <- I(mtcars$gear==4)

    dd <- datadist(mtcars)
    options(datadist = "dd")

    ols(as.formula(mpg ~ wt + cyl + gear + cyl:gear), data=mtcars)    #1
    ols(as.formula(mpg ~ wt + cyl + gear + cyl * gear), data=mtcars)  #2

    ols(as.formula(mpg ~ wt + cyl + gear + cyl:ind), data=mtcars)     #3
    ols(as.formula(mpg ~ wt + cyl + gear + cyl * ind), data=mtcars)   #4
回溯的输出是

    2: Design(eval.parent(m))
    1: ols(as.formula(mpg ~ wt + cyl + gear + cyl:ind), data = mtcars)
我试图在ols和rms上设置调试:::设计,但没有走多远!!我在使用rms::lrm时遇到了这个问题,并意识到它也发生在ols中


为什么4能工作而3不能?它们在公式中具有相同的术语,其中一个使用:,另一个使用*。谢谢@roland。运行4时,它似乎添加了其他主要效果。以下各项产生与4完全相同的输出:

    ols(mpg ~ wt + cyl + gear + ind + cyl:ind,   data=mtcars) #3b 
    ols(mpg ~ wt       + gear       + cyl * ind, data=mtcars) #4b

你为什么把你的公式用as.formula包装起来?这应该没有必要。此外,你应该提供一个简单的答案,使问题更容易回答。但是,您的第三个模型包含交互cyl:ind,但不包含作为主要效果的ind。只有在非常特殊的情况下,这样做才是一个好主意,但在一般情况下并非如此。这很可能是推测,ols假设交互中的效果总是作为主要效果出现。谢谢@roland。虽然我这里没有生成实例的代码,但mtcars是其中的一部分。因此,上面的代码可以按原样运行。
    ols(mpg ~ wt + cyl + gear + ind + cyl:ind,   data=mtcars) #3b 
    ols(mpg ~ wt       + gear       + cyl * ind, data=mtcars) #4b