座標系に観測データをプロットして、近似曲線(直線近似をする場合が多いでしょうが)を最小自乗法(回帰分析)を使って求めたい場合が多々ありますが、通常の最小自乗法では観測データに不確かさ(統計学で教えるところのいわゆる標準偏差に相当するものであるが、最近の計量法では「不確かさ」という用語をもっと広い視野に立って使用します)がないという前提で解析することが多いのですが、観測データそのものに測定機器や測定方法あるいは繰り返し測定における不確かさがある場合の方が現実的なので、この不確かさを加味した最小自乗法による近似曲線のパラメータ(回帰係数)そのものやパラメータの誤差分散(不確かさの尺度となる統計量)を求めたいことがあります。このような
座標系の観測データに不確かさがある場合の最小自乗法(回帰分析)を可能にしたのが、日本でもデミング賞で有名な米国のWilliam Edwards Deming博士が学位論文で発表したDemingの近似計算による最小自乗法(Demimg法回帰分析)です。原著:
W. E. Deming, Statistical Adjustment of Data, 1st ed., Dover Publications, Inc. (1964)
はすでに絶版であり、またその翻訳本も絶版となっているため、ここにその内容の概要(「Demingの方法(重み付き1次式の回帰分析)」と「1次式回帰分析と重みについて」)を紹介し、以下にその方法による回帰分析の計算プログラムの実例をいくつか掲載しました。
|
Deming_0.xls (重みの定義:
|
Fitting_3.xls (重みの定義:
|
Fitting2_3.xls (重みの定義:
|
Fitting3_3.xls (重みの定義:
|
|
Fitting4_3.xls (重みの定義:
|
|
Fitting5.xls
(重みの定義:
|
|
deming_example.xls (重みの定義:
|
上図はExcelマクロDeming_0.xlsの計算結果の描画例
(注1) Fitting_3.xlsは、Deming_0.xlsを改良して、いろいろな関数にも適用可能にするためプログラミングしやすくしたマクロです。
マクロFitting_3.xlsを他の関数[観測方程式は
]に適用するには、このマクロのサブルーチン
の内容を書き換えるだけですみます。その場合は、
[
:データ数であり、
である] と
[
:パラメータ数] および
,
を書き換えて下さい。ここで、
は
番目のパラメータ(回帰係数)の近似値です。
たとえば、のような2次関数に適用する場合には、
であり、
となります。ただし、重み関数
にかかわるコマンド文
と
は関数が変わってもそのままです。このように、
は常に観測方程式そのものを表しています。
ただし、Fitting_0.xlsとFitting_3.xlsは観測データ
や
の重みを
と定義して計算しているので、あらかじめ回帰の残差分散
がわかっている場合でないと計算できません。そうでない場合は、Fitting4_3.xlsを使って下さい。後者の場合は重み係数の分散
を与える必要がありますが、この
にはどのような値を仮定しても計算結果は変わりません(もちろ回帰残差分散
は
によって変わりますが、求めたい回帰係数やその誤差分散そのものは変わりません)。
(注2) 重みは、マクロFitting4_3.xlsの場合のように、
と定義するのが最も一般性があり、Deming_0.xlsやFitting_3.xlsの場合は
、あるいは、Fitting2_3.xlsの場合は
と定義した特殊な場合です。
重みの定義式中の分子
は重み1に相当する分散であるが、データの重みは相対的なものであるので、通常任意の定数をその値として選ぶことができます。ただし、
にどのような値を選んだかは、Deming法重み付き回帰分析エクセルVBAマクロの計算結果に影響してくるので、注意しておく必要があります。また、分母の
は
番目の標本データ(大きさ
個)の分散であり、標準不確かさ
は標準偏差
をデータ数の平方根
で割った統計学で言うところの標準誤差に相当する量です。したがって、
の場合に限り、
は標準偏差
と一致することに注意して下さい。
(注3) マクロFitting4_3.xlsは最も一般的な
次元多項式のDeming法回帰分析マクロです。
(注4) Fitting5.xlsはマクロFitting4_3.xlsの一変数の場合への応用例です。
(注5) マクロdeming_example.xlsはDeming法回帰分析の著者が書いた有名な本:
W. E. Deming, Statistical Adjustment of Data, 1st ed., Dover Publications, Inc. p. 218 (1964)
の中の例題を紹介がてらその解法をExcelでマクロ化したものです。この例題を勉強すれば、観測値の各点における標本数
と標本分散
からどのように
の分散の推定値(内部誤差分散)
を求め、またそれらの値から
の重み
をどのように求めたらよいのかがわかります。また重みの任意の係数
の役割についても学ぶことができます。
このマクロでは例題の趣旨通りおよび
とした近似により最終的な計算処理をしていますが、マクロのその近似部分の記述箇所(***********で囲ってある部分)を削除すれば、例題の標本データから直接算出可能な
や
を求めて回帰分析結果を表示することも可能になっています。しかしながら、そのような理論的計算を行っても、あるいは、この本に記述されているような近似計算を行っても、回帰係数
の値やその標準偏差
の値にはほとんど差がないことがわかります。すなわち、Deming法回帰分析では観測値である標本データの重みの定義式に関してはそれほど厳密性が求められるわけではないことがわかります。
Deming法重み付き回帰分析エクセルVBAマクロ2
(
両座標に不確かさのあり、しかも
座標間に相関がある場合の最小自乗法)
deming_ISO_cov.xls (重みの定義:
)
(参考) ISO 6143:2001(E)によれば、
座標共に不確かさのある重み付き回帰分析(Deming法)において、
座標間に相関がある場合については、回帰係数の誤差分散
のうち純分散の項(
)は係数行列の逆行列の要素として求められるが、共分散の項(
)は通常のDeming法では求めることができないため、ある任意の変数(
)によるある関数(
)の偏微分
と標準不確かさ
の積が一般的に次式
で近似できることから、Deming法で求められる
個の観測値の組
の最確値
(最小二乗曲線に乗っている計算値)に最初は
を加え、次に
を引いた値をそれぞれ求めると、
個の値が得られますので、これらから上式と次式
から回帰係数の誤差分散
を共分散項まで含めて計算できるとされています。
このような考え方に基づいてエクセルVBAで作成された回帰分析マクロがdeming_ISO_cov.xlsです。
Deming法重み付き回帰分析エクセルVBAマクロ3
− 粟屋-ISO方式Deming法改良型近似計算 −
(
両座標に不確かさのある場合の最小自乗法)
POLYNOM_kojima.xls (重みの定義:
)
POLYNOM_kojima_linear.xls (重みの定義:
)
(参考) 上述のDeming法重み付き回帰分析(Fitting4_3.xlsなど)では近似計算がうまく行かないケース、たとえば
x
ux
y
uy
2
1
3
1
5
1
4
1
6
1
7
1
9
1
8
1
のように直線関係からかなりはずれた
座標点の散らばりに対して、無理矢理、1次近似の回帰直線をあてはめて、回帰係数とその分散を求めようとする場合です。これを通常のDeming法で近似計算すると、重み付けしない通常の回帰直線近似計算と全く同じ回帰係数(
および
)が得られ、重み付けした意味がなくなります。そこで、Deming法を改良した粟屋(青山学院大学理工学部教授)-ISO方式(ISO 6143:2001(E))近似計算を基にしてExcel VBAマクロで組んだプログラムPOLYNOM_kojima.xlsで、上述のデータを直線近似しますと、回帰係数を正しく算出(Excel標準の近似計算ソルバー(下図参照)による計算結果 [
および
] と一致)することができます。ただし、現実にはこのように理想回帰曲線から大きくばらついたデータに回帰分析を適用することは希だと思われるので、通常は普通のDeming法(Fitting4_3.xlsなど)で十分な近似計算ができます。
solver.xls (重みの定義:
)
もちろん、このような複雑な粟屋-ISO方式Deming法改良型近似計算マクロを使用しなくても、簡単な回帰直線近似の場合は、通常のDeming法回帰分析マクロFitting4_3.xlsなどで、観測方程式
の係数行列の偏微分係数項
の値
に、観測値そのままではなく、繰り返し近似計算ループで次々と求まる補正値
を考慮して補正した値
を代入することにより、回帰係数と分散・共分散を正しく求めることができます。実例は下記のマクロDeming_revised_linear.xlsを参照して下さい。
Deming_revised_linear.xls (重みの定義:
)
上記グラフ作成エクセルVBAマクロ2のサブルーチンDataGenration(ndata, x(), y())の内容を書き換えれば、任意の関数のグラフを描くことができます。下図はデフォルトで上記マクロのサブルーチンDataGenration(ndata, x(), y())に書き込まれている3種類の指数関数を自動描画した例です。 上記グラフ作成エクセルVBAマクロ3では横軸のX軸の目盛り間隔は実際の数字の幅でもあるいは上図のように実数字に無関係な等間隔でもプロットできます。
グラフ作成エクセルVBAマクロ2
(1次式/2次式/3次式近似曲線および折れ線描画機能付き)
グラフ作成エクセルVBAマクロ3
(2つのY座標軸を持つ棒グラフ)