情報Ⅰ 最強120講義

重回帰分析|情報Ⅰ 最強120講義 第112講

数強塾グループの一流講師陣 一流のライブ授業×最高品質の映像授業×サボれないコーチング

今日の一問
「情報Ⅰ」教員研修用教材の187ページの演習2では,高校生の体力測定データを使って,「50m走のタイム(Y)」の予測式を「立ち幅跳び(X)」を説明変数として,表計算ソフトの「散布図」上で求めている
出典:文部科学省「情報Ⅱ」教員研修用教材 第3章 前半(学習13)
——さて、どこから手をつける?
答えと考え方は、この記事の中で順を追って解説します。

説明変数を1本増やすと、何が起きるのか。答えは「他の説明変数の値をそろえたうえでの効き方を計算するようになる」です。だから単回帰と重回帰で係数の符号が逆になることがあります。そして説明変数を増やすと決定係数は必ず上がるので、上がったことは何の証明にもなりません。ここで自由度という新しい物差しが要る──国の教材が実際にそう書いています。

こんにちは、数強塾グループ代表の藤原進之介です。本記事は参考書『藤原進之介の最強120講義』第112講のWeb版で、第6部「情報Ⅱへの橋」に入ります。共通テスト重要度はC──情報Ⅱは共通テストの出題範囲外だからです。それでもこの講を置くのは、第88講の回帰直線で立ち止まっていた疑問(当てはまりが良いとはどういうことか)に、ここで初めて決着がつくからです。

1. 国の教材の中で、情報Ⅰの演習がそのまま続いている

この講には、私が知る限り国の教材の中で情報Ⅰと情報Ⅱが文字どおり地続きになっている、ほとんど唯一の場所があります。文部科学省「情報Ⅱ」教員研修用教材 第3章 学習13「重回帰分析とモデルの決定」の書き出しです。

「情報Ⅰ」教員研修用教材の187ページの演習2では,高校生の体力測定データを使って,「50m走のタイム(Y)」の予測式を「立ち幅跳び(X)」を説明変数として,表計算ソフトの「散布図」上で求めている出典:文部科学省「情報Ⅱ」教員研修用教材 第3章 前半(学習13)

情報Ⅰ側(第4章 学習22、p.187〜189)に実際に載っている式がこれです。

50m走(秒)の予測値 = −0.015(秒/cm)× 立ち幅跳び(cm) + 10.731(秒)   寄与率 45%

情報Ⅱは、同じデータに説明変数を3本足します。

50m走(秒)の予測値 = −0.012(秒/cm)× 立ち幅跳び(cm)
                    −0.014(秒/m) × ハンドボール投げ(m)
                    −0.040(秒/kg)× 握力得点(kg)
                    −0.025(秒/回) × 上体起こし(回)
                    +10.819(秒)                    寄与率 52.5%

同じ生徒の、同じ体力測定データです。情報Ⅰでやった散布図の続きが、そのまま情報Ⅱの重回帰になる。教材は「説明変数を増やしたことで、モデルの適合度(Y の変動の説明力)が上がったことが分かる」と書きます。

第88講で確認したとおり、情報Ⅰの教材は単回帰直線を「変量 x の値が与えられたときの変量 y の条件付平均値を表す直線」と定義していました。この定義は変数が何本になっても壊れません。情報Ⅱ側にこう書いてあります。

最小二乗法によって求められた予測式に, X1, X2 , …, Xp の各変数の平均値を代入すると, Y の平均値となる。このときの残差は0である出典:同上

情報Ⅰで手計算して確かめた「回帰直線は必ず平均点を通る」が、重回帰へ一般化された形で明記されているわけです。4章で自分のデータでも確かめます。

2. 説明変数を増やすとは、何をしているのか

ここがこの講の主戦場です。単回帰の係数と重回帰の係数は、意味がまったく違います。

  • 単回帰の係数:x が1増えたとき、y は平均でいくつ動くか
  • 重回帰の係数他の説明変数の値をそろえたうえで、x が1増えたとき、y は平均でいくつ動くか
説明変数 X Y 単回帰=直線(情報Ⅰ) 1本足す X1 Y X2 重回帰=平面(情報Ⅱ) やっていることは、どちらも「縦のズレの2乗和を最小にする」だけ

図1 単回帰は直線、重回帰は平面。最小にしているものは同じ「縦のズレの2乗和」です。

言い換えると、重回帰は「面積が同じマンションどうしを比べたら、築年数はいくら効くか」を計算しています。ふつうに散布図を描けば、面積の違う物件が混ざったまま比べられてしまう。重回帰は、その混ざりを式の上でほどきます。

なぜそんなことが計算だけでできるのか。手順にすると3段です。

「築年数」を「面積」で回帰し、面積では説明できない築年数の残りを取り出す
「価格」を「面積」で回帰し、面積では説明できない価格の残りを取り出す
その2つの「残り」どうしで単回帰する

