はじめに
さて、そろそろ当初の目的である、自分の弱点を分析してどこを改善すれば良いかの指針を得るためのデータ分析に入ります。
まず基本的なところで、パー3、パー4、パー5での得意不得意を分析してみます。
【仮説】パー3は得意でパーオン率も一番いい
感覚的にパー3は大きく叩くことも少なくて、バーディもパー3でしかとったことないような気がします。さて、実際はどうでしょうか?
パー3、4、5別の傾向分析
まずは、 パー3、4、5別に平均オーバー数、パーオン率、平均パット数を算出してみます。
ソースコード:
# 1. データの集計とグラフ用データの作成
df_plot <- JoData %>%
filter(Par %in% c(3, 4, 5)) %>%
mutate(
パー表記 = paste0("パー", Par),
パーオン = (Score - Putt) <= (Par - 2)
) %>%
group_by(パー表記) %>%
summarise(
"① 平均オーバー数" = mean(Result, na.rm = TRUE),
"② パーオン率 (%)" = mean(パーオン, na.rm = TRUE) * 100,
"③ 平均パット数" = mean(Putt, na.rm = TRUE)
) %>%
pivot_longer(cols = c(starts_with("①"), starts_with("②"), starts_with("③")), names_to = "指標", values_to = "数値")
# 2. 3つ並べてグラフを描画
ggplot(df_plot, aes(x = パー表記, y = 数値, fill = パー表記)) +
geom_bar(stat = "identity", width = 0.5, show.legend = FALSE) +
geom_text(aes(label = round(数値, 2)), vjust = -0.5, fontface = "bold") +
scale_fill_brewer(palette = "Set2") +
facet_wrap(~ 指標, scales = "free_y", nrow = 1) +
labs(title = "パー別のスコア比較", x = "", y = "") +
theme_minimal() +
theme(
panel.spacing = unit(2, "lines"),
plot.title = element_text(hjust = 0.5, face = "bold", size = 20),
strip.text = element_text(face = "bold", size = 14),
text = element_text(family = "Hiragino Sans"),
panel.border = element_rect(color = "grey70", fill = NA, size = 1.0)
)
出力結果:
出力された3つのグラフを並べて比較すると、予想通りのところとそうでもないところがありました。
1. やはりパー3は得意だった
「パー3は得意でパーオン率も一番いい」という仮説は完全な正解でした。他に比べて平均オーバー数も少なく、パーオン率は約2倍という高い数値を記録しており、スコアが安定しているという感覚もデータによって裏付けられました。
2. パッティングはパーに関わらず高水準
パー数が変わっても、平均パット数はほとんど変化していません。つまり、「どのホールでもグリーンに乗った後は安定して2パット前後で上がれている」ということです。このデータからパッティングが安定していることが強みのようです。
3. パー4とパー5のパーオン率がほぼ同じ
今回のデータ分析において、最も興味深いギャップがここにあります。一般的にゴルフではパー5の方が、3打目を短いクラブで狙えるためパーオン率が高くなりやすく、平均オーバー数も小さくなる傾向があります。しかし、実際のデータではパー4とパー5の成績がほぼ同じ、むしろパー5の方がパーオン率がわずかに低いという結果になっています。
つまり、パットはそこそこ得意だけど、圧倒的にショットが不得意というか下手くそだということがデータで出てしまった。😅
とにかくショットの精度を上げて、パーオン率を上げないといけない。まさにそこが伸び代で、練習しないといけないポイントですね。
時系列で変化はあるのか?
少し気になるのは、このデータはゴルフを始めてすぐの時期からとっていますので、過去のめちゃくちゃ叩いていたデータも入っています。時間経過でどのような変化があるのか、先ほどのデータを時系列でもみてみます。
ソースコード:
# 1. 月別・パー別の集計とグラフ用データの作成
df_time_series <- JoData %>%
filter(Par %in% c(3, 4, 5)) %>%
mutate(
# Date列から「年-月」を抽出し、日付型に変換
年月 = as.Date(paste0(format(as.Date(Date), "%Y-%m"), "-01")),
パーオン = (Score - Putt) <= (Par - 2),
パー表記 = paste0("パー", Par)
) %>%
# 「年月」と「パー表記」の両方でグループ化して集計
group_by(年月, パー表記) %>%
summarise(
"① 平均オーバー数" = mean(Result, na.rm = TRUE),
"② パーオン率 (%)" = mean(パーオン, na.rm = TRUE) * 100,
"③ 平均パット数" = mean(Putt, na.rm = TRUE)
) %>%
# 左右のグラフ(指標)に分けるために、データを縦長に変形
pivot_longer(
cols = c(starts_with("①"), starts_with("②"), starts_with("③")),
names_to = "指標",
values_to = "数値"
)
# 2. 縦横のマトリックス(3行×3列)でグラフを描画
ggplot(df_time_series, aes(x = 年月, y = 数値, color = パー表記, group = パー表記)) +
geom_line(size = 0.8, show.legend = FALSE) +
geom_point(size = 1.5, show.legend = FALSE) +
scale_color_brewer(palette = "Set2") +
facet_wrap(パー表記 ~ 指標, scales = "free_y", ncol = 3) +
scale_x_date(
date_labels = "%Y年%m月",
date_breaks = "3 months"
) +
labs(title = "パー別・スコアの時系列推移", x = "", y = "") +
theme_minimal() +
theme(
panel.spacing = unit(2, units = "lines"),
plot.title = element_text(hjust = 0.5, face = "bold", size = 20),
strip.text = element_text(face = "bold", size = 14),
text = element_text(family = "Hiragino Sans"),
axis.text.x = element_text(angle = 45, hjust = 1),
panel.border = element_rect(color = "grey70", fill = NA, size = 1.0)
)
出力結果:
時系列データから読み解く現状分析
出力された3行×3列の推移を眺めてみると、感覚とデータにはまたしても面白いギャップがありました。
1. パー4とパー5の進化がすごい
まず一番に目が行くのが、パー4とパー5の「① 平均オーバー数」が綺麗に右肩下がりで減っている点です。
ゴルフを始めた初期(2021〜2022年頃)はパー4で平均3.5オーバー、パー5で2.5オーバーほど叩いていましたが、直近ではどちらも1.0〜1.5オーバー程度まで劇的に改善しています。
2. スコア改善の原動力は「パット数の減少」
では、なぜパー4とパー5のスコアがこれほど良くなったのか?
中央の「② パーオン率」を見ると、実はパー4もパー5も、初期から現在にかけて劇的な右肩上がりにはなっていません(上下の激しいブレを繰り返しています)。
しかし、右列の「③ 平均パット数」を見ると、パー4、パー5ともに初期の2.5〜2.75付近から、直近では1.75〜2.0付近へと見事な右肩下がりを記録しています。
つまり、スコアが良くなった最大の要因は、ショット力の大幅な向上というよりも、パッティング(およびグリーン周りのアプローチ?)の技術が着実に上達し、大叩きを未然に防げるようになったからだと言えます。
3. パー3はすでに成熟期?
一方で得意のパー3は、「① 平均オーバー数」「② パーオン率」「③ 平均パット数」のすべてにおいて、2021年の初期から直近まで大きなトレンドの変化がなく、一定の良い水準をずっと維持しています。最初からある程度高いレベルで安定しており、すでに成熟している状態と言えそうです。
最近の実績データではどうか?
パー別分析を2025年以降のデータのみで行ったらどうなるでしょうか?
ソースコード:
# 1. 【2025年以降】のデータの集計とグラフ用データの作成
df_plot_2025 <- JoData %>%
# ★ 2025年1月1日以降のデータのみにフィルター
filter(as.Date(Date) >= "2025-01-01") %>%
filter(Par %in% c(3, 4, 5)) %>%
mutate(
パー表記 = paste0("パー", Par),
パーオン = (Score - Putt) <= (Par - 2)
) %>%
group_by(パー表記) %>%
summarise(
"① 平均オーバー数" = mean(Result, na.rm = TRUE),
"② パーオン率 (%)" = mean(パーオン, na.rm = TRUE) * 100,
"③ 平均パット数" = mean(Putt, na.rm = TRUE)
) %>%
pivot_longer(cols = c(starts_with("①"), starts_with("②"), starts_with("③")), names_to = "指標", values_to = "数値")
# 2. 3つ並べてグラフを描画
ggplot(df_plot_2025, aes(x = パー表記, y = 数値, fill = パー表記)) +
geom_bar(stat = "identity", width = 0.5, show.legend = FALSE) +
geom_text(aes(label = round(数値, 2)), vjust = -0.5, fontface = "bold") +
scale_fill_brewer(palette = "Set2") +
facet_wrap(~ 指標, scales = "free_y", nrow = 1) +
labs(title = "パー別のスコア比較(2025年以降)", x = "", y = "") +
theme_minimal() +
theme(
panel.spacing = unit(2, "lines"),
plot.title = element_text(hjust = 0.5, face = "bold", size = 20),
strip.text = element_text(face = "bold", size = 14),
text = element_text(family = "Hiragino Sans"),
panel.border = element_rect(color = "grey70", fill = NA, size = 1.0)
)
出力結果:
全体的に数値は良くなっていますが、基本的なトレンドは変わらないようです。ちょっと気になるのは、パー5のパーオン率が悪い。これは最近のショットがより悪いのかもしれません。
まとめ
今回のデータ分析で分かったことは以下です。
- ショートゲーム(パット)の成長: パー4、パー5のスコアを押し上げた立役者。ここは自分の強みとして自信を持って良さそう。
- ショット力(パーオン率)の停滞: スコアは良くなっているものの、パー4・パー5のパーオン率はここ数年5〜25%の間で停滞気味。
今後のスコアをもう一段階縮めるための鍵は、やはり「パー4のセカンドショット」と「パー5のサードショット」の精度向上にあります。
アプローチとパットで耐えるゴルフから、ショットでピンを狙ってパーオンを増やすゴルフへ。データのおかげで、次にやるべき練習が明確になりました!


