K_DM Book
用語集
対象者 高校生
対象者別の入口 →

対象者の設定はこのブラウザの中にだけ保存されます。

言語 JA

パーセント変化の推移(高校生向け)

入門高校生

04.1.3 高校生向け

パーセント変化の推移(高校生向け)

最終更新 2026-11-01 読了時間 2 分
まとめ
パーセント変化(増減率)は、「前の日からどれだけ増えたか」を前の日の値を基準にした割合(%)で表したもので、1000 人が 1050 人になれば +5 %、100 人が 120 人になれば +20 % です。元の値の大きさに関係なく比べられるので、規模の違うお店や部活のアカウントの「勢い」を同じ土俵で見られます。毎日の増減率を棒グラフにすると棒はプラスとマイナスが入り乱れますが、そこに 14 日分を平均した移動平均の線を重ねると、ちらつきが消えて「勢いの向き」が読めます。棒が極端に長い日は、キャンペーンやニュースのようなイベントが起きた合図です。

こんな場面を想像してみよう #

野球部の SNS アカウントは 1 日でフォロワーが 1000 人から 1050 人に、文芸部は 100 人から 120 人に増えました。増えた人数は野球部が 50 人、文芸部が 20 人。でも「勢いがあるのはどっち?」と聞かれたら、20 人増の文芸部と答えたくなりませんか。増え方は野球部 5 %、文芸部 20 %。この「前の日を基準にした割合」がパーセント変化です。

これを毎日計算して並べたのが下の図です。

横軸が日付、縦軸が変化率(%)。日ごとの増減率が 0 の線をはさんで上下に伸びる水色の棒で描かれ、その上に 14 日移動平均の赤い線が重なって勢いの向きを示している

水色の棒 1 本が 1 日分の増減率で、0 の線より上なら増えた日、下なら減った日。棒は毎日プラスとマイナスを行ったり来たりして、流れが読めません。そこで赤い線——14 日分の増減率を平均した移動平均——を重ねると、線が 0 より上にいる時期は「伸びている」、下に沈む時期は「縮んでいる」とわかります。

仕組み:前の日を基準に割合を出す #

最初にやるのは、前の日との差を、前の日の値で割ることです(100 → 110 なら 10 ÷ 100)。日 \(t\) の増減率は次の式になります。

$$ r_t = \frac{x_t - x_{t-1}}{x_{t-1}} \times 100\ (\%) $$

次に、この計算を毎日くり返して棒グラフにします。最初の日は「前の日」がないので計算できず、棒は 2 日目から始まります。0 の線を引くと、棒が 0 より上か下かが増えたか減ったかの境目になります。そのうえで直近 14 日分の増減率の平均を線にして重ねると、日ごとのプラスとマイナスが打ち消され、ゆっくり動く「勢いの向き」だけが残ります。最後に、他の日より明らかに長い棒(たとえば他が ±3 % なのに 1 本だけ +12 %)を探します。極端な棒は、キャンペーンやニュースなど外からの出来事を疑う手がかりです。

100 → 110 → 99 → 108 → 120 を増減率にすると、+10 %、−10 %、+9.1 %、+11.1 % です。次の 3 行は、この計算を隣り合う 2 日ずつに対してくり返します。

1
2
3
values = [100, 110, 99, 108, 120]
for a, b in zip(values[:-1], values[1:]):
    print(a, "->", b, ":", round((b - a) / a * 100, 1), "%")

動かして見てみよう #

下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。

気をつけたいこと #

いちばん多い誤解は、基準が小さいと率が暴れることを忘れることで、フォロワーが 1 人から 2 人になれば +100 % なので、元の値が小さい時期の増減率は見た目ほどの意味を持ちません。二つ目は、増減率は上下で対称ではないという点で、+10 % のあとに −10 % でも元には戻りません(100 → 110 → 99)。増減率の単純な足し算で「合計で何 % 増えた」とは言えないのです。三つ目として、元の値が 0 や負だと計算できないので、分母が 0 になる日や、気温のように負の値をとるデータには向きません。最後に、率だけ見ると 20 人・50 人という量を忘れます。文芸部の +20 % は 20 人、野球部の +5 % は 50 人なので、率と量の両方を見ます。

やってみよう #

最初の課題は、自分の身長や小遣いの年ごとの値を 5 年分思い出して書き、前年比の増減率を計算して、いちばん勢いがあった年はいつか考えることです。二つ目は、身の回りで「量ではなく率で比べるべきもの」を 2 つ探すことで、クラスごとの図書館利用者数の伸びや、人口の違う市どうしの来場者数の変化などが候補になります。三つ目は、100 → 50 → 100 の増減率を計算し、−50 % と +100 % の平均が 0 にならないことを確かめて、元に戻ったのに平均が 0 でない理由を説明することです。

つぎに読む #

pct_change() と rolling() を使った計算と描画は 標準版のパーセント変化の推移 で扱っています。数式なしで「前の日を 100 としたらいくつか」という割合の考え方から読む 中学生向けの解説 もあります。元の値の折れ線で全体像をつかむ方法は 日次データの基本プロット(高校生向け)、重ねた移動平均の線が何をしているかは 移動平均と移動標準偏差(高校生向け) で説明しています。