こうして得られる傾きが、重回帰の係数とぴったり一致します。

つまり重回帰の係数とは、「相手の変数で説明できる分を、両側から先に引き算してから測った傾き」です。「そろえる」は比喩ではなく、引き算という具体的な操作を指しています。4章で数値を合わせて実演します。

3. これは第87講の「交絡の調整」そのもの。ただし限界がある

第87講で、相関があっても因果とは限らない理由として交絡因子を扱いました。情報Ⅰの教材にも、ダイヤモンドの例で「カットの質が上がるほど価格が下がる」という逆転が出てきて、こう説明されています。

交絡因子とは,対象としている2変数と相互に相関の高い隠れた変数(因子)のことである。出典:文部科学省「情報Ⅰ」教員研修用教材 第4章

重回帰は、この交絡因子を説明変数に入れてしまうことで調整する道具です。2章の「そろえる」がまさにそれで、交絡因子を測ってさえいれば、その影響を差し引いた効き方を取り出せます。

ただし限界は決定的です。

  • 入れられるのは測ってある変数だけ。測っていない交絡因子は、式の上ではどうやっても調整できません
  • したがって、観察して集めただけのデータである限り、重回帰の係数を「因果の大きさ」と言い切ることはできません

ここで面白い事実があります。情報Ⅱ教員研修用教材の全7分冊を検索すると、「交絡」も「因果」も「疑似相関」も0件です。交絡を正面から扱うのは情報Ⅰ側(情報Ⅰ教材に交絡4件・因果3件)で、重回帰を教える情報Ⅱの章では、その語がひとつも出てきません。

語が消えたからといって、内容が消えたわけではありません。学習13 は重回帰の前段として、こういう作業を要求します。

何が何に影響を与えるかの構図(仮説)を明示することが肝要である出典:情報Ⅱ教員研修用教材 学習13

そして特性要因図(フィッシュボーンダイアグラム)・要因連関図・イシューツリー・ロジックツリー・ロジックモデルを挙げ、演習1では「予測に使用する説明(要因)変数の候補となぜ、それが要因となるのかの理由を考え」と書きます。因果の矢印を先に描いてから変数を選べ、と言っているのです。名前が「交絡」から「特性要因図」へ乗り換わっただけで、やっていることは第87講の続きです。

4. なぜ R2 は、増やせば必ず上がるのか

教材はこう書きます。

寄与率R2ができるだけ大きくなることが望ましいが,説明変数を増やせば増やすほど単純に大きくなる出典:情報Ⅱ教員研修用教材 学習13

「大きくなりがち」ではなく、必ず大きくなる(正確には、小さくはならない)のです。理由は最小二乗法の定義そのものにあります。

最小二乗法は、残差平方和 SE最小にする係数を選びます。いま説明変数を1本足したとします。新しい変数の係数を 0 に選べば、それは元のモデルとまったく同じ式です。つまり──

元のモデルは、新しいモデルの候補のひとつに必ず含まれている。

最小化とは「候補の中でいちばん小さいものを選ぶ」ことですから、候補が増えれば最小値は下がるか、そのままか、どちらかしかありません。上がることはあり得ません。

R² = 1 − S_E / S_T        ← S_T(目的変数の変動)は説明変数を足しても変わらない

SE が下がれば R2 は必ず上がる。だから「サイコロの目」でも「部屋番号の下1桁」でも、説明変数として足せば R2 は上がります。これは統計の性質ではなく、最小化という操作の論理的な帰結です。4-6 で実際にやってみせます。

5. 教材が、自分で自分に反証を出している

R2 が上がることのどこが罠なのか。ここが本講のいちばんの見どころです。

例えば,データが2人分しかない体力測定のデータで散布図を作成し直線を当てはめた場合,必ず二つのデータ点が直線上に乗り,寄与率R2は100%になる。3人分であれば,二次項を含め多項式でモデル化するとやはり寄与率R2は100%となる。しかし,これらのモデルでは,残差の自由度は0となり,標準誤差は無限大となり計算できない。つまり,新しいデータに対して予測力がまるでないことになる出典:情報Ⅱ教員研修用教材 学習13

R2 = 100% でも予測力ゼロ。この1行だけは持ち帰ってください。

2点あれば直線は必ず引けます。3点あれば2次曲線は必ず通ります。「当てはまった」のではなく「当てはめるだけの余地が残っていなかった」のです。残っていた余地の量、それが自由度です。

6. 自由度とは何か──変動の分解と、自由度の分解

情報Ⅱの教材は、変動を3つに分けます。そして同じ形で自由度も分解されると書きます。

S_T(全変動) = S_R(回帰による変動) + S_E(残差変動)
f_T(全自由度)= f_R(回帰の自由度)  + f_E(残差自由度)
 
