指数と増減率|関数・指数・対数・総和

このページはプロモーション(広告)を含みます。

関数・指数・対数・総和(初級・読む22分+演習30分)

この授業のゴール

仕事でどう使うか

売上、ユーザー数、感染者数、利息、機械学習の学習率の減衰など、実務の多くの量は割合で増減します。足し算ではなく掛け算で進むため、直感とずれやすい分野です。

路線 この授業の使いどころ
DS(データサイエンティスト) 月次成長率(CMGR:Compound Monthly Growth Rate、月次複合成長率)の計算、予測の前提確認。「毎月10%増」を足し算で見積もる誤りを防ぐ
ML(機械学習エンジニア) 学習率を毎エポック0.9倍にする減衰、重みの指数移動平均。n回後の大きさを式で見積もる
DX(DX推進・AI企画) 投資対効果の試算、コスト削減率の積み上げ。KPI定義書に「率」の基準(前月比か前年比か、割合かパーセントポイントか)を書く
RS(研究者) 指数成長・減衰のモデル(細菌数、放射性崩壊)。実測値が指数に従うかを、次の授業の対数で検証する

「年間成長率を月に直すといくらか」「割引を重ねた最終価格は」は、会議でよく聞かれる質問です。

前提

次の知識を使います。

電卓か、画面内のPythonで計算できます。** は累乗(べき乗)の記号で、1.1**2 は $1.1^2$ です。

身近な状況:10%ずつ増える売上と、10ずつ増える売上

月の売上が100万円の店が2つあります。

月 A店(万円) B店(万円)
0 100 100
1 110 110
2 120 121
3 130 133.1
10 200 約259.4

1か月後は同じ110万円です。しかし2か月後、B店は 110 の10%(11万円)が増えて 121万円 になります。A店のように120万円ではありません。増える量が、その時点の大きさに比例するためです。

「10%を2回で20%増」ではなく、「1.1を2回掛けて1.21倍=21%増」です。この授業では、この掛け算の増え方を式で書きます。

直感的な説明:増減率は「倍率」に直して掛ける

増減率 $r$ を倍率に直すと、計算が単純になります。

倍率を掛けるだけなので、「10%増を2回」は $\times1.1\times1.1$、つまり $1.1$ を2回掛ける=2乗です。「同じ数を何回掛けたか」を書くための記法が指数です。

増加と減少も同じ式で表せます。5%減を3回なら $0.95$ を3回掛けます。割合で動く量は、倍率の累乗で追いかけると覚えてください。

正確な定義:累乗・指数法則・複利の式

累乗(冪、べき):$a^n$ は $a$ を $n$ 回掛けた値です。$a$ を底(てい)、$n$ を指数と呼びます。$n$ は正の整数のとき $a^n=\underbrace{a\times\cdots\times a}_{n\text{個}}$ です。

$2^3=2\times2\times2=8$、$1.1^2=1.21$ のように計算します。

指数を0や負の数に広げても、次の指数法則が成り立つように定義します。ここで $a>0$、$m,n$ は整数です。

法則 式 数値例
積 $a^m\times a^n=a^{m+n}$ $2^3\times2^2=8\times4=32=2^5$
累乗の累乗 $(a^m)^n=a^{mn}$ $(2^3)^2=64=2^6$
0乗 $a^0=1$ $5^0=1$
負の指数 $a^{-n}=1/a^n$ $2^{-3}=1/8=0.125$
分数の指数 $a^{1/2}=\sqrt{a}$ $9^{1/2}=3$

$a^0=1$ は、$a^3\div a^3=a^{3-3}=a^0$ と、$a^3\div a^3=1$ が一致するように決めたものです。$0^0$ や、負の底での分数の指数は扱いが難しいので、以降は底 $a>0$ とします。

増減率の式:初期値を $A$、1回あたりの増減率を $r$(10%なら $0.10$)、回数を $n$ とすると、$n$ 回後の値 $V_n$ は

$$V_n=A(1+r)^n$$

です。$A$ は元の量(単位は量と同じ)、$r$ は1回あたりの率(無単位)、$n$ は回数(整数)です。$r$ の期間(月か年か)と $n$ の単位(か月か年か)を必ず揃えます。

数値代入:$A=200$、$r=0.05$、$n=3$ なら $V_3=200\times1.05^3=200\times1.157625=231.525$ です。

