【发布时间】:2017-12-09 19:31:47
【问题描述】:
我正在尝试在 julia 中运行混合效果模型(R 对我的数据来说太慢了),但我不断收到此错误。
我已经安装了 DataArrays、DataFrames、MixedModels 和 RDatasets 包,并且正在按照这里的教程进行操作 --> http://dmbates.github.io/MixedModels.jl/latest/man/fitting/#Fitting-linear-mixed-effects-models-1
这些是我的步骤:
using DataArrays, DataFrames , MixedModels, RDatasets
我收到这些警告
警告:方法定义 ==(Base.Nullable{S}, Base.Nullable{T}) 在 模块基在 nullable.jl:238 在模块 NullableArrays 中被覆盖 /home/home/.julia/v0.6/NullableArrays/src/operators.jl:128。警告: 模块中的方法定义model_response(DataFrames.ModelFrame) 数据帧在 /home/home/.julia/v0.6/DataFrames/src/statsmodels/formula.jl:352 在模块 MixedModels 中覆盖 /home/home/.julia/v0.6/MixedModels/src/pls.jl:65。警告:方法 在模块 Base 中定义 ==(Base.Nullable{S}, Base.Nullable{T}) nullable.jl:238 在模块 NullableArrays 中被覆盖 /home/home/.julia/v0.6/NullableArrays/src/operators.jl:128。警告: 模块中的方法定义 ==(Base.Nullable{S}, Base.Nullable{T}) 基于 nullable.jl:238 在模块 NullableArrays 中覆盖 /home/home/.julia/v0.6/NullableArrays/src/operators.jl:128。警告: 模块中的方法定义model_response(DataFrames.ModelFrame) 数据帧在 /home/home/.julia/v0.6/DataFrames/src/statsmodels/formula.jl:352 在模块 MixedModels 中覆盖 /home/home/.julia/v0.6/MixedModels/src/pls.jl:65。警告:方法 在模块 DataFrames 中定义 model_response(DataFrames.ModelFrame) 在/home/home/.julia/v0.6/DataFrames/src/statsmodels/formula.jl:352 在模块 MixedModels 中覆盖 /home/home/.julia/v0.6/MixedModels/src/pls.jl:65.
我从 lme4 包中获得了一个 R 数据集(在教程中使用)
inst = dataset("lme4", "InstEval")
julia> head(inst)
6×7 DataFrames.DataFrame
│ Row │ S │ D │ Studage │ Lectage │ Service │ Dept │ Y │
├─────┼─────┼────────┼─────────┼─────────┼─────────┼──────┼───┤
│ 1 │ "1" │ "1002" │ "2" │ "2" │ "0" │ "2" │ 5 │
│ 2 │ "1" │ "1050" │ "2" │ "1" │ "1" │ "6" │ 2 │
│ 3 │ "1" │ "1582" │ "2" │ "2" │ "0" │ "2" │ 5 │
│ 4 │ "1" │ "2050" │ "2" │ "2" │ "1" │ "3" │ 3 │
│ 5 │ "2" │ "115" │ "2" │ "1" │ "0" │ "5" │ 2 │
│ 6 │ "2" │ "756" │ "2" │ "1" │ "0" │ "5" │ 4 │
我按照教程所示运行模型
m2 = fit!(lmm(y ~ 1 + dept*service + (1|s) + (1|d), inst))
得到
ERROR: UndefVarError: y not defined
Stacktrace:
[1] macro expansion at ./REPL.jl:97 [inlined]
[2] (::Base.REPL.##1#2{Base.REPL.REPLBackend})() at ./event.jl:73
当我尝试使用 DataFrames 包中的“readtable”加载我自己的数据时,也会发生同样的事情
我正在运行 julia 0.6.0 并且所有软件包都是全新安装的。我的系统是带有所有最新软件包的 arch linux 4.11.7-1。 Julia 安装没有问题,但某些软件包会发出警告(见上文)。
【问题讨论】:
-
在我不了解的情况下,也没有尝试任何事情......我注意到公式和 Dataframe 列标题大写的区别。如果你改用它会发生什么?
m2 = fit!(lmm(Y ~ 1 + Dept*Service + (1|S) + (1|D), inst)) -
同样的事情 --> 错误:UndefVarError: Y not defined 我刚刚通过 brew 在朋友的 mac 上安装了 julia,它给出了同样的错误。
标签: dataframe julia mixed-models