LMM中是否有可能使LMM中的随机效应相互作用?

这给出了一个错误

model = fit!(lmm(@formula(response ~ 1 + A*B + (1+A*B|sub)), data)
ERROR: MethodError: no method matching getindex(::DataFrames.DataFrame, ::Expr)


解开条款也无济于事。

model = fit!(lmm(@formula(response ~ 1 + A*B + (1+A+B+A&B|sub)), data)


这有效

mode2 = fit!(lmm(@formula(response ~ 1 + A*B + (1+A+B|sub)), data)


请注意,进行固定效果交互时没有问题。

最佳答案

也许这应该是github上的MixedModels.jl或DataFrames.jl中的问题。但是,无论如何,我都找到了一个问题所在:eterms@formula计算。因此,为了使其正常工作,我已经重新定义了计算。将以下内容粘贴到REPL中,然后尝试出现问题的fit!

function DataFrames.evt(ex::Expr)
    if ex.head != :call error("Non-call expression encountered") end
    if !(ex.args[1] in DataFrames.nonevaluation)
        trms = DataFrames.getterms(ex)
        if length(trms)>1
            return vcat(map(DataFrames.evt,trms)...)
        else
            return [trms]
        end
    end
    return filter(x->!isa(x,Number), vcat(map(DataFrames.evt, ex.args[2:end])...))
end


现在,这留下了另一个问题,那就是可以修复的Cholesky分解函数(我的Julia是v0.7)的变化是可以修复的,但是如果其他所有功能都起作用,则上述重新定义可以继续解决第一个问题。

这是指向MixedModels和DataFrames github页面的链接:


https://github.com/JuliaStats/DataFrames.jl
https://github.com/dmbates/MixedModels.jl

关于regression - Julia混合效应模型中随机斜率的相互作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45869303/

10-10 13:57