Topic 15
グループごとの割合比較:積み上げ棒グラフ+比率表
Group proportion comparison with stacked bar chart and proportion table
グループごとに回答割合がどう違うかを見せたいときの基本テーマです。検定の前段階として『どの群でどの回答が多いか』を可視化し、必要に応じてカイ二乗検定へつなげます。
このページでは、Control・Workshop・Coaching の3群における回答割合を、比率表と100%積み上げ棒グラフで整理します。平均値の比較ではなく、カテゴリ回答の構成比を比較したい場面を想定したページです。
割合比較は、それ自体は主に記述的な可視化です。『どの群で高評価が多いか』を見せたうえで、統計的な関連の有無を検討したいときはカイ二乗検定のページへ接続できるようにしています。
このページのゴール
- 人数ではなく構成比で群差を見る理由を説明できるようになる
- count() と prop.table() を使って群ごとの比率表を作れるようになる
- 100%積み上げ棒グラフを読んで、どの群でどのカテゴリが多いかを要約できるようになる
- 必要に応じてカイ二乗検定へつなぐ導線を理解する
Start here
まず押さえる4つのポイント
1. 割合比較は「構成」を見る
平均値の比較ではなく、各群の中で回答がどう分かれているかを見るテーマです。群の人数が違っても、構成比なら比較しやすくなります。
2. まず人数表、その後に割合表
いきなりグラフを描くより、まず count() で人数表を作り、次に群内割合へ直すと読み違いが減ります。
3. 100%積み上げ棒は比率比較に向く
各群を同じ高さにそろえて描けるので、群内の高評価・中間・低評価のバランスを一目で確認できます。
4. 推測統計が必要ならカイ二乗検定へ
このページの中心は記述です。関連の有無まで検討したい場合は、クロス集計表を用いたカイ二乗検定へ進みます。
Basics
何を見ているのか
割合比較は、群ごとにカテゴリの構成比がどう違うかを整理するためのページです。例えば介入方法の違いで高評価の割合が増えているか、否定的回答が減っているかといった実務的な問いに向いています。
このページの立ち位置
割合比較は、それ自体が必ずしも検定ではありません。まず どの群でどのカテゴリが多いか を可視化し、必要に応じて カイ二乗検定 で統計的な関連を確認します。
- 目的:群ごとの構成比の違いを見せる
- 主な出力:人数表、割合表、100%積み上げ棒グラフ
- 発展先:カイ二乗検定、Likert尺度集計、順序ロジスティック回帰
今回の例
3つの支援方法(Control, Workshop, Coaching)ごとに、成果の自己評価を「低い / 中程度 / 高い」で回答してもらったという設定です。Coaching 群ほど「高い」が多いかを、まず図と表で整理します。
Checks
見る前に確認したいこと
群サイズの違い
人数が大きく違う群を、そのまま人数で比較すると誤解しやすくなります。棒の高さを比率へ直す理由はここにあります。
カテゴリの順序
「低い → 中程度 → 高い」のように順序がある回答は、その順序を保ったまま並べます。棒の色も低→高でそろえると読みやすくなります。
推測統計の要否
見せるだけなら比率表で十分ですが、「偶然ではない差か」まで述べるなら、カイ二乗検定など推測統計も必要です。
Data structure
今回のサンプルデータ
各行が1人分の回答です。group が所属群、response が3水準のカテゴリ回答です。
人数表
| group | 低い | 中程度 | 高い |
|---|---|---|---|
| Coaching | 4 | 8 | 24 |
| Control | 12 | 14 | 10 |
| Workshop | 6 | 12 | 18 |
群内割合表
| group | 低い | 中程度 | 高い |
|---|---|---|---|
| Coaching | 11.1% | 22.2% | 66.7% |
| Control | 33.3% | 38.9% | 27.8% |
| Workshop | 16.7% | 33.3% | 50.0% |
Coaching 群では「高い」が 66.7%、Control 群では 27.8% でした。Workshop 群はその中間に位置します。
Code
Rコード
人数表 → 比率表 → 100%積み上げ棒グラフ、の順で作ると流れが分かりやすくなります。
library(dplyr)
library(ggplot2)
library(scales)
df <- read.csv("sample-data/sample_group_proportion_comparison.csv")
# 1) 群 × 回答の人数表
count_tbl <- df |>
count(group, response)
# 2) 群内割合を計算
prop_tbl <- count_tbl |>
group_by(group) |>
mutate(prop = n / sum(n))
count_tbl
prop_tbl
ggplot(prop_tbl, aes(x = group, y = prop, fill = response)) +
geom_col(position = "fill", width = 0.7) +
scale_y_continuous(labels = percent_format()) +
labs(
x = "Group",
y = "Proportion",
fill = "Response",
title = "Response proportions by group"
) +
theme_minimal(base_size = 13)
Output
表のどこを読むか
人数と割合の両方を持っておくと、視覚的な印象と実際の件数を対応づけやすくなります。
高評価の割合
高評価の割合
高評価の割合
p = 0.017
この表から言えること
Control 群では回答が「低い・中程度・高い」に比較的ばらけている一方、Coaching 群では「高い」が 3分の2 を占めています。Workshop 群はその中間で、高評価の割合が 50.0% でした。
今回は説明のためにカイ二乗検定も計算すると χ²(4) = 12.07, p = 0.017 で、群と回答分布の関連が示唆されました。ただし、このページの主役はあくまで 可視化と要約 です。
Figure reading
100%積み上げ棒グラフをどう読むか
図1 グループごとの回答割合を示す100%積み上げ棒グラフ
Figure 1. 100% stacked bar chart of response proportions by group.
同じ高さで比べる
各棒の高さが100%で固定されているので、人数ではなく構成比の違いに集中できます。
高評価帯の幅を見る
今回は右側の「高い」セグメントが、Control → Workshop → Coaching の順に広がっています。
中間カテゴリも無視しない
高評価だけでなく、「中程度」がどのくらい残っているかを見ると、回答分布の移り方を丁寧に表現できます。
検定とは役割が違う
図は差の大きさと方向を示す道具です。p 値の代わりにはならないので、必要ならカイ二乗検定を併記します。
Report writing
レポートや論文での書き方
Japanese
結果記述例(日本語)
各群の回答割合を比較したところ、Coaching 群では「高い」の回答が最も多く(66.7%)、Workshop 群(50.0%)、Control 群(27.8%)の順で高評価の割合が高かった。図1の100%積み上げ棒グラフは、支援方法によって回答分布の構成が異なることを示している。
English
Report writing example
The response proportions differed across groups. The Coaching group showed the highest proportion of “high” ratings (66.7%), followed by the Workshop group (50.0%) and the Control group (27.8%). Figure 1 illustrates these differences using a 100% stacked bar chart.
Caption
図表キャプション例
図1 3群における回答割合の比較(100%積み上げ棒グラフ)
Figure 1. Response proportions across the three groups (100% stacked bar chart).
Common mistakes
よくあるミス
人数差をそのまま群差だと思う
人数が多い群ほど棒が高く見えるのは当然です。群比較の目的なら、まず比率で見ます。
カテゴリの並び順が毎回違う
色の順序がページごとに変わると読み手が迷います。低→高、否定→肯定の順を固定するとよいです。
可視化だけで有意差を断定する
棒の見た目が違っても、統計的な検定をしていなければ「有意に異なる」とは書けません。
FAQ
初心者が迷いやすい点
Q. 積み上げ棒グラフと100%積み上げ棒グラフはどう使い分けますか?
A. 人数の差を見せたいなら通常の積み上げ棒、群内構成比を比較したいなら100%積み上げ棒が向いています。
Q. 比率表だけでも十分ですか?
A. はい。厳密な数値を読ませたいときは表が有効です。図は傾向をつかみやすくする補助と考えると整理しやすいです。
Q. このまま p 値も出せますか?
A. できます。群と回答の関連を検討したい場合は、クロス集計表に対して chisq.test() を使うのが基本です。
代替手法
代替手法・次の一歩
「人数や割合を見せたい」のか、「群間差を推測統計で評価したい」のかで、次に進む手法が変わります。図だけで足りる場面と、検定やモデルが必要な場面を切り分けるのがポイントです。
カイ二乗検定
群と回答カテゴリの関連を p 値つきで確認したいときの標準的な次の一歩です。クロス集計表と期待度数も合わせて点検できます。
Likert プロット
回答カテゴリが 5 段階以上で、複数項目をまとめて比較したいときは、Likert 尺度向けの可視化の方が読みやすくなります。
順序ロジスティック回帰
回答カテゴリに順序があり、さらに背景要因も同時に扱いたいときは、単純な割合比較よりモデルベースの方法が向いています。
参考資料
参考資料
このページは、割合表の作成と積み上げ棒グラフの作図に直接つながる公式ドキュメントを中心に整理しています。まずは人数表と比率表を作る関数、その次に 100% 積み上げ棒グラフの描画関数を押さえると学びやすくなります。
集計と割合の基本
人数表を作ってから割合へ直す流れを押さえると、図表と本文の数字が一致しやすくなります。
可視化
- ggplot2: geom_bar() / geom_col() reference
- ggplot2: position_fill() / stacked positions
- scales: percent_format() / label_percent() reference
100%積み上げ棒グラフでは、position = "fill" と割合表示の整え方を一緒に確認すると実装しやすくなります。
運営と利用上の注意
このページの位置づけ
本サイトのトピックページは、Rによるデータ分析の学習支援とレポート作成の補助を目的としたオリジナル解説です。サンプルデータとコードは再現練習用に作成しているため、実データを扱う際には研究計画・前提条件・欠測・外れ値・尺度水準をあらためて確認してください。
編集方針
ページ本文は、標準的な統計手法、Rの公式ドキュメント、一次資料に近い参考文献を優先して整理しています。更新や訂正の方針は編集方針ページで公開しています。