A, r, n = 100, 0.10, 10
exp_value = A * (1 + r) ** n      # 指数: 倍率を n 回掛ける
lin_value = A + A * r * n         # 線形: 毎回 A*r を足す
print("指数:", round(exp_value, 2))
print("線形:", round(lin_value, 2))

出力は 指数: 259.37 と 線形: 200.0 です。round(値, 2) は小数第2位に丸める関数です。

段階付き例題:割引の連続、成長率の換算

例題1:1000円の商品を「20%引き」にした後、さらに「10%引き」にした。最終価格と、全体の割引率は。

例題2:月に2%ずつ増えるなら、1年(12か月)で何%増か。

例題3:登録率が5%から8%になった。

price = 1000
final = price * 0.8 * 0.9
print("最終価格", final, "全体の割引率", 1 - final / price)
print("月2%の12か月", (1.02 ** 12 - 1) * 100)
print("pp差", 8 - 5, "変化率", (8 - 5) / 5)

出力は 720.0 と約0.28、約26.82、3 と 0.6 です(小数の下の桁は丸め誤差で多少ずれます)。

操作して理解する:回数と率を変えて線形と比べる

次のコードで r(率)と n(回数)を変えて、線形との差がどう広がるか確認します。出力は各回の値の一覧です。

A, r = 100, 0.10
for n in [0, 1, 2, 5, 10, 20, 30]:
    exp_v = A * (1 + r) ** n
    lin_v = A * (1 + r * n)
    print(n, round(exp_v, 1), round(lin_v, 1))

予想してから実行しましょう。

成長や減衰が割合で決まるのか、一定量で決まるのかを、まずデータで確認します。差分(前回との差)が一定なら線形、比(前回との比)が一定なら指数です。

発展:倍増時間の目安と、指数成長の限界

率 $r$ で成長する量が2倍になる回数は $n$ を $(1+r)^n=2$ から求めます。この $n$ を求める操作は対数が必要で、対数と桁 で扱います。目安として、70÷(率を%で表した値)がおおよその倍増回数になります(72の法則に近いものです。厳密な式ではなく、小さな率での近似です)。

例:7%成長なら、$70\div7=10$ 回でほぼ2倍。実際は約10.24回です。

限界:実際の量は、いつまでも指数で増えません。市場の大きさ、容量、人口などの上限があり、後には成長が鈍ります(S字型のロジスティック曲線)。「今の成長率が続けば」という前提を、予測には必ず書きます。

もう一点:率が時間によって変わる場合(月ごとに2%、5%、−1%)は、$V_n=A\prod(1+r_i)$ と各回の倍率を掛け合わせます(積の記号は 総和と総乗の記号)。平均の率を足して使うと、結果がずれます。

よくある失敗

失敗1:増減率を足して合計する

「10%増を2回だから20%増」は誤りです。

A = 100
wrong = A * (1 + 0.10 * 2)    # 20%増として計算
right = A * 1.10 ** 2         # 1.1を2回掛ける
print(wrong, round(right, 2))

誤りは120、正しくは121です。2回目の10%は、110に対する10%です。回数が増えるほど差が大きくなります。直し方:率は倍率 $(1+r)$ に直して累乗する。

失敗2:20%減と20%増で元に戻ると考える

100を20%減らして80にし、その後20%増やしても、元の100には戻りません。

v = 100 * 0.8        # 20%減
v2 = v * 1.2         # 20%増
print(v, round(v2, 2))
print("元に戻す倍率", 1 / 0.8)

結果は96です。20%増は「80に対する20%」で、16しか増えません。元に戻すには $1/0.8=1.25$ 倍(25%増)が必要です。直し方:増減は基準が違う。戻す操作は逆数の倍率で考える。

失敗3:パーセントとパーセントポイントを混同する

購入率が20%から25%に上がったとき、「5%上がった」と報告すると、相対的な5%増(20%の5%=1ポイント分)と取られる可能性があります。

before, after = 0.20, 0.25
print("差(pp):", round((after - before) * 100, 2))
print("変化率(%):", round((after - before) / before * 100, 2))

差は5パーセントポイント、変化率は25%です。直し方:割合どうしの差は「ポイント」、元の値との比較は「%増」と書き分ける。KPI定義書では、どちらで報告するかを事前に決める。

まとめ

用語

累乗(べき乗)(power)

同じ数を繰り返し掛けること。a^n は a を n 回掛けた値。

底と指数(base / exponent)

