from 05.10.03
s.gifここは初心者向けの主成分分析学習の国だよ。 最終更新日 2005.10. 8

第6章 シグモイド曲線を求めよう


シグモイド曲線を
当てはめてみよう
サーチエンジンから直接入ってきた人は、フレームで目次を示していますからこれで目次表示にするとタコ国全体が見やすいです。ここは 6 章から入ります。

 シグモイド、ロジット、プロビット、ゴンペルツって何?

 シグモイド曲線とは

シグモイド曲線とは、座標の中でS字型の曲線を描くものです。

gom_curve.gif

たとえば、塩水の濃度を舌で感じる強さは、極端に薄い濃度の範囲では塩分濃度を上げても塩味はあまり感じないけれど、ある濃度あたりから濃さの応じて比例した塩分の強さを感じるようになります。あまり濃くなってくると今度は濃度を増やしてもただ濃い濃度にしか感じない領域に入ります。

薬などの投薬効果も同じようにシグモイド曲線になることが知られています。我々の周囲にはシグモイド曲線を描く多くの事例があります。増加が頭打ちになる曲線はたいがいこれです。商品の売上数のライフサイクル前半とかも入るかな。

シグモイド曲線は、ジャンルによって使用上の目的が違うので、いろいろの名前で呼ばれます。成長曲線、需要曲線、微生物増殖曲線、死亡率曲線、サイフサイクル曲線などなど。あ!、ラだ。

同じS字でも、適用する関数式がいくつかあり、分野によって好まれているやり方があります。近似式の対象が、何らかの方法で本当にその関数になると証明されていないかぎりどの関数を近似式に選ぼうと自由です。しかし違う方法を適用すると、その分野では自分だけなぜその関数を適用したかを説明せざるをえないハメに陥ります。

関数式は次の3種がよく使われています。シグモイド形状を何とか直線回帰の係数計算にもちこむためにそれぞれ固有のデータ変換方式があります。はじめの二つはS字形状が回転対称を前提にしていますが、ゴンペルツは自由です。それぞれ制約なりルールがあります。

累積正規分布曲線 :プロビット変換
ロジスティック曲線:ロジット変換
ゴンペルツ曲線  :対数化した差分

とりあえず プロビット変換の説明

死亡率 p からプロビット変換するには、エクセルなら関数に準備されているよ。同じマウス数に対して薬品の投与量を2倍、4倍、8倍・・・といった指数比で水準を変えてそのときの死亡率または有効率を p とします。投与量の単位はいろいろです。

fx ボタンを押す>統計>NORMSINV(標準正規累積分布の逆関数)>OK>のセル参照
で一応変換できるけど「−」の符号がイヤで、5を足した値をプロビット値とすることがよく行われている。投与量の対数を横軸、プロビット値を縦軸にすると直線になるはずという原理で回帰分析される。

各水準の供試マウスの数が同じ時には通常の回帰分析が使われる。えられた回帰式の p = 0.5 (半数死亡または半数有効)のときの投与量が LD50(50% Lethal Dose) または EC50(50% Effective Concentration) 値となる。

元の確率 p に戻すには 5 を引いておいて NORMSDIST 関数かな。標準化の系で考えるのがイヤという人は NORMINV 関数を使えばいいよ。5 ×標準偏差値を足すことになるけど。面倒でしょ?

 

 ゴンペルツ曲線の求め方

 ゴンペルツ 攻略作戦

