初めて統計解析の演習では、t検定 をやってみることが多いと思います。
その後、対応のある t検定 に進んだとき、データのフォーマットが違うことに気づきます。
当たり前のことですし、ちゃんと「データには Long Format と Wide Format があってね、...」と教わると解決するのですが、初心者の初つまづきポイントかもしれません。
この記事では、Long Format と Wide Format について説明すると同時に、相互変換の方法をお示ししておきます。
大体の統計ソフトには変換機能がついていますし、当然 R でもできますが、弊社の提供する、ブラウザだけで使える無料統計ソフト Reactive stat でも、簡単にわかりやすく変換ができます。
Reactive stat であればインストールの手間もありませんし、日本語データにも対応していますので、ぜひご活用ください。
Long Format と Wide Format の違いと用途
データフォーマットの比較
基本的な違い
Wide Format | Long Format | |
---|---|---|
特徴 | - データが横に広がります。 - 各行が1つの対象(例:人や製品)を表します。 - 各列が異なる変数や測定項目を表します。 |
- データが縦長に並んでいます。 - 各行が1つの観測や測定を表します。 - 変数の種類を示す列と、その値を示す列があります。 |
他の表現 | - Unstacked Format - Spreadsheet Format - Horizontal Format - Cast Format - Untidy Format |
- Stacked Format - Tall Format - Narrow Format - Melted Format - Vertical Format - Tidy Format |
日本語での表現 | - ワイド形式 - 横長形式 - 横持ち形式 - 横型データ - ワイド形式 - 非整然データ |
- ロング形式 - 縦長形式 - 縦持ち形式 - 縦型データ - ロング形式 - 整然データ |
具体例(数学と英語のテスト結果)
Wide Format | Long Format | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Wide Format が適切な解析手法の例
- 対応のある群間検定 (対応のあるt検定、Wilcoxon の符号順位検定 など)
- 例: 同じ生徒の数学の点数を、ある教育方法の実施前と後で比較する。
- 理由: 各生徒の前後の測定値が同じ行にあり、個人内の変化を直接比較しやすい。
- 多変量解析
- ANOVA、ロジスティック回帰、ANCOVA、重回帰分析、多変量分析、主成分分析 (PCA)、因子分析 など。
- 例:
- ANOVA (多元配置分散分析): 学年、性別、学習方法が試験成績に与える影響を同時に分析する。
- ロジスティック回帰モデル: 生徒の属性 (年齢、学習時間、出席率) から合格/不合格を予測する。など
- 理由:
- 複数の変数間の関係を同時に分析し、交互作用や複雑なパターンを検出できる。
Long Format が適切な解析手法の例
- 対応のない群間検定(t検定、Mann-Whitney U検定 など)
- 例: 異なる2つのクラスの数学の点数を比較する。
- 理由: 各観測値が独立した行にあり、群 (クラス) 間の比較がしやすい。
- 混合効果モデル
- 例: 生徒の成績に対する、教師の影響と生徒個人の特性の影響を分離して分析する。
- 理由: 個人内変動と個人間変動を同時に扱えるため。
相互変換方法
Wide format から Long Format に変換
- 手順
- 各列名の異なる変数や測定項目を、それぞれ新しい行に分けます。
- 変数の名前や測定項目を示す新しい列を作成します。
- 注意事項
- データ量が増えるため、行数が多くなり、データ管理が煩雑になる可能性があります。
- 変数や測定項目が多い場合、変換後のデータセットが非常に大きくなることがあります。
Long format から Wide Format に変換
- 手順
- 各観測の変数や測定項目を、新しい列として分けます。
- 変数の値を、それぞれ新しい列に配置します。
- 注意事項
- 変数や測定項目が多い場合、列数が増えてデータ構造が複雑になることがあります。
- 多くの欠損値がある場合、解釈が困難になることがあります。
R での変換
rdrr にコピペして簡単に試せます。
# サンプルデータの作成(Wide Format)
wide_data <- data.frame(
name = c("Taro", "Hanako", "Jiro"),
math = c(80, 85, 70),
english = c(75, 90, 80)
)
cat("Wide Format:")
print(knitr::kable(wide_data))
# Wide Format から Long Format への変換
long_data <- tidyr::pivot_longer(wide_data,
cols = c(math, english),
names_to = "subject",
values_to = "score")
cat("\nLong Format:")
print(knitr::kable(long_data))
# Long Format から Wide Format への変換
wide_data_back <- tidyr::pivot_wider(long_data,
names_from = subject,
values_from = score)
cat("\nWide Format (after conversion):\n")
print(knitr::kable(wide_data_back))
結果
Wide Format:
|name | math| english|
|:------|----:|-------:|
|Taro | 80| 75|
|Hanako | 85| 90|
|Jiro | 70| 80|
Long Format:
|name |subject | score|
|:------|:-------|-----:|
|Taro |math | 80|
|Taro |english | 75|
|Hanako |math | 85|
|Hanako |english | 90|
|Jiro |math | 70|
|Jiro |english | 80|
Wide Format (after conversion):
|name | math| english|
|:------|----:|-------:|
|Taro | 80| 75|
|Hanako | 85| 90|
|Jiro | 70| 80|
Reactive stat での変換
Reactive stat は、ブラウザだけで使える無料統計ソフトです。信頼性の高い R で統計解析を行い、その結果を AI が解説します。PC にソフトウェアをインストールする必要がなく、インターネット接続があればどこでも利用できます。
以下のリンクが、フォーマット変換のページになります。
ボタンを押せば、サンプルデータと設定を呼び出せるように用意してあります。
まとめ
- Wide Format は、同じ対象の複数の特性を同時に比較したり、全体的なパターンを見出したりする際に適しています。
- Long Format は、時間経過による変化や、複雑な階層構造を持つデータを分析する際に適しています。