Julia 中缺少值的混合模型
MixedModel with missing values in Julia
当响应变量具有 missing
时,不能 运行 混合模型。
我得到 ERROR: KeyError: key missing not found
以前 Julia 可以运行这没有问题。
我使用 CSV.read 加载我的数据,但下面的示例使用来自名为 languageR
的 R 包的数据集
using DataFrames, MixedModels, GLM, RDatasets, RData, RCall, Missings, CSV
#load data
lexdec = rcopy(R"languageR::lexdec")
#replace one value with missing
lexdec.rt = recode(lexdec.RT, 6.905753 => missing)
#run mixedmodel
fm = fit(MixedModel, @formula(rt ~ 1 + Class*NativeLanguage*Frequency + Trial + (1|Subject) + (1|Word)), lexdec)
ERROR: KeyError: key missing not found
#plus a long Stacktrace
如果缺少自变量(例如频率),则会出现相同的错误。想要一个可以解决两种情况下缺失的解决方案。
MixedModels 的开发版本可以处理缺失值。看起来它只是删除了缺少值的行。这与 R
中的 na.omit
相同。
#install development version
add https://github.com/dmbates/MixedModels.jl
julia> #run mixedmodel
fm = fit(MixedModel, @formula(rt ~ 1 + Class*NativeLanguage*Frequency + Trial + (1|Subject) + (1|Word)), lexdec)
Linear mixed model fit by maximum likelihood
rt ~ 1 + Class + NativeLanguage + Frequency + Trial + Class & NativeLanguage + Class & Frequency + NativeLanguage & Frequency + Class & NativeLanguage & Frequency + (1 | Subject) + (1 | Word)
logLik -2 logLik AIC BIC
500.93350 -1001.86699 -977.86699 -912.90658
Variance components:
Column Variance Std.Dev.
Word (Intercept) 0.0023721041 0.04870425
Subject (Intercept) 0.0166347779 0.12897588
Residual 0.0290821397 0.17053486
Number of obs: 1658; levels of grouping factors: 79, 21
Fixed-effects parameters:
───────────────────────────────────────────────────────────────────────────────────────────────
Estimate Std.Error z value P(>|z|)
───────────────────────────────────────────────────────────────────────────────────────────────
(Intercept) 6.52805 0.0594568 109.795 <1e-99
Class: plant -0.0575706 0.0630526 -0.913056 0.3612
NativeLanguage: Other 0.378076 0.0753413 5.01817 <1e-6
Frequency -0.0371412 0.00860268 -4.3174 <1e-4
Trial -0.000233949 9.0215e-5 -2.59324 0.0095
Class: plant & NativeLanguage: Other -0.108593 0.0685904 -1.58322 0.1134
Class: plant & Frequency 0.00893183 0.0130981 0.68192 0.4953
NativeLanguage: Other & Frequency -0.0398737 0.00936592 -4.25732 <1e-4
Class: plant & NativeLanguage: Other & Frequency 0.0078122 0.014241 0.54857 0.5833
───────────────────────────────────────────────────────────────────────────────────────────────
当响应变量具有 missing
时,不能 运行 混合模型。
我得到 ERROR: KeyError: key missing not found
以前 Julia 可以运行这没有问题。
我使用 CSV.read 加载我的数据,但下面的示例使用来自名为 languageR
using DataFrames, MixedModels, GLM, RDatasets, RData, RCall, Missings, CSV
#load data
lexdec = rcopy(R"languageR::lexdec")
#replace one value with missing
lexdec.rt = recode(lexdec.RT, 6.905753 => missing)
#run mixedmodel
fm = fit(MixedModel, @formula(rt ~ 1 + Class*NativeLanguage*Frequency + Trial + (1|Subject) + (1|Word)), lexdec)
ERROR: KeyError: key missing not found
#plus a long Stacktrace
如果缺少自变量(例如频率),则会出现相同的错误。想要一个可以解决两种情况下缺失的解决方案。
MixedModels 的开发版本可以处理缺失值。看起来它只是删除了缺少值的行。这与 R
中的 na.omit
相同。
#install development version
add https://github.com/dmbates/MixedModels.jl
julia> #run mixedmodel
fm = fit(MixedModel, @formula(rt ~ 1 + Class*NativeLanguage*Frequency + Trial + (1|Subject) + (1|Word)), lexdec)
Linear mixed model fit by maximum likelihood
rt ~ 1 + Class + NativeLanguage + Frequency + Trial + Class & NativeLanguage + Class & Frequency + NativeLanguage & Frequency + Class & NativeLanguage & Frequency + (1 | Subject) + (1 | Word)
logLik -2 logLik AIC BIC
500.93350 -1001.86699 -977.86699 -912.90658
Variance components:
Column Variance Std.Dev.
Word (Intercept) 0.0023721041 0.04870425
Subject (Intercept) 0.0166347779 0.12897588
Residual 0.0290821397 0.17053486
Number of obs: 1658; levels of grouping factors: 79, 21
Fixed-effects parameters:
───────────────────────────────────────────────────────────────────────────────────────────────
Estimate Std.Error z value P(>|z|)
───────────────────────────────────────────────────────────────────────────────────────────────
(Intercept) 6.52805 0.0594568 109.795 <1e-99
Class: plant -0.0575706 0.0630526 -0.913056 0.3612
NativeLanguage: Other 0.378076 0.0753413 5.01817 <1e-6
Frequency -0.0371412 0.00860268 -4.3174 <1e-4
Trial -0.000233949 9.0215e-5 -2.59324 0.0095
Class: plant & NativeLanguage: Other -0.108593 0.0685904 -1.58322 0.1134
Class: plant & Frequency 0.00893183 0.0130981 0.68192 0.4953
NativeLanguage: Other & Frequency -0.0398737 0.00936592 -4.25732 <1e-4
Class: plant & NativeLanguage: Other & Frequency 0.0078122 0.014241 0.54857 0.5833
───────────────────────────────────────────────────────────────────────────────────────────────