a^n の a を底、n を指数という。

複利(compound interest)

増えた分にも次の期の率がかかる増え方。V=A(1+r)^n。

パーセントポイント(percentage point)

割合どうしの差を表す単位。5%から8%は3ポイント。

よくある質問

なぜ「率を足す」ではなく「倍率を掛ける」のですか?

各回の増加は、その時点の量に対する割合だからです。基準が毎回変わるので、率は足せません。倍率を掛けるとどの回数でも正しい結果が出ます。

指数と線形はどう見分けますか?

データの隣り合う値の差と比を計算します。差が一定なら線形、比が一定なら指数です。グラフでは、通常の軸で曲がって見え、対数軸にすると直線になるのが指数です(次の授業)。

$a^0=1$ はなぜですか?

指数法則 $a^m\div a^n=a^{m-n}$ が $m=n$ でも成り立つようにするためです。$a^3\div a^3$ は1なので、$a^0=1$ と決めると法則が壊れません。

前年比と前月比の違いは?

基準期間が違います。前年比は1年前と比べる率、前月比は1か月前と比べる率です。KPIに書くときは、基準期間と、割合かポイント差かを明記します。

予測で「今の成長率が続く」と仮定してよいですか?

短期の目安には使えますが、長期は危険です。市場規模などの上限があるので、前提を明記し、複数の成長率(楽観・標準・悲観)で試算するのが実務の基本です。

マイナスの率(減少)も同じ式でよいですか?

はい。$r=-0.1$ なら倍率 $0.9$ で、同じ $A(1+r)^n$ を使います。ただし $r\le-1$ は倍率が0以下になり、量が残らない(または負)ことを意味するので、現実の量では通常使いません。

確認問題

問1 毎月10%ずつ増える量は、3か月後に元の何倍か。

  1. ① 1.3倍
  2. ② 1.1×3=3.3倍
  3. ③ 約1.331倍
  4. ④ 約1.21倍
解答と解説

正解:③

1.1を3回掛けて $1.1^3=1.331$ 倍です。10%ずつを足した30%増(1.3倍)ではありません。

問2 100を20%減らし、その後20%増やした結果は。

  1. ① 100
  2. ② 96
  3. ③ 104
  4. ④ 80
解答と解説

正解:②

$100\times0.8=80$、$80\times1.2=96$ です。増加の基準が80に変わるため、元には戻りません。

問3 $2^{-3}$ の値はどれか。

  1. ① −8
  2. ② −6
  3. ③ 0.125
  4. ④ 8
解答と解説

正解:③

$a^{-n}=1/a^n$ なので $2^{-3}=1/8=0.125$。負の指数は「負の数になる」のではなく、逆数を表します。

問4 登録率が5%から8%になったことを正しく述べているのはどれか。

  1. ① 8%増えた
  2. ② 60パーセントポイント増えた
  3. ③ 3%増えた
  4. ④ 3パーセントポイント増えた(相対では60%増)
解答と解説

正解:④

割合どうしの差は3パーセントポイントです。元の5%に対する変化率は60%増です。

問5 毎月2%で成長するとき、1年の成長率に最も近いのはどれか。

  1. ① 約26.8%
  2. ② 2%
  3. ③ 12%
  4. ④ 24%
解答と解説

正解:①

$1.02^{12}\approx1.268$ なので約26.8%増です。2%×12=24%は複利効果を落とした値です。

問6 毎回の変化を前回との差で見て、差が一定のとき、データはどちらのモデルに近いか。

  1. ① 線形(足し算)
  2. ② 指数(掛け算)
  3. ③ どちらでもない
  4. ④ 判断できない
解答と解説

正解:①

前回との差が一定なら線形、前回との比が一定なら指数です。

次に学ぶこと

次は 対数と桁 で、「何回掛ければその値になるか」を求める対数を学びます。倍増に何年かかるかも対数で求められます。戻るなら 関数・逆関数・合成(合成)、先に進むなら 数列と等比級数(等比級数)も関連します。

この授業の確認問題だけで習得とはしません。MA01 の総合テストと自力課題で判定します。

キャリア学習:データサイエンティスト・機械学習エンジニア・DX推進・研究者を目指す人の学習アプリ。164モジュール・984授業を、ブラウザで動くSQLとPythonの演習で。基礎と各分野の最初のモジュールは無料。全部は2,980円の買い切り。

アプリを無料で開く有料版と無料版の違い