LoginSignup
0
0

初めて統計解析の演習では、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
名前 数学 英語
太郎 80 75
花子 85 90
次郎 70 80
名前 科目 点数
太郎 数学 80
太郎 英語 75
花子 数学 85
花子 英語 90
次郎 数学 70
次郎 英語 80

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 にコピペして簡単に試せます。

R
# サンプルデータの作成(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))

結果

TEXT
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 にソフトウェアをインストールする必要がなく、インターネット接続があればどこでも利用できます。

Reactive stat バナー

以下のリンクが、フォーマット変換のページになります。

image.png ボタンを押せば、サンプルデータと設定を呼び出せるように用意してあります。

まとめ

  • Wide Format は、同じ対象の複数の特性を同時に比較したり、全体的なパターンを見出したりする際に適しています。
  • Long Format は、時間経過による変化や、複雑な階層構造を持つデータを分析する際に適しています。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0