我々の周囲で完全に回転対称になる曲線は限られているから、ここではその中でも比較的適用範囲が広く、ここで勉強した範囲に近い方法として、ゴンペルツ曲線(Gompertz curve)の当てはめ方を学ぶことにしましょう。
ただし、複雑な形状の曲線なので、これまで勉強した回帰計算から直接最終の式の係数がえられるわけではありません。次の作戦で進みます。

  1. 次の(1)式がゴンペルツ式です。最終目標は、この式の係数または定数 K、a、b の値を求めてこのゴンペルツ式を数値の入った式にすることです。gom_siki.gif

    s.gif

  2. まず最初は、 K、b の値を回帰計算から求めます。たとえば、去年の売上と今年の売上の差の数値を △売上 で表すやり方で、(1)式は(2)式に変換できます。この式をよく見ると、独立変数 log y と、目的変数 △log y との単回帰式になっています。  証明を開く --- 再クリックで閉じます

    △log y = ( 1 − b )log K − ( 1 − b )log y  ・・・・・ (2)

     log y = X ; △log y = Y ; −( 1−b ) = A ; ( 1−b )log K = B とおくとこの式はつぎのようになる。

    Y = AX + B

    第5章で説明したように、回帰計算できるだろ?
    回帰計算結果の偏回帰係数 A が数値で得られるから、 - (1 - b) の値が求まりますね。この値から簡単な計算で b の値が決定します。

    (2)式の誘導経過から、差 △log y の数値をいれる欄は、log y2 - log y1 のときは y1 側(上の欄)に入ります。

  3. 同時に回帰計算出力結果の定数項から B の値が得られます。 B = ( 1 − b )log K です。 b はすでに決まっているから、K の値も簡単な計算で決定できます。これで(1)式の K、b が決定できました。

  4. さて、残る a です。ちょっと工夫が要ります。
    x が 0 の場合、(1)式の bxb0 = 1 となります。X = 0 の時の対応するデータを Y0 とすると式が
     Y0 = K a となり Y0 K が既知のため a を計算できます。 x が0の場合というのは変曲点にあたります。だから変曲点にあたる y を推定できれば y0 になります。

    (注) 下の計算例で基準変更の欄があります。そこで 2001 年に数値が0となっています。このことを説明しています。

  5. 指数計算ですから、少しの誤差が大きく結果に響くので、 x = 0 の位置をグラフの直線的に増加している中央(変曲点の近く)にして、そのときの観測データ y、K の値から (1)式より a 値を求めます。

  6. で、ちょっとまった。データにはばらつきがあるから、1点だけで、 y 値を推定するのは危険です。だからゼロポイントに直線部分を選んでいるのです。x が0前後の3点の 対応する y 値の平均値を、ゼロポイントの y 値とします。

  7. ここまでは、変数 x ( 1 ずつ変化する)との近似式になっていますから、実際のグラフは元の観測値にもどすことが必要です。たとえば、1995年を x = 0 としたなら、1996年は 1995 + 1 という換算式をとおして  x = 1 となります。
    今後の y 値を予測したいときにはこの例の場合、(1)式の x → ( x − 1995 )と置き換えた式で算出することになります。

 じゃあ、計算事例にいこか

次の表は、緑の列 が新商品を投入したあとの売上高の経年推移の実績値です。

 ≪あなたの課題≫

  1. 今後の最大売上はどれくらいに見積もられるか。
  2. 2007年度の売上見込みはどれくらいに見積もればいいかを知りたい。

gom_table.gif

 ≪計算の手順≫

  1. 独立変数になる log y の計算欄を作ります。1998年の例では、エクセルなら関数をもちいて =log10(13) と計算させればいいです。独立変数の黄色の列をつくります。

  2. 次に目的変数となる △log y を計算します。1998年にある数値は、log y1999 − log y1998 で計算されています。
    過去側の年度の欄に差の数値が書き込まれていることに注意してください。

  3. 黄色の欄で回帰計算をします、神田ソフトの場合目的変数をいちばん左に置くルールなので、コピーする前に 列の順番を置き換える必要があります。最初から神田方式に列をならべて計算するほうが簡単ですよね。また特に神田ソフトである必要は無く、エクセルの回帰計算で行ってもかまいません。

  4. 回帰計算が終了すると、偏回帰係数と定数項の数値が出力されてきます。表の右側に log y の係数、定数項とあるのがその数値です。

  5. (2)式の log y の係数は、 − ( 1 − b ) ですね。定数項の下にある二番目のブルーの段の式が成立します。式を解けば、 b の値が決まります。

  6. 定数項からも同様の方法で、 K の値が決定されます。

    b = 0.429
    K = 848007

    K の値から今後の最大販売高は、 848,007 千円と見積もられます。
    (注)変曲点以降のS字形状の上のほうの実測値がない中では、推定精度はよくないですから、報告書にはあまり断定的に書かないように。散布図の中に出来上がった近似曲線を描いてみれば判断しやすいでしょう。

  7. では、 a の値を求めてみましょう。(1)式に K、b を代入して(3)式がえられます。

    gom_siki3.gifs.gif

    変曲点は、グラフから見ると2001年あたりにありますから、基準年を2001年にしましょう。上の表には基準変更欄 x に計算値が記載されています。2000年〜2002年の y 値を平均して2001年の推定値 y0 を算出します。

    ( 110074 + 352934 + 582474 ) / 3 = 348494
    y0 = 348494

    (注) うまくグラフに近似式がフィットしなければ、手書きで描いたシグモイド曲線の変曲点 x = 0 のときの y 値をグラフから読み取り、 y0 としてみてください。

  8. b0 = 1 から(1)式は(4)式になるのでこれに代入します。

    a = 10 ( log y0 - log K ) ・・・・・・ (4)

     a = 10 ( log 348494 - log 848007 )
       = 0.410956513
    

    a = y0 / K で計算してもよいです。

  9. これで、求める数値 K、a、b を全て得ることができました♪ その式は次のとおりですね。

    gom_siki_res.gif

    観測値の曲線(青線)と、ゴンペルツ近似曲線(ピンク線)はほとんど重なるほどに一致した。gom_curve2.gif

  10. 最後の課題、2007年度の需要予測値は、上式の x 値に 2007 を代入して計算します。
    y2007 = 843334 千円

  11. はい,お疲れ様でした。君の解析力の巾がすこしひろがったかな。
    ゴンペルツ曲線の式は、色々あるから私の知っている式ではないと力説しないように。一番大事なことは観測値の曲線をいちばんよく近似させることだからね。

  y がゼロから始まらないときは? LD50 はどう計算するの?

