## 基本的な違い
**numeric 型**は数値を表すデータ型で、算術演算が可能です。
```r
age <- 25 # numeric型
age + 5 # 30 (演算可能)
```
**factor 型**はカテゴリカルデータを表現する特殊なデータ型です。
```r
blood_type <- factor(c("A", "B", "O", "AB"))
levels(blood_type) # "A" "AB" "B" "O"
```
## 分析における factor 型と numeric 型
分析では、数値変数の扱い方で結果が大きく変わります。
通常は数字は numeric 型 として扱います。
**factor 型として扱うべき場合**
- 質的な違いを表す数値を扱う場合
- 例:性別(女性=1、男性=2など)
- 経時的な測定ポイントの比較をしたい場合
- 例えば臨床試験での 0ヶ月、6ヶ月、12ヶ月のように定期的な測定ポイントでの群間比較をしたいとき。
- 0、6、12ヶ月と直線的に変化をせず、ジグザグに変化するようなときで、6ヶ月での群間比較、12ヶ月での群間比較といった各タイミングでの比較をしたいとき。
```r
# 例:経時的データで月をfactorとして扱う
model_gls_cat <- lmer(GLS ~ GLS_base + LVH_class * factor(month) + (1 + time | id),
data = data_gls_long, REML = TRUE)
```
この例では、`factor(month)`を使うことで:
- 0ヶ月、6ヶ月、12ヶ月など各時点を独立したカテゴリとして扱える
- 各測定時点での群間(LVH_class)の差を検定できる
- 時間経過による変化パターンが群によって異なるかを検出できる
- 線形でない時間効果(例:最初の6ヶ月で急激な変化があり、その後安定する)も捉えられる
もし、`month` を `numeric` として扱うと、直線的に変化するというモデリングになります。そのため、0→6→12ヶ月と直線的に変化します。0ヶ月が 5、6ヶ月が 10 であれば、12ヶ月は必然的に 15 となるようなモデリングです。
具体的な回帰での違いは [[R - factor と numeric の回帰分析での違い]] で勉強してください。