32.2 Lesson 2: シグモイド関数のあてはめ
このチュートリアルでは、実世界のシナリオにしたがって典型的な非線形回帰の手順を紹介します。
- 実験データの考察と分析
- 異なる方程式で当てはめる
32.2.1 実験データの考察と分析
このチュートリアルで使用するデータは、頸部 (頸動脈洞圧) と心臓の出口付近 (平均動脈圧) の血圧の測定値をあらわしたものです。
この2つの血圧の関係は逆相関です。頸部の血圧が低下すると、心臓は脳への血流を維持するために血液をより多く送り出そうとします。仮にこの補償が即座に行われなければ、立ち上がるたびに意識を失ってしまうことになるでしょう。
頸部のセンサーが血圧の変化を検知すると、フィードバック信号が心臓に送られます。例えば、まず朝ベッドから起床したときは、血液は両脚に向かって流れ落ちる傾向があります。これによって頸部の血圧が低下するので、センサーは脳への血流が減少しないように、心臓に血液をより多く流すように指示します。
この効果を実際に体験できる面白い実験があります。1分間起立したままリラックスし、脈拍を計ります。30秒間、脈拍をカウントしたら、横になってすぐにもう一回計ります。このとき脈拍は 25% ほど落ちるはずです (横になると、心臓は脳に血液を多く送り出す必要がないからです)。
- Regression Examples (NONLIN.JNB) ノートブックの Tutorial 2 セクションにあるグラフページのアイコンをダブルクリックして、Tutorial 2 のグラフを開きます。詳しくは、SigmaPlot の User Files と Program Files についてをご覧ください。
- グラフの内容をみてみましょう。2つの血圧が逆相関しているのは明らかです。一方が増加すると、もう一方は減少しています。グラフの形状が逆S字に見えることから、シグモイド式が使えそうです。
シグモイド型の曲線は、右上と左下の両端が左右に伸びた S 字に似ています。この事例の場合は、大きい値から始まり、小さい値に減少していきますので、S 字の向きが反対です。
シグモイドをあらわすのに様々な形態のシグモイド関数が一般に利用されますが、この事例では、標準回帰ライブラリに用意されている4パラメータのシグモイド関数 (four parameter sigmoid function) を使用することにします。
- 曲線をマウスで右クリックして Curve Fit を選択します。Regression Wizard が表示されます。
- Equation Category から Sigmoidal を選択し、使用する方程式に Sigmoid, 4 Parameter を選択します。
- Next を 2回クリックします。曲線が正しく選択されていれば、Iterations ダイアログボックスがあらわれ、各パラメータの値と、反復計算ごとに平方和 (Sum of Squares) が表示されます。
※ Note: 反復計算は線形フィットに比べて時間がかかります。これは、方程式がより複雑で、パラメータの数が多いからです。Sum of Squares の値が減少していくのを見てください。この数値は、あてはめの緊密さあらわす指標で、あてはまりが良いほど値は低くなります。 |
あてはめの条件が満たされると、あてはめの結果が表示されます。
- 結果を詳しく見てみましょう。最初の列にはパラメータの値 (Value) が、その次の列には標準誤差 (StdErr) の推定値が表示されます。3つ目の列は、各パラメータの変動係数 (CV%: coefficient of variation) です (算出された CV% 値は最大でも約 3.9% となっており、現実的にはあり得ないほど良い値である点に注意してください。生理学的測定における CV% 値は 5%を上回るのが一般的です。)。
実際の非線形回帰問題においては (線形フィットではなく、ここで取り扱うシグモイドフィットのような問題) 、絶対的に正しい CV% 値というものは存在しません。しかし、パラメータの相対的ばらつきを比較するのにこの値を利用することができます。例えば、b (3.9) は、c (0.45) に比べてばらつきが約 8 倍あります。
最後の列の Dependencies (従属性:独立性の無さ) では、値が 1.0 に近いものはありませんので、このモデルには余計なパラメータはないと考えることができます。
- 回帰分析の結果を保存するには、Finish をクリックします。レポートと一緒にワークシートデータとあてはめ曲線が、ノートブック、ワークシート、および、グラフに追加されます。
32.2.2 異なる方程式で当てはめる
回帰分析を複数実行し、これらの結果をグラフ上にプロットすることができます。パラメータ値の変更にともなう影響を評価したり、あてはめる方程式の置き換えによる効果を比較する場合に、こうした作業を一般に行います。
この事例では、4パラメータの代わりに5パラメータの関数を試してみることにしましょう。
- キーボードの F5 キーを押すと、Regression Wizard が表示されます。方程式リストから Sigmoid, 5 Parameter を選択します。
- Next をクリックしてから Options をクリックします。Iterations ボックスに 5 を入力します。
Iterations (反復) オプションは、結果が表示されるまでの間に実行する反復計算の最大数を指定します。実行する反復計算の数を制限することで、時間のかかる回帰式が問題なく動作するかを確認できます。指定した反復回数で回帰計算が完了しない場合は、Fit Results パネルの More Iterations ボタンをクリックすることで計算を続行することができます。
- OK をクリックします。
- Next をクリックしてあてはめの計算を開始します。Fit Results パネルに変わり、そこに“Did not converge, exceeded maximum number of iterations.” (収束しませんでした。反復の最大数を増やしてください。) と表示されます。
- More Iterations オプションが有効になっている点に注意してください。More Iterations を2回クリックします。回帰計算が繰り返され、反復数 14 で最終的に収束します。
- 計算結果を詳しく見てみましょう。平方和 (Sum of Squares) の値、標準偏差、CV% 値は、4パラメータのあてはめのときより低くなっており、あてはまりが改善した可能性を示唆ています。しかし、Dependencies (従属性) で 1.0 に近いものが2つあるため、パラメータの増加が必要なかった可能性もあると考えられます。
- Finish をクリックして、この回帰分析の結果を保存します。ここで行ったレポート、データ、回帰式の曲線などはいずれもノートブックに個別に追加されます。
- 2つの回帰曲線を区別するには、曲線の一方をマウスでダブルクリックしてラインの色を青に変更し、もう一方の回帰曲線を赤に設定します。
- 曲線のあてはめを視覚的に比較してみましょう。予想したとおり、5パラメータ関数のあてはまりの方がわずかに改善しているのを確認できます。