y 値が、 0 から始まらない場合には、次のようにします。 x 値が 0 の場合の y の観測値(通常はブランク値といったり、コントロール値といったりします)を ymin とします。
技術的に ymin 値が決定できない場合には一般にシグモイド曲線は近似できません。
観測値がシグモイド曲線として単調増加するならば y > ymin です。

y' = y - ymin ・・・・・・(5)

  と変数変換すれば、 y' 値は上表の売上 y の欄に該当するのでこの欄に数値を入れます。

観測データのなかの最小値を、機械的に ymin 値として扱うと、それが比例的に上昇している部分である場合が生じます。 ymin 値は、シグモイド曲線の下側の水平部分の値である必要があるので、こういったときにはシグモイド近似はひどくあわないものになってしまいます。

(5)式で変換したときには、算出されてくる K 値は次の(6)式の値になっています。報告書のなかで K 値で議論しているのか、 ymax 値で議論しているのかはしっかりと意識しておく必要があります。観測座標の中に推定データのグラフを並べて表示すると間違いを発見しやすいです。

K = ymax - ymin ・・・・・・ (6)

  LD50 などの計算をしたいときには、 ymin 値がゼロから始まるケースに換算した系で、 y = K/2 と置いたときの(1)式を移項して変換した(7)式から算出します。算出される x 値は、基準変更した数値になっていますので、あなたが設定した換算式で元に戻す必要があります。 LD50.gif

 

 

 

 

 ロジスティック回帰の基礎知識

 

  どうも、ゴンペルツは皆が知らないから流行じゃないし、ロジスティック回帰分析をやってみた いというひとが多そう。主成分分析の流れで、関数の当てはめをおまけにつけたんだけど、どうしてもロジスティックがいいという人もいる。

ん〜っ。私としては、なぜか二流扱いされている主成分分析のすごさをみんなに知ってもらいたかったのだけど、お客様には負けるなぁ。残念ながら最尤法を扱えるソフトをもってないのよ。お金ないしね。
仕方ない。計算事例は諦めてね。とりあえず、ロジスティック回帰分析の原理と手順を示しておけば、他のもっと数学的に解説してある文献も読みこなせるようになるかな。

でも、ほんとにすごい主成分分析もやってみてね。主成分分析は情報を集約する方法などという昔の使い方じゃない最新の方法をアップしているんだからね。お約束だよ。

 

ロジスティック回帰分析をなんに使うか。ロジスティック回帰はお医者さんが好きだから、病気診断の判断ツールとして使うことが多い。病気の発生確率を関係する他の因子(コレステロール値等)から計算する。などよく使われているな。

ロジスティック回帰分析は、発生する・しないなどという2分した事象の確率とその他の因子群との関係を回帰式にする場合に使われます。ロジスティック回帰分析では、分類型のデータを集計して発生確率として扱っていることに注目してね。
確率を計算するには、多くの同一条件での発生数をカウントすることが必要になります。ひとつひとつのデータの組で計算する重回帰分析と多数のケースを集計した値で計算するロジスティック回帰分析とはデータの質がちがいます。

さらに、通常はフィールドの調査結果では、ケースごとにサンプル数が異なることが普通です。だから、ロジスティック回帰式の係数計算には通常の重回帰分析ソフト(最小二乗法)では計算せず、最尤法という方法で求められています。
ケース毎のサンプル数を同じにできるマウスなどの実験なら、通常の重回帰分析で対応できます。

 

 基本知識1: オッズとロジット変換

発生確率 p と非発生確率 1 - p の比は、特別にオッズと名前がついています。これは名前だから、あまり考え込まないでね。

オッズがよく使われてきたのはきったはったの勝負の世界。勝ち確率/負け確率 の比がオッズです。勝つ確率は負ける確率の何倍かという数値ですな。オッズが大きいほうが勝ちを呼ぶわけだね。

地域によっては、分子と分母が逆の場合のオッズもあるから、そういう時はオッズが小さい方が勝ちを呼ぶ指標です。

そしてオッズの自然対数値を ロジット と呼びます。これも対数値に名前を付けただけなのだから深く考えないこと。ロジットの のギリシャ語は λ(ラムダ)なのかな。ロジットを λ と表現します。
(1)式の計算でオッズをロジット値にすることをロジット変換といいます。

 

 基本知識2: ロジットを目的変数にした重回帰分析が ロジスティック回帰

