トップ 履歴 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

contrast coding

*disclaimer
639864

contrast coding


  • カテゴリカル変数をどう対比してコード化するか
  • デフォルトでtreatment codingになっていて、明示的にコーディングのことを説明する必要があるsum codingの場合を、contrast codingと呼ぶ人がいるが、紛らわしいのでやめるべきだとBrehm & Aldayは言っている。

 二種類のコード化

treatment coding (treatment contrast)


  • デフォルトはこちらになっている
  • 参照レベルに 0 を、もう一方に 1 をわりあてる
  • 切片は、すべて 0 の状態の値
  • 二要因ある場合、効果は、一方が 0 の時の効果を示す
    • 特定のレベル(0)の時の効果なので「単純主効果」に相当する

sum coding (sum contrasts)


  • contr.Sum() で設定する
  • 一方を -1 に、もう一方を 1 にする
  • 「参照レベル」は、各要因の平均
  • 切片は、総平均(grand mean)

 Brehm and Alday (2022) Contrast coding in a decade of mixed modelsの具体例

要因A (Utensils)
要因B (Foods)

従属変数 RT(食べる速さ(分))

Utensilsの主効果はないが、単純主効果がある(食べ物による)

lme4: mixed model
car: contrastsの設定
jtools: 結果出力
kableExtra: 結果出力

contrasts() でコントラストがどうなっているか表示

  • デフォルトは、treatment codingで、0, 1
  • アルファベットの若いレベルが0で、referenceとなる
  • interceptは、ゼロのほうにセットされる。
    • この場合は、ForkでSaladの場合

contrasts(ds$Utensils)

      Spoon
Fork      0
Spoon     1

contrasts(ds$Foods)
      Soup
Salad    0
Soup     1