負数・絶対値・数直線|算数から数式への橋渡し
このページはプロモーション(広告)を含みます。
算数から数式への橋渡し(初級・読む20分+演習25分)
この授業のゴール
- 数直線上で正負の数の大小を判定し、数の差と距離を区別して説明できる
- 正負の数の加減乗除を、符号の規則と数直線で計算できる
- 予測誤差(実績−予測)の符号を読み、平均誤差と絶対値の平均の違いを説明できる
- 前月比の増減と増減率を、符号付きで計算し言葉にできる
仕事でどう使うか
データの仕事では、「増えた・減った」「高かった・低かった」を符号で表します。符号の読み違いは、結論を逆にします。
| 路線 | この授業の使いどころ |
|---|---|
| DS(データサイエンティスト) | 前月比、目標との差、予測誤差の符号を読む。平均で正負が打ち消し合う落とし穴を避ける |
| ML(機械学習エンジニア) | 誤差(残差)が正か負かで、モデルが過大・過小のどちら側に偏っているかを診断する。MAE(Mean Absolute Error:平均絶対誤差)の基礎 |
| DX(DX推進・AI企画) | 削減額(マイナスの費用)や、改善前後の差を、符号の約束を決めて報告する |
| RS(研究者) | 効果の向き(プラスかマイナスか)の報告、差の絶対値と相対的な差の使い分け |
成果物でいえば、予測モデルの評価表、月次レポートの「前月差」欄、実験結果の効果量の表です。「−5」が良いのか悪いのかは、何から何を引いたかで決まります。
前提
次の言葉を使います。不安があれば先に戻ってください。
- 四則計算と計算順序(括弧、引き算の左からの計算)→ 四則計算と計算順序
- 分数・小数・割合(増減率で使う)→ 分数と小数と比
- 欠損(値がないこと。0とは別)→ 数値・カテゴリ・日時・欠損
負の数が苦手でも大丈夫です。気温や口座残高など、身の回りの例から入ります。
身近な状況:予測より多く売れたのか、少なく売れたのか
ある店(架空)が、3日間のキャンドルの販売数を予測しました。
| 日 | 予測(個) | 実績(個) |
|---|---|---|
| 1日目 | 100 | 110 |
| 2日目 | 120 | 115 |
| 3日目 | 90 | 95 |
「予測のずれ」を誤差として、実績 − 予測で計算します。1日目は $110-100=+10$(予測より10個多く売れた)、2日目は $115-120=-5$(5個少なかった)、3日目は $95-90=+5$ です。
担当者は「誤差の平均を出してモデルの良し悪しを評価しよう」と考えました。$(10-5+5)\div3\approx3.33$ 個。小さく見えますが、これは正の誤差と負の誤差が打ち消し合った結果です。1日あたり平均して何個ずれているのかを知るには、符号を消した「ずれの大きさ」が必要です。それが絶対値です。
この授業では、符号付きの数を読み書きする力と、「符号を残す場面」「符号を消す場面」の使い分けを身につけます。
直感的な説明:数直線という「ものさし」
数直線は、0を原点として、右に正の数、左に負の数を並べた直線です。
-5 -4 -3 -2 -1 0 1 2 3 4 5
|---|---|---|---|---|---|---|---|---|---|
- 大小:右にあるほど大きい。だから $-2 > -5$ です。「借金が2万円」は「借金が5万円」より、残高が大きい(良い)状態です。数字の見た目(5の方が大きい)と、数の大小は別物です。
- 足し算:右へ動く。引き算:左へ動く。$3+(-5)$ は、3から左へ5動いて $-2$。
- 引く数が負:$3-(-2)$ は、左へ「負の数」ぶん動く、つまり右へ2動いて5。「借金(負の数)を取り消すと、残高が増える」と考えても同じです。
- 絶対値 $|x|$:原点0からの距離。$|-5|=5$、$|3|=3$。距離なので負になりません。
- 2点の間の距離は $|a-b|$。$-6$ と $4$ の距離は $|-6-4|=|-10|=10$ です。
たとえ話の限界:借金のたとえは便利ですが、「負の数どうしの掛け算がなぜ正になるか」は説明しにくいです。これは次の節で、パターンで確かめます。
正確な定義:符号の規則と絶対値
負の数は0より小さい数で、$-3$ のように「−」を付けます。整数だけでなく、$-0.5$ や $-\frac{1}{3}$ のような負の小数・分数もあります。
絶対値の定義:
$$|x| = \begin{cases} x & (x \ge 0) \\ -x & (x < 0) \end{cases}$$
記号の意味:$|x|$ は $x$ の絶対値、$x\ge0$ は「$x$ は0以上」です。$x=-5$ のとき $x<0$ なので $|x|=-x=-(-5)=5$。符号を「消す」のではなく、負の数なら「符号を反転して」正にします。
加減は、数直線で考えます。乗除の符号は次の表のとおりです。
| 計算 | 符号 | 例 |
|---|---|---|
| 正 × 正、負 × 負 | 正 | $3\times4=12$、$(-3)\times(-4)=12$ |
| 正 × 負、負 × 正 | 負 | $3\times(-4)=-12$ |
| 割り算も同じ規則 | $-12\div4=-3$、$-12\div(-4)=3$ |
「負×負が正」は、次のパターンで確かめられます。
$$3\times(-4)=-12,\quad 2\times(-4)=-8,\quad 1\times(-4)=-4,\quad 0\times(-4)=0,\quad (-1)\times(-4)=?$$
掛ける数が1減るたびに答えは4増えています。したがって $(-1)\times(-4)=+4$ です。規則性が崩れないように決められた約束です。
引き算は、符号の反転した数を足すことです。$a-b=a+(-b)$。$3-(-2)=3+2=5$。
誤差の記号:予測を $\hat{y}$(ワイハット)、実績を $y$ とすると、誤差は $e=y-\hat{y}$。
- 平均誤差(偏り、バイアス):$\bar{e}=\frac{1}{n}\sum e_i$ 。符号を残して平均する。モデルが全体的に多め(過大)か少なめ(過小)かの偏りを見る。
- 平均絶対誤差(MAE):$\frac{1}{n}\sum |e_i|$ 。ずれの大きさの平均を見る。
ここで $n$ はデータの個数、$e_i$ は $i$ 番目の誤差、$\sum$ は全部を足す記号です。
pred = [100, 120, 90]
actual = [110, 115, 95]
errors = [a - p for a, p in zip(actual, pred)]
print("誤差(実績-予測):", errors)
print("平均誤差:", sum(errors) / len(errors))
print("MAE:", sum(abs(e) for e in errors) / len(errors))
zip(actual, pred) は2つのリストを同じ位置で組にします。abs(e) は絶対値の関数です。出力は [10, -5, 5]、約3.33、約6.67 です。
段階付き例題:売上の前月比と増減率を符号付きで読む
問題:売上が1月120万円、2月100万円、3月90万円だった。前月比の増減と増減率を求め、意味を言え。
ステップ1:差の向きを決める。「前月比」は今月 − 前月とします。この向きを決めておけば、マイナスは「減った」を意味します。
ステップ2:差を計算する。
- 2月:$100-120=-20$ 万円
- 3月:$90-100=-10$ 万円
ステップ3:増減率を計算する。増減率 = 差 ÷ 前月の値(分母は前月)。
- 2月:$-20\div120=-0.1667\ldots\approx-16.7\%$
- 3月:$-10\div100=-0.10=-10\%$
ステップ4:検算する。差の合計 $-20+(-10)=-30$ は、3月と1月の差 $90-120=-30$ に一致します。
ステップ5:意味を言う。「2月は前月から20万円(16.7%)減少、3月はさらに10万円(10%)減少。2か月で30万円減った」。減少額は2月の方が大きく、3月は縮小しています。
注意点:増減率の分母を「今月」にすると、2月は $-20\div100=-20\%$ と別の値になります。分母は比較の基準になる前月です。
距離で考える:「1月と3月の売上は何万円離れているか」なら $|90-120|=30$ 万円で、符号は不要です。差(符号付き)と距離(符号なし)を区別して使います。
操作して理解する:誤差の符号が打ち消し合う様子を見る
2つのモデルの誤差を比べます。実行前に、どちらがよいか予想してください。
errors_a = [10, -10, 10, -10] # モデルA: 毎回10個ずれる
errors_b = [1, 1, 2, 0] # モデルB: 小さくずれる
def summary(name, errors):
n = len(errors)
mean_err = sum(errors) / n
mae = sum(abs(e) for e in errors) / n
print(name, "平均誤差:", mean_err, " MAE:", mae)
summary("A", errors_a)
summary("B", errors_b)
出力は A が「平均誤差 0.0、MAE 10.0」、B が「平均誤差 1.0、MAE 1.0」です。
- 平均誤差だけを見ると、Aは0(誤差なし)に見えます。しかし毎回10個ずれています。
- MAEで見ると、Aは10個、Bは1個。実際にはBの方が10倍精度が高いです。
- 平均誤差は「偏り」の指標です。Bの平均誤差が +1 で正なので、Bは実績が予測より多い方向に偏っています(過少予測)。
関数 summary は、名前(文字列)と誤差のリストを受け取り、結果を print で表示します(戻り値はありません)。errors_a の値を [10, 10, 10, 10] に変えると、平均誤差もMAEも10になり、「常に10個少なく予測している」偏りが見えます。偏りがあれば補正できますが、符号が不規則なずれは補正できません。
発展:絶対値の性質と、二乗誤差という別の道
三角不等式:任意の $a, b$ について $|a+b|\le|a|+|b|$ が成り立ちます。等号が成り立つのは、$a$ と $b$ が同符号のとき(どちらかが0のときを含む)だけです。例:$a=3,\ b=-5$ のとき $|a+b|=|-2|=2$、$|a|+|b|=8$。つまり「足してから絶対値」と「絶対値を取ってから足す」は一般に一致しません。 誤差の平均誤差の絶対値 $|\bar{e}|$ が MAE 以下になるのも、この性質のためです。
二乗誤差:符号を消すもう1つの方法は、二乗することです。$(+10)^2=(-10)^2=100$。平均二乗誤差(MSE:Mean Squared Error)は、大きなずれを強く重視します。ずれが2倍になると、MSEへの寄与は4倍になります。外れ値に敏感な指標を選ぶか、頑健な指標を選ぶかは、業務で「大きな外れが許されないか」で決めます(外れ値と頑健性)。
数直線と大小の反転:不等式の両辺に負の数を掛けると、向きが反転します。$2<3$ の両辺に $-1$ を掛けると $-2$ と $-3$ になり、数直線では $-2>-3$。この性質は 方程式と不等式 で、方程式・不等式を解くときに使います。
増減率の非対称:100から50への変化は $-50\%$、50から100への変化は $+100\%$。同じ幅でも、基準が違えば率が違います。増減を比べるときは、基準を明記します。
よくある失敗
失敗1:負の数の大小を、数字の大きさで判断する
誤った例:「$-10$ と $-2$ では、10の方が大きいので $-10$ の方が大きい」。
print(-10 > -2) # False
print(max(-10, -2)) # -2
print(abs(-10) > abs(-2)) # True: これは「原点からの距離」の比較
数直線で $-10$ は $-2$ より左にあります。左にあるものは小さいです。気温が $-10$℃ か $-2$℃ かなら、$-2$℃ の方が高い(大きい)。大小の比較は数直線の位置、距離の比較は絶対値と区別します。
失敗2:引く数が負のとき、符号を処理し忘れる
誤った例:$3-(-2)=3-2=1$ と書いた。
print(3 - (-2)) # 5
print(3 - -2) # 5: 同じ意味
print(3 - 2) # 1: 括弧の中の負の符号を落とした別の式
括弧を外すとき、直前の引き算の記号と、負の数の符号が2つ重なると、符号が反転して足し算になります。$3-(-2)=3+2=5$。確認の方法:「負の数 $-2$ を引く」とは「$-2$ を取り去る」ことなので、元より大きくなる、と数直線で見ます。式が長いときは、必ず括弧を使います。
失敗3:誤差の平均だけを見て「ずれがない」と報告する
誤った例:予測の誤差が $+10, -10, +10, -10$ だった。平均誤差が0なので「このモデルは誤差がゼロ」と報告した。
errors = [10, -10, 10, -10]
print(sum(errors) / len(errors)) # 0.0
print(sum(abs(e) for e in errors) / len(errors)) # 10.0
平均0は、正と負が打ち消し合っただけで、予測が当たっているのではありません。MAEは10個です。偏りを知りたいときは符号付きの平均、ずれの大きさを知りたいときは絶対値(または二乗)の平均を使います。報告では両方を併記します。
まとめ
- 数直線では右ほど大きい。$-2 > -5$。大小は位置、距離は絶対値。
- 引き算は、符号を反転した数を足すこと。$3-(-2)=5$。
- 負×負=正、正×負=負。割り算も同じ規則。
- 誤差は「実績−予測」のように向きを決める。平均誤差は偏り、MAEはずれの大きさ。
- 増減率は、差 ÷ 前の値(基準)。基準を書かないと比べられない。
用語
- 絶対値(absolute value)
数直線上で原点0からの距離。|-5|=5。負の数のときは符号を反転した値になる。
- 数直線(number line)
0を原点に、右へ正の数、左へ負の数を並べた直線。大小・距離・加減を図で考えるために使う。
- 誤差と平均絶対誤差(MAE)(error / Mean Absolute Error)
誤差は実績−予測などの差。MAEは誤差の絶対値の平均で、ずれの大きさの目安。
- 増減率(rate of change)
(今回の値−前回の値)÷前回の値。前回の値が基準(分母)になる。
よくある質問
なぜ「負×負=正」になるのですか?
掛ける数を1つ減らすごとに答えが一定量変わるというパターンを、負の数まで延ばしても崩れないように決めた約束だからです。$3\times(-4)=-12$ から出発して、掛ける数を2、1、0、−1と下げると答えが −8、−4、0、+4 になることで確かめられます。
絶対値は「マイナスを取る」ことですか?
ほぼ正しいですが、正確には「0からの距離」です。負の数のときだけ符号を反転し、正の数や0はそのままです。$|{-5}|=5$、$|5|=5$、$|0|=0$。
誤差は実績−予測と予測−実績のどちらが正しいですか?
どちらも使われます。大事なのは定義を明記することです。報告書に「誤差=実績−予測。正は過少予測」と書けば読み手が迷いません。ライブラリの関数は向きが異なる場合があるので、使う前に小さな例で確認してください。
平均誤差とMAEは、どう使い分けますか?
偏り(系統的に多め・少なめ)を見たいときは平均誤差、ずれの大きさを見たいときはMAEや二乗誤差を使います。通常は両方を見ます。偏りがなくMAEが大きいなら、ばらつきの問題です。
増減率の分母は何ですか?どう判断しますか?
基準にしたい値、通常は前の値(前月、改善前)です。分母が違うと率が変わるので、報告書に「前月比=(今月−前月)÷前月」と書きます。基準が0のときは計算できません。
数がゼロの場合と、欠損の場合は何が違いますか?
ゼロは「0を観測した」、欠損は「値がわからない」です。誤差の平均で、欠損を0として入れると偏りが小さく見えてしまいます。欠損は計算から除くか、別途処理方針を決めます(数値・カテゴリ・日時・欠損)。
確認問題
問1 $-5$ と $-2$ では、どちらが大きいか。
- ① -5
- ② -2
- ③ 同じ
- ④ 絶対値が大きい方
解答と解説
正解:②
数直線では $-2$ の方が右にあります。右にあるものが大きいです。
問2 $3-(-2)$ の値はどれか。
- ① 1
- ② -1
- ③ 5
- ④ -5
解答と解説
正解:③
引く数が負なので、符号が反転して足し算になります。$3+2=5$。
問3 誤差(実績−予測)が、順に +10, −10, +10, −10 だった。報告として最も適切なのはどれか。
- ① 平均誤差は0だが、毎回10個ずれている(MAEは10)
- ② 平均誤差が0なので、予測は完全に当たっている
- ③ 誤差は正と負が混じっているので評価できない
- ④ 最後の誤差だけで評価する
解答と解説
正解:①
符号が打ち消し合って平均は0ですが、ずれの大きさの平均(MAE)は10個です。偏りとずれの大きさは別の指標です。
問4 誤差を「実績 − 予測」で定義したとき、誤差が正になるのはどんな場合か。
- ① 予測が実績より大きかった(過大予測)
- ② データが欠損していた
- ③ 予測が完全に当たった
- ④ 予測が実績より小さかった(過少予測)
解答と解説
正解:④
実績−予測>0 は、実績が予測より大きい=予測が少なすぎた(過少予測)という意味です。定義の向きを決めずに「プラス」とだけ報告すると、逆に読まれます。
問5 $(-4)\times(-3)\div(-2)$ の値はどれか。
- ① 6
- ② -6
- ③ -24
- ④ 24
解答と解説
正解:②
左から計算します。$(-4)\times(-3)=12$、$12\div(-2)=-6$。
問6 売上が200万円から150万円に変化した。前月比の増減率として正しいのはどれか。
- ① +25%
- ② -33.3%
- ③ -25%
- ④ -50%
解答と解説
正解:③
(150−200)÷200 = −0.25 で −25%。基準は前月の200です。
次に学ぶこと
次は 文字式と代入 で、文字式と代入を学びます。ここで学んだ符号を、文字に数を代入するときの括弧の使い方に生かします。
この授業の確認問題だけで習得とはしません。ON05 の総合テストと、損益分岐点の課題で判定します。割合の復習は 分数と小数と比 です。
キャリア学習:データサイエンティスト・機械学習エンジニア・DX推進・研究者を目指す人の学習アプリ。164モジュール・984授業を、ブラウザで動くSQLとPythonの演習で。基礎と各分野の最初のモジュールは無料。全部は2,980円の買い切り。
アプリを無料で開く有料版と無料版の違い