ロジット λ (オッズの自然対数値)は(2)式で表すことができるので、多くの因子と多項の回帰分析できます。独立変数が一つ(単回帰)でも成り立つからね。

 

 

マウスで実験する場合なら、マウスの検査数を同じに出来るからこの計算は簡単です。いろいろな実験条件(= 多変数)を複合させて試験して、マウスの死亡率(または治癒率など)を求めると、通常の重回帰分析で計算できます。

目的変数をロジット値に変換しておいて重回帰分析すれば(2)式が完成します。ロジット値の95%信頼区間は普通に重回帰分析から計算できるから、確率 p に逆算すれば確率値での信頼区間が計算できるね。

オッズは多くの因子によって、変わってゆくわけだけど、見方を変えるとオッズの対数値は多くの因子の合成変数なのです。
カンがいい人は競馬のいろいろな情報(馬体重、つやなど)をいれてロジスティック解析すれば勝つ確率が計算できるじゃんと思うよね。入れる変数が勝ちの変数じゃないと馬く(笑って♪)いかないから、筆者は責任をとらないぞ。

ロジスティック回帰で変数選択したい人たちがいます。

お医者さんは、下で説明するオッズ比を使いたいから、ロジスティック回帰式の係数の推定精度が正しいことを願うはずです。この場合は、重回帰分析の変数選択法を用いるやり方が推奨されます。

ただし、関係の強い変数を犠牲にしての結果ですから、選ばれてきた変数だけが病気の発生確率に関与する因子であると報告してはいけません。ステップワイズ法などの変数選択法では、係数の推定精度を上げるためにとりあえず関係の深い二つの変数の一つを捨てただけなのですから。

λと X1、X2、・・・・・Xnとで主成分分析をおこない変数選択(手法詳細は第3章へ)をすれば、肝心の変数を排除する重回帰的変数選択よりわかりやすい変数群が得られます。(詳細理由は第5章の多重共線性へ

 

 基本知識3: ロジスティック曲線とLD50

(1)式は変形すると(3)式になります。合成変量であるロジット値 λ と発生確率 p の関係を座標に描くとロジスティック曲線になります。横軸はロジット値 λ です。縦軸は発生確率 p になります。

(3)式 λ のところに(2)の重回帰式の右辺が入ると、ロジスティック回帰式というわけです。


回帰が投薬量死亡率2変数の場合には LD50 が簡単に求められます。 50%死亡確率( p= 0.5 )のときのλ値が(3)式より求められるから、(2)式に代入して投薬量を求めると LD50 になります。

(3)式を見れば、なぜロジット値を対数値ではなく e を底にした自然対数値にしたかわかりますね。簡単で美しい式にできるからです。

 

 基本知識4: オッズ比

すでにロジスティック回帰式は計算されているとしよう。その利用法を考えたい。

ロジスティック回帰式のどれかの変数 Xi についてだけ,その値を ab にしたときのロジット値 λλaλb とします。そのとき対応する p 値を papb とします。その他の変数は同一条件(同じ値)だと仮定するとロジスティック回帰式はとても便利な性質があります。 (2)式を使ってロジット値の差をとると、その他の変数は同じ条件だから消えて(4)式ができます。

 

 

  (4)式はオッズ a とオッズ b の比の自然対数値を示していいます。オッズ a とオッズ b の比はオッズ比と呼ばれます。

ロジスティック回帰式はすでに計算されていて、係数 βi 値は既知だし、 ab 値は私達が与える任意の既知の値だからオッズ比は(4)式を変形した(5)式で計算できます。

次に説明するオッズ比の利用の説明の都合で、(5)式の中央の式は変形されているけれど、これはよく見るとオッズ比になっているだろ?
オッズも確率の比だけど、オッズ比は「二つのオッズの比」だから混乱しないように。オッズは比で、オッズ比は「比の比」だからね。

 

 

  もし papb が、非常に小さい確率の時には中央の式の右の項は近似的にになります。だからこの場合オッズ比は近似的に papb の比になります。

たとえば通常の健康な人の Xi の測定値が b のとき pb が健康な人の病気発生確率ですが、測定値が a になった場合には病気発生率は何倍になるかという数値としてオッズ比が使えます。ある処置をとって相対危険度(RR)はいくらぐらいかという判断に使うようです。多変量のロジスティック回帰式を求めておくと、一つの式で色々な変数に対して、オッズ比はすぐに計算できて便利ですね。

 

 

s.gif
次章、ここまでやれば一人前になるぞ。ここだけ見てもダメだけど。s.gif
 主成分分析の解釈トレーニングは他にないぞ。  石田秀人
  フレーム目次を表示

  第5章へ s.gifs.gif中級へ(解釈トレーニング)
上へ