f_T = n − 1      平均値という制約が1本あるので、データ数から1を引く
f_R = p          回帰パラメータ数 (p+1) から平均制約1を引く
f_E = n − 1 − p
変動の分解 回帰による変動 SR = 145800 SE=2200 全変動 ST=148000(=SR+SE 自由度の分解(データ10件・説明変数2本) fR=p=2 残差自由度 fE=n−1−p=7 全自由度 fT=n−1=9(=fR+fE 説明変数を1本足すと、上の帯は伸びるが、下の赤い帯は必ず1つ縮む。これが「代金」である。

図3 変動と自由度は、同じ形で回帰の分と残差の分に分かれます(数値は4章の自作データ)。

教材の言葉では、自由度とは「その統計量を構成する本質的な(独立した)要素の数」です。そして次の1文が効きます。

回帰の自由度はモデルの項の数(説明変数の数)を表し,モデルの複雑度に相当するが,モデルの複雑度を上げれば,残差の自由度が少なくなることも留意する必要がある。出典:情報Ⅱ教員研修用教材 学習13

自由度は、モデルの複雑さと、手持ちのデータ量とを結ぶ数です。n が固定されている以上、p を増やせば fE = n − 1 − p は必ず減ります。説明変数を1本足すたびに、私たちは「当てはまりの良さ」を買い、「残差の自由度」を支払っている。R2 は買った分しか見ていません。

標準誤差の定義も、同じ構図を言っています。

残差の自由度を調整した標準偏差である。(SE / fE)の平方根で求められ,Yと同じ具体的な測定単位を持つ。(中略)この値が小さいほど良いモデルとなるが,単純に,残差変動 SE が小さくなる(寄与率 R2 が上がる)だけでは達成されない。残差変動の自由度 fE が大きいことも重要となる出典:情報Ⅱ教員研修用教材 学習13

分子だけ見るな、分母も見ろ、ということです。だから支払った分も勘定に入れた指標が要ります。それが自由度調整済み決定係数です。

自由度調整済み R² = 1 − (S_E / f_E) ÷ (S_T / f_T)
                  = 1 − (1 − R²) × (n − 1) / (n − p − 1)

R2 は SE と STそのまま比べていました。自由度調整済み R2 は、両方を自由度で割ってから比べます。だから、説明変数を足しても上がらないことがある。これが決定的な違いです。

第93講で確かめたとおり、「自由度」という語は学習指導要領解説 情報編に0件、情報Ⅰ教員研修用教材に1件(統計の用法)、情報Ⅱ教員研修用教材に21件です。そしてその21件はすべて第3章前半、つまりこの学習13と学習14の中にあります。「自由度」は、高校で唯一ここでしか学べない概念です。

7. ★数学の解説にも「回帰直線」は1件も無い

この講を書くにあたって、私が新しく確かめたことを1つ。

高等学校学習指導要領(平成30年告示)解説 数学編 理数編を全文テキスト化して数えたところ、「回帰直線」「最小二乗」「決定係数」「残差」「説明変数」「目的変数」「自由度」「重回帰」「寄与率」は、すべて0件でした(全文315,300字・空白と改行を除去して計数、2026年8月3日に当方で実施)。「回帰」という語自体、たった1件しか出てきません。しかもその1件は、専門学科の理数科の科目について「発展、拡充させる内容としては、データの回帰の考え方などを扱うことが考えられる」という例示です。対して「相関係数」は13件あり、数学Ⅰ「(4)データの分析」の本体になっています。

つまり、高校数学は「相関係数まで」で止まり、「回帰直線」から先は情報科の担当なのです。第88講で扱った回帰直線と最小二乗法は、数学の教科書ではなく情報の教科書に載っている。これは知っておいて損がありません。

ただし「0件だから数学では扱わない」と早合点してはいけません。語が無いだけで、内容は在ります。

数学B「(3)数学と社会生活」の〔内容の取扱い〕にこうあります。──「内容の(3)のアの(イ)については,散布図に表したデータを関数とみなして処理することも扱うものとする」。解説本文は「気温とある商品の売り上げとの関係について、散布図や相関係数を用いて調べたり、商品の売り上げを予測したりする」と例示します。やっていることは回帰です。ただし「回帰」とは呼んでいない。しかもこの項目は「内容の(1)から(3)までの中から適宜選択させる」=選択項目です。

8. 予測と要因分析は、目的が違うので、やってよいことが違う

学習13 の【研修の目的】4項目のうち、第1項と第4項がもう1つの軸を名指しします。

課題発見とデータに基づく問題解決の枠組みにおける予測と予測モデル構築の意義,要因分析と制御の位置付けを理解する。

予測と要因分析の違いを理解し,予測精度を上げるためのモデルの改良(モデリング)の方法を理解する。出典:情報Ⅱ教員研修用教材 学習13【研修の目的】

本文はこう書きます。「各説明変数の値の変化が目的変数にどのように影響するのかという効果を推測(要因分析)したり、シミュレーションを行って最適な Y の値を探索したりと、単純に Y の値を予測するだけではなく制御する方策に関しても考察を深めることもできる」。

目的 何をしたいのか いちばん大事なこと
予測 新しい対象の Y を当てる 当たること。式の中身は問わない
要因分析 どの X がどれだけ効くかを言う 係数の意味が説明できること
制御 Y を良くするために X をどう動かすか決める 実際に動かせる X であること

そして教材は、この違いから具体的な作業上の分岐を導きます。説明変数の取捨選択のことを

説明変数の取捨選択が重要な課題となる。これを変数選択もしくはモデル選択(モデリング)という出典:同上

と呼び、R には自動でこれをやる機能(総当法・変数増加法・変数減少法・変数増減法=ステップワイズ法)があると紹介したうえで、こう釘を刺します。

何が変数として選択されたかを全くブラックボックスとし単純に予測モデルを構築したい場合は,自動変数選択の機能は便利ではあるが,説明変数が目的変数に与える効果に言及し要因分析を行う場合は,自動変数選択は安易に使用すべき手法ではない出典:同上

「予測なら可、要因分析なら不可」と、国の教材が明記しています。理由は2章に戻れば分かります。要因分析では「他の変数をそろえた効き方」を主張したいのに、そろえる相手(=モデルに残す変数)を機械が勝手に決めてしまったら、その係数が何をそろえた結果なのかを、人間が説明できなくなるからです。教材自身も「説明変数間の相関の強弱によって、どの方法を選ぶかで選択される変数、すなわち最終的に採択されるモデルの結果は異なる」と書いています。

なお、モデルの良し悪しを測る指標として教材はAIC(赤池の情報量規準)も挙げ、「AIC は小さいほど良いモデルとされる」とだけ書きます。定義には踏み込みません。

9. 用語について、3つ注意しておく

(1)「寄与率」と「決定係数」は同じものだが、書き分けの規則がある。教材は図表の脚注で明示しています。

※R2は出力では数値表示されるが,一般に,寄与率というときは%表示,決定係数というときは数値表示をする。出典:情報Ⅱ教員研修用教材 学習13 図表9 脚注

私が情報Ⅰ教員研修用教材を実際に検索したところ、この規則がきれいに守られていました。「決定係数」3件はすべて「0から1の範囲の値をとる」「1に近いほど」=数値表示の文脈「寄与率」2件はすべて「寄与率は50%である」「寄与率は45%である」=%表示です。偶然ではありません。

(2) 教材は Excel の日本語ラベルを、書き換えろと指示している。「Excelの出力結果は必要に応じて、レポート等では書き直す必要がある」として、「重相関R」→「重相関係数R」/「重決定R2」→「寄与率(決定係数)R2」/「補正R2」→「自由度修正済みR2」。ソフトの出力をそのまま貼るな、というのが国の教材の立場です。

(3) ただし、教材の中でも訳語が揺れている。私が数えたところ、学習13 の中には「自由度調整済み寄与率R2」が3件、「自由度修正済みR2」が3件あり、同じ学習の中で2つの訳語が併用されています。同じものを指すので実害はありませんが、参考書やソフトで別の呼び方に出会っても慌てなくていい、ということでもあります。

もう1つ。大学の統計学で必ず出てくる「偏回帰係数」と「多重共線性」は、国の教材にも学習指導要領解説にも0件です。「偏回帰」も「共線」も、私が調べた範囲(解説 情報編の共通教科側・専門教科側の両方、解説 数学編 理数編、情報Ⅰ教材 第1〜4章、情報Ⅱ教材 序章+第1〜5章の全7分冊)で1件も出てきません。教材は最後まで「回帰係数」と呼びます。

ただし、多重共線性の中身に当たる記述は1か所あります。変数選択の説明の中の「説明変数間の相関の強弱によって、どの方法を選ぶかで選択される変数……は異なる」がそれで、語ではなく内容として存在しています。「教材に無い=高校の範囲外」と早合点しないでください。

ダミー変数──量的でない変数をどう入れるか

学習13 には囲み記事が1つあり、そこが質的データの扱いを引き受けています。

重回帰分析では,目的変数も説明変数も基本的には量的な変数である必要があるが,説明変数に質的な変数を用いることがある。この場合は,説明変数の質的な属性の有無を,0 と 1 の数値で対応させた変数(ダミー変数と呼ぶ)で表現し直し,ダミー変数を説明変数として重回帰分析を行う。目的変数が質的変数の場合は,ロジスティック回帰分析を行う出典:情報Ⅱ教員研修用教材 学習13

第80講で扱った尺度水準(名義・順序・間隔・比例)がここで効きます。「駅から近いか」「南向きか」のような名義尺度は、そのままでは重回帰に入りません。0/1 に組み替えれば入る。そして目的変数のほうが質的(合格/不合格、購入する/しない)なら、そもそも重回帰ではなくロジスティック回帰へ行く。制約と、その回避策と、制約を超えるときの別の道具——この3点セットが囲み4行に圧縮されています。

10. 手で確かめる──10件のデータで、係数の符号が反転する

ここからは自作のデータで実演します。数値はすべて Python(標準ライブラリのみ・分数で厳密計算)で出し、さらに正規方程式をクラメルの公式で解き直して独立に検算しました。

10-1 データ(中古マンション10件・すべて自作)

# 築年数 x1(年) 専有面積 x2(m2 価格 y(万円)
1 5 40 630
2 10 45 690
3 10 55 800
4 15 50 720
5 20 60 790
6 20 70 920
7 25 65 860
8 30 75 910
9 30 85 1050
10 35 80 930

平均は 築年数 20年、面積 62.5 m2、価格 830万円。相関係数は r(築年数, 面積)= 0.9358(古い物件ほど広い、という関係が入っています)、r(築年数, 価格)= 0.8578、r(面積, 価格)= 0.9787。

10-2 単回帰を2本引く

① 価格 = 610 + 11.0 × 築年数        R² = 1089/1480 = 0.7358
② 価格 = 311.82 + 8.2909 × 面積     R² = 9747/10175 = 0.9579

①の築年数の係数が +11.0。「1年古いほど11万円高い」と読めてしまいます。中古住宅でそんなはずはありません。

10-3 重回帰にする

価格 = 200 − 6.0 × 築年数 + 12.0 × 面積
 
R² = 729/740 = 0.9851        自由度調整済み R² = 5081/5180 = 0.9809
S_T = 148000,  S_R = 145800,  S_E = 2200   (S_T = S_R + S_E が成立)
残差自由度 f_E = 10 − 1 − 2 = 7
標準誤差 = √(2200/7) = 17.73(万円)

築年数の係数が +11.0 から −6.0 へ、符号が反転しました。単回帰の +11.0 は「古い物件ほど広い」という関係を経由した見かけの効きで、面積をそろえると築年数はちゃんとマイナスに効きます。面積の係数も 8.29 → 12.0 と変わっています。単回帰の係数は、他の変数の影響を吸い込んでいるのです。

10-4 「そろえる」を、引き算で確かめる

2章の3段の手順を実際にやります。①築年数を面積で回帰した残差、②価格を面積で回帰した残差、③その2つで単回帰。

築年数(年)価格(万円)① そのまま散布図にすると 傾き +11.0「古い物件ほど高い」に見える面積で引き算築年数の残り価格の残り② 面積で説明できる分を両側から引くと 傾き −6.0これが重回帰の築年数の係数と厳密に一致する

図2 左:そのままの散布図(傾き +11.0)。右:面積で説明できる分を両側から引いた残差どうしの散布図(傾き −6.0)。右の傾きが、重回帰の築年数の係数です。

結果は 傾き = −6(厳密に)。重回帰の築年数の係数と分数レベルで完全に一致しました。「そろえる」は比喩ではなく、そのまま計算になっています。

10-5 平均を代入すると平均が返る(教材の主張の検算)

200 − 6.0 × 20 + 12.0 × 62.5 = 200 − 120 + 750 = 830   ← 価格の平均と一致

残差の合計も厳密に 0。教材の「各変数の平均値を代入すると Y の平均値となる。このときの残差は0である」が、そのまま出ました。

10-6 ★無意味な変数を1本足すと、何が起きるか

価格と何の関係もない変数として「部屋番号の下1桁」(7, 3, 1, 5, 8, 2, 4, 6, 9, 0)を足してみます。

指標 築年数+面積 +部屋番号の下1桁
R2 0.985135 0.985143(上がった)
自由度調整済み R2 0.980888 0.977715(下がった)
残差自由度 fE 7 6
標準誤差(万円) 17.73 19.14(悪化)

R2 は上がっています。6桁目まで見ないと分かりませんが、確かに上がっている。4章の理屈どおりです。

しかし自由度調整済み R2 は下がり、標準誤差も悪化しています。部屋番号の係数は 0.1212 とほとんど0ですが、それでも「ゼロにするより、ほんの少しだけ動かしたほうが残差平方和は小さくなる」。その「ほんの少し」を買うために、残差自由度を1つ支払った。割に合っていません。それを教えてくれるのが自由度調整済み R2 のほうだ、ということです。

10-7 教材の反証を、自分のデータで再現する

使うデータ 説明変数 p R2 SE fE 標準誤差
10件 2 0.9851 2200 7 17.73
3件 2 1(100%) 0 0 計算不能
2件 1 1(100%) 0 0 計算不能

教材の「標準誤差は無限大となり計算できない。つまり、新しいデータに対して予測力がまるでないことになる」が、そのまま再現されました。「当てはまりが完璧」と「予測できる」は、まったく別のことです。

10-8 ★教材の出力から、使われたデータの件数を逆算する

学習13 には R の実行結果が載っています。書いてある数字はこれだけです。

Residual standard error: 0.3349 on 131 degrees of freedom
Multiple R-squared: 0.5249,  Adjusted R-squared: 0.5104
F-statistic: 36.18 on 4 and 131 DF

この数字から、教材が何人分のデータを使ったかを当てることができます。自由度調整済み R2 の式に R2 = 0.5249、p = 4 を入れ、n を未知数にします。

1 − (1 − 0.5249) × (n − 1) / (n − 5) = 0.5104
 
n を 100 から 200 まで動かして探すと、合うのは n = 136 ただ1つ。
n = 136 のとき  1 − 0.4751 × 135 / 131 = 0.510393… → 0.5104
残差自由度 = n − 1 − p = 136 − 1 − 4 = 131   ← R の出力とぴったり一致

教材が使ったのは 136人分のデータです。公表されているのは丸めた指標だけなのに、自由度の関係式を使うとデータの件数まで復元できてしまう。自由度がただの飾りではないことが、これで分かると思います。

10-9 Python コード(標準ライブラリのみ・そのまま動く)

from fractions import Fraction as F
 
chiku   = [ 5, 10, 10, 15, 20, 20, 25, 30, 30, 35]   # 築年数
menseki = [40, 45, 55, 50, 60, 70, 65, 75, 85, 80]   # 専有面積
kakaku  = [630,690,800,720,790,920,860,910,1050,930] # 価格
 
def solve(A, b):                      # ガウスの消去法(分数で厳密に)
    m = [r[:] + [x] for r, x in zip(A, b)]
    k = len(m)
    for i in range(k):
        p = next(r for r in range(i, k) if m[r][i] != 0)
        m[i], m[p] = m[p], m[i]
        piv = m[i][i]
        m[i] = [v / piv for v in m[i]]
        for r in range(k):
            if r != i and m[r][i] != 0:
                f = m[r][i]
                m[r] = [a - f * c for a, c in zip(m[r], m[i])]
    return [r[-1] for r in m]
 
def regress(Xs, y):                   # 定数項つき最小二乗法
    p = len(Xs)
    cols = [[F(1)] * len(y)] + [[F(v) for v in X] for X in Xs]
    A = [[sum(a * b for a, b in zip(c1, c2)) for c2 in cols] for c1 in cols]
    b = [sum(a * F(v) for a, v in zip(c, y)) for c in cols]
    beta = solve(A, b)
    pred = [sum(bt * c[i] for bt, c in zip(beta, cols)) for i in range(len(y))]
    my = F(sum(y), len(y))
    ST = sum((F(v) - my) ** 2 for v in y)
    SE = sum((F(v) - q) ** 2 for v, q in zip(y, pred))
    R2 = 1 - SE / ST
    fE = len(y) - p - 1
    adj = 1 - (1 - R2) * F(len(y) - 1, fE) if fE > 0 else None
    return beta, R2, adj, SE, fE
 
print(regress([chiku], kakaku)[:3])            # 単回帰A
print(regress([menseki], kakaku)[:3])          # 単回帰B
print(regress([chiku, menseki], kakaku)[:3])   # 重回帰
 
heya = [7, 3, 1, 5, 8, 2, 4, 6, 9, 0]          # 無意味な変数
_, R2b, adjb, _, _ = regress([chiku, menseki], kakaku)
_, R23, adj3, _, _ = regress([chiku, menseki, heya], kakaku)
print('R2  %.6f -> %.6f' % (R2b, R23))         # 上がる
print('adj %.6f -> %.6f' % (adjb, adj3))       # 下がる

実行して得られる出力が、10-2〜10-6 に書いた数値そのものです。

11. 共通テストではこう出る(重要度 C)

この講は共通テストに接続しません。情報Ⅱは出題範囲外だからです。大学入試センターの「受験者数・平均点の推移(本試験)」の一覧を見ても、情報の欄にあるのは情報Ⅰ・旧情報・情報関係基礎・旧情報関係基礎の4つで、「情報Ⅱ」という科目は存在しません(情報Ⅰは令和7年度 279,718人・平均69.26点/令和8年度 305,202人・平均56.59点。2026年8月3日取得)。

ただし、この講の手前までは確実に出ます。情報Ⅰの第4問はデータ分析の大問で、散布図・相関係数・回帰直線・残差が繰り返し問われます。持っておいてほしい見取り図はこうです。

共通テストが問うのは「1本の直線までの世界」です。相関係数の大小を比べて当てはまりの良い方を選ぶ、回帰直線で予測して実測とのズレ(残差)を読む──ここまでが情報Ⅰ。そして残差を見て「じゃあ、その残ったズレを説明する別の変数を足そう」と考えた瞬間、そこから先が重回帰です。

この一歩は、共通テストの問題の中でも「回帰と似た手法で予測を行っている。これは、通常の手法とは異なるが、重回帰の考え方である」と評されることがあります(情報処理学会 学会誌「情報処理」note版、2026年2月27日)。残差を見て次の変数を探す。この動きさえ身についていれば、情報Ⅰの第4問は「重回帰の1歩手前」として自然に読めます。

12. 情報Ⅱではこうなる──第113講から先の地図

本講自体が情報Ⅱの話なので、ここは「この先で何を扱うか」の橋渡しに使います。まず、語の出現回数で本講の位置を示します。3つの一次資料のPDFを全文テキスト化し、空白と改行を除去してから数えました(2026年8月3日に当方で実施)。学習指導要領解説 情報編は、共通教科(情報Ⅰ・情報Ⅱ)と専門教科(情報科)を分けて計数しています。

解説 情報編
共通教科
解説 情報編
専門教科
解説
数学編 理数編
情報Ⅰ
教員研修用教材
情報Ⅱ
教員研修用教材
重回帰 3
(すべて情報Ⅱ)
0 0 0 45
回帰直線 2 0 0 8 1
説明変数 0 0 0 1 37
目的変数 0 0 0 1 19
寄与率 0 0 0 2 41
決定係数 0 0 0 3 3
残差 0 0 0 6 20
最小二乗 0 0 0 1 3
自由度
(統計の用法)
0 0 0 1 21
重相関 0 0 0 0 6
標準誤差 0 0 0 0 4
変数選択 0 0 0 0 8
モデル選択 0 0 0 0 5
AIC 0 0 0 0 2
ダミー変数 0 0 0 0 3
特性要因図 0 0 0 1 7
要因分析 0 0 0 0 7
交絡 2 0 0 4 0
因果 1 1 5 3 0
疑似相関/擬似相関 0 0 0 0 0
偏回帰 0 0 0 0 0
多重共線 0 0 0 0 0
相関係数(参考) 1 0 13 15 15
外れ値(参考) 3 0 20 4 9

当てた範囲:学習指導要領解説 情報編(第1部=共通教科、第2部=専門教科の両方)/学習指導要領解説 数学編 理数編(全文)/情報Ⅰ教員研修用教材 第1〜4章(章ごとに別PDF)/情報Ⅱ教員研修用教材 序章・第1章・第2章・第3章前半第3章後半・第4章・第5章の全7分冊。0件はこの範囲での0件です。なお文科省の授業・研修用コンテンツのスライドの一部は画像化されていてテキスト検索できないため、そこは対象外です。

この表から読み取れることは4つあります。

  1. 重回帰の道具立ては、まるごと情報Ⅱ第3章前半にあります。情報Ⅱ教材の「重回帰」45件のうち41件、「寄与率」41件のすべて、「自由度」21件のすべてがこの分冊です
  2. 情報Ⅰは、単回帰を教えるのに「説明変数」「目的変数」をそれぞれ1回しか使いません。定義して、それきりです
  3. 交絡・因果は情報Ⅰで語られ、情報Ⅱの教材からは消えます。消えた場所に立つのが「要因分析」と「特性要因図」。語が乗り換わっただけで、内容は続いています
  4. 数学の解説は「相関係数」13件・「外れ値」20件で止まり、「回帰直線」も「最小二乗」も0件です。回帰から先は情報科の担当です

この先で何を扱うか

学習 主題 本書の講
11 データと関係データベース 第90・91・118講
12 大量のデータの収集と整理・整形 第81・82・110講
13 重回帰分析とモデルの決定 第112講(本講)
14 主成分分析による次元削減 第113講
15 分類による予測 第114講以降
16 クラスタリングによる分類 第114講以降
17 ニューラルネットワークとその仕組み 第115講
18 テキストマイニングと画像認識 第115講

次の第113講(主成分分析と次元削減)とのつながりを、1行で言っておきます。本講で扱ったのは「説明変数を選ぶ」(変数選択)という道でした。第113講で扱うのは「説明変数をまとめる」(次元削減)という別の道です。同じ「変数が多すぎる」という問題に、捨てて減らすか、混ぜて減らすかという2つの答えがあり、教材はこれを学習13と学習14に分けて並べています。実際、学習14 の冒頭は「学習13で挙げた生徒を対象とした体力測定のデータでは……」と書き出され、またしても同じデータが引き継がれます。

さらに、学習13 は情報Ⅱの内部でも先を持ちます。第3章後半 学習15 は「教師あり学習は、『学習13』の重回帰分析などをはじめ……」と、重回帰を機械学習の入口として位置づけ直します。重回帰は、統計の話であると同時に、機械学習の最初の1歩でもあります。工程全体から見た位置づけは第110講 データサイエンスのワークフローを見てください。

自分で確かめたい人へ(2026年8月時点の注意)

情報Ⅱ教員研修用教材の序章には「サンプルコード、サンプルデータ等については、Webページよりダウンロード可能となっている」と書かれています。ところが、2026年8月3日に私が確認した範囲では、文部科学省の「情報Ⅱ」教員研修用教材のページには本編PDF7分冊のリンクしかなく、サンプルデータへのリンクはありません。授業・研修用コンテンツのページにも情報Ⅱ用のデータは置かれていません。

さらに、情報Ⅰ教材が体力測定データの入手先として示す「科学の道具箱」の個別ページ(…/cp0530/contents/04-03-01.html)と、情報Ⅱ教材が参考サイトとして挙げるページ(…/cp0530/start.html)は、いずれも 301 でサイトのトップに転送され、目的のページに到達できません(コンテンツ一覧 …/cp0530/contents/ は生きています)。

だから本講では、教材のデータをそのままなぞらず、自分でデータを作りました。10章のデータは10件で、電卓でも追えます。リンク切れは学習を止める理由になりません。手で作れる大きさの例を自分で用意して、同じ性質が出るかを確かめる——それがこの科目のいちばん確実な勉強法だと私は思います。

まとめ

  • 重回帰の係数は「他の説明変数の値をそろえたうえでの効き方」。だから単回帰と符号が逆になることがある(本講の例では +11.0 → −6.0)
  • 「そろえる」は比喩ではない。相手の変数で説明できる分を両側から引き算してから傾きを測ると、重回帰の係数と厳密に一致する
  • 重回帰は交絡の調整装置だが、測ってある変数しか調整できない。観察データである限り因果の主張には限界が残る
  • 説明変数を増やすと R2必ず上がる。理由は「元のモデルが新しいモデルの候補に必ず含まれる」から。統計ではなく最小化の論理
  • だから R2 は罠になる。教材自身が「2人分なら R2=100% でも残差自由度0で予測力ゼロ」と書いている
  • 自由度は「モデルの複雑さの代金」。自由度調整済み R2 は、無意味な変数を足すと下がる
  • 「自由度」は解説0/情報Ⅰ教材1/情報Ⅱ教材21。高校でここでしか学べない概念
  • 予測が目的か要因分析が目的かで、やってよいことが変わる。自動変数選択は「予測なら可、要因分析なら不可」と教材が明記
  • 「偏回帰係数」「多重共線性」は国の教材にも解説にも0件。ただし多重共線性の内容は変数選択の説明の中に1か所ある
  • 解説 数学編 理数編には「回帰直線」「最小二乗」「決定係数」「残差」がすべて0件。回帰から先は情報科の担当

基礎からの積み上げは第40講 基数変換から、統計側は第84講 データの散らばり第86講 相関第87講 相関と因果第88講 回帰直線の順に読むと本講がそのまま続きになります。情報Ⅱ全体の地図は第109講、シリーズ全体は『藤原進之介の最強120講義』目次およびカテゴリ一覧から読めます。

出典(すべて2026年8月3日に取得)

執筆:藤原進之介(数強塾グループ代表)

オンライン数学専門塾「数強塾」代表。累計3,500名以上の中高一貫校生を指導。東進ハイスクール・東進衛星予備校・代々木ゼミナールなど出講実績あり。情報Ⅰの参考書を複数執筆しており、KADOKAWA『ゼロから始める情報I』、Gakken『きめる!共通テスト 情報Ⅰ』などがあります。本記事は参考書『藤原進之介の最強120講義』第112講のWeb版です。

藤原進之介のプロフィールを見る

「情報Ⅰの先まで見据えて勉強したい」という方へ

数強塾では数学と情報Ⅰの両方に対応したオンライン個別指導を行っています。学習相談は無料、体験授業は3,000円(税込)でお受けしています。

体験授業のご案内つまずき診断(無料・約2分)

情報Ⅰ・情報Ⅱの勉強で詰まっていませんか

この記事を書いているのは、情報Ⅰ専門のオンライン個別指導「情報ラボ」(数強塾グループ)です。講義も過去問も無料で公開しているので、まず全部使ってみてください。

情報Ⅰについて相談する(無料)体験授業(3,000円)

お問い合わせの際は、内容欄に「情報Ⅰ希望」とご記入ください。担当者が直接お返事します。

数強塾オンラインのご案内

体験授業に申し込む入塾受け入れ状況(残席)数学つまずき診断(無料)体験授業の事前案内保護者の方へ高1・高2の方へ医学部志望の方へ保護者様からの声料金・指導システム指導事例・合格実績大学受験 合格実績(集計ルール開示)数強塾グループの理念学校別の数学対策数学の勉強法(記事一覧)数強塾プレミアム(映像授業)獣医学部専門コース鉄緑会・SAPIX等との併用サポート過去問解説・数学問題集情報Ⅰ・情報Ⅱ専門「情報ラボ」情報の過去問アーカイブ(無料PDF)解法テクニック事典(公式・裏ワザ)入試数学の定石(解き方の型・全27章)数学の要点辞典まとめ(中1〜数学III)中1数学の要点辞典(全7単元)中2数学の要点辞典(全6単元)中3数学の要点辞典(全8単元)数学I・Aの要点辞典(全9単元)数学II・B・Cの要点辞典(全12単元)数学IIIの要点辞典(全7単元)論理と証明の要点辞典(全8章)2026年 夏期講習会2026年 冬期講習会代表・藤原進之介について