重回帰分析におけるデータ数と説明変数の数 元茨城学習センター長 塩見 正衛

投稿日: 2012/05/03 12:31:21

データから経験的な数式を作り出す方法の一つに、重回帰分析があります。重回帰分析は、自然科学、社会科学を問わず、データがどのような因子で成立っているかついての知識を得たり、数値予測をするのにとても有効な方法です。今回は、重回帰分析でよく起こす過誤について調べ、注意を喚起します。

重回帰式の一般形は次のように書かれます。yを総合的な変数とし、x1, x2, …, xpyに影響を与えると考えられるp個の変数とします。yを目的変数、x1, x2, …, xpを説明変数と呼んでいます。たとえば、米の単収をyとします。稲の生育期間中に米の収量に影響を及ぼすと考えられる因子として、田植え時の窒素肥料の量x1、田植え後1カ月後の雑草量x2, … ,というような変数を考えます。そこで、yx1, x2, …, xp の一次式として表わせるとき、yx1, x2, …, xpによる重回帰分析といいます。(数学的には、もっと抽象的な定義がなされていますが、ここでは回避します。) 実験で得られたデータがn組あるとすると、第i組目のデータに対して、

yi = b0 + b1x1i + b2x2i + … + bpxpii = 1, 2, …, n

と書かれます。ここで、bij番目の説明変数の偏回帰係数(j = 1, 2, …, p)、b0は重回帰式の切片です。

実際に測定されたyの値と、式から計算されたyの値は記号で区別して、計算されたyyと書くことにします。したがって、ei = yi yiは測定値と計算値の差 (残差と呼ぶ)、重回帰式の「良さ」を表わしています。| ei |は小さいほど重回帰式は「データの性質をよく表わしている」あるいは、「データによく適合している」といえます。このデータへの重回帰式の「適合程度」を表すのに、決定係数(あるいは寄与率)と呼ばれる指数がよく使われています。R2と書かれることもあります。決定係数R2は次のようにして計算されます:n個のデータyiの偏差平方和をSyとし、eiの偏差平方和をSeeiの平均は0だから、2乗和と同じ)とします。この両者の差の比(Sy Se) / Syが決定係数R2です。データに対して、「重回帰式が全く適合していない場合」は、Sy = Seとなると考えられますからR2 = 0、一方、「完璧に適合していた場合」はSe = 0ですからR2 = 1が得られます。この関係から、「R2 は1に近くなるほど、データに対して重回帰式がよく適合している」といえます。証明は省略しますが、ここに示したR2 の平方根、すなわちRはデータyiと重回帰式で計算した値yiの相関係数でもあります。ですから、データと計算から得られた値が全くでたらめに対応しているなら、Rは0でしょう。近いほどRは大きな値、すなわち1に近い値になると想像できます。

さて、次に、ここに潜んでいる自己矛盾を説明したいと思います。すなわち、「はたして、R2は1に近いほどいい重回帰式なのかどうか」ということをです。数値例を乱数で作り、それを使って説明します。

重回帰分析における目的変数のデータyiはある平均の周りにばらつく正規分布に従っていることが前提になっていますから、ここではn = 10個のyi (測定値) は正規乱数で発生させました。説明変数xiは、正規分布に従っている必要はありませんから、一様乱数で作りました:データの組数より1だけ少ないp = 9変数、x1, x2, …, x9です。

図1に、目的変数を順次増やしていくと、重回帰式の決定係数R2がどのように変化していったかを示しました。また、最近、説明変数としてどの変数を選ぶかを決めるためによく利用されているAIC値もプロットしてあります。

目的変数の値はすべて乱数で作ったのですから、yがこのような目的変数でうまく説明できるとは考えられません。しかし、この重回帰式では、目的変数の数がデータ数に近ずくに従って、決定係数R2は1に近ずいて行き、ついには、説明変数が9個に達するとR2 = 1になってしまいました。10個だけのデータ数に対して、9個もの説明変数を使うと、「この特殊な」10個のデータの変化は完璧に説明できます。しかし、完璧すぎて、そのデータの背景にあるデータ集団全体の説明には、適しているとは考えにくいでしょう。このように、重回帰式にデータ数に等しいほどの数の説明変数を導入すると、「予測」には適さないと思われる式になってしまうことが多いのです。ちなみに、最低限2組のデータ(x11, y1)と(x12, y2) があれば、説明変数1個の式y = b0 + b1x1が決定でき (R2 = 1)、3組のデータ(x11, x21, y1)、(x12, x22, y2)、(x13, x23, y3)に対して、説明変数2個のy = b0 +b1x1 + b2x2が決定できます(R2 = 1)。この場合、データの組数nと説明変数の数pの間には、p = n –1の関係があります。重回帰式のq個の説明変数は一般には、q pですから、q n –1です。「決定係数R2が大きい重回帰式は好ましいのですが、大きすぎるR2 をもっている重回帰式は一般性を欠くので予測性が悪い」という矛盾を抱えています。どのようにしてqを決めるかの問題はモデル選択と呼ばれていて、種々の方法が提案されています。その一つが、AIC値が最も小さくなった説明変数の組合せからなる重回帰式を使うことです(図1の例では、説明変数の数が8のとき、急に小さい値をとったのですが、理由は分かりません。おそらく、計算に用いたフリーソフトRのプログラムにバグがあるためでしょう)。この例では、AICが最も小さな値をとるのは説明変数の数が1と2のときで(図1)、y = 175.7 – 0.175x1y = 165.0 – 0.127x1 + 0.189x2あたりですが、偏回帰係数はともに5%の危険率では有意にはなりません (x1x2も乱数ですから当然でしょう)。以上の話は、重回帰分析を使われるときに参考にしてください。