首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Julia对比度编码

Julia对比度编码
EN

Stack Overflow用户
提问于 2017-08-15 02:48:20
回答 1查看 239关注 0票数 0

难以为回归中的分类变量分配自定义对比。看起来,我们可以使用EffectsCoding或DummyCoding参数指定contrast

代码语言:javascript
复制
    model = fit!(lmm(@formula(response ~ 1 + factor + (1|sub)), data, 
             contrasts = Dict(:factor => EffectsCoding()) ))

但是如何分配习惯对比呢?

例如,在R中我可以做到

代码语言:javascript
复制
contrasts(data$factor) <- cbind("A_vs_B"= c(0.5, -0.5, 0), "AB_vs_C"= c(-0.25, -0.25, 0.5))

> contrasts(data$factor)
       A_vs_B   AB_vs_C
A        0.5     -0.25
B       -0.5     -0.25
C        0.0      0.50
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-15 11:23:34

除了EffectsCoding()之外,DataFrames还支持其他对比度规范。通常,您可以为k类提供一个对比度矩阵(大小为k-by-(k-1) ),例如在R中:

代码语言:javascript
复制
using RDatasets        # install with Pkg.add("RDatasets")
using MixedModels      # install with Pkg.add("MixedModels")

iris = dataset("datasets", "iris")

contrast_matrix = [0.5 -0.25; -0.5 -0.25; 0.0 0.5]
fit!(lmm(@formula(SepalLength ~ 1 + Species + (1|PetalWidth)), iris, 
  contrasts = Dict(:Species => ContrastsCoding(contrast_matrix)) ))

问题中的具体对比矩阵实际上是特定类别排序的Helmert编码矩阵。在这种情况下,这样做更简单:

代码语言:javascript
复制
fit!(lmm(@formula(SepalLength ~ 1 + Species + (1|PetalWidth)), iris, 
  contrasts = Dict(:Species => HelmertCoding()) ))

HelmertCoding还采用可选参数baselevels (未命名,参见docs)来切换类别顺序。

希望这会有所帮助,因为实际的代码在我的v0.7 Julia上出现了一些问题,但是在v0.5上它应该可以工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45685812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档