アプリ版:「スタンプのみでお礼する」機能のリリースについて

最小二乗法(最小自乗法)を下記の非線形の式に適用したいので下記の式を線形に変換したいと考えているのですがやり方がわからず困っております。

y(x)=α - βe^(-Γx)

(最小二乗法でα、β、Γを求める予定です)

また文系出身ということもあり微分、積分の基本的な公式も抜けているところがあるのでなるべく細かく式を展開していっていただければ幸いです。。

よろしくお願いいたします。

質問者からの補足コメント

  • ご連絡が遅くなり申し訳ございません。

    失礼致しました、ご回答者様のご指摘通りΣの計算およびexpの計算に誤りがございました。。やはり十年近く使っていない知識はあやふやになってしまうものですね、、

    ご回答いただきました内容、参考資料などしっかりと理解できましたらまたご連絡させていただきます、よろしくお願い致します!

    No.3の回答に寄せられた補足コメントです。 補足日時:2016/08/12 10:16

A 回答 (3件)

No.1&2です。

No.2の「お礼」に書かれたことについて。

>またご教示いただきましたNo.1の指数の方法で展開してみましたのですがα=yi,β=0となってしまいました 。。重ね重ね誠に申し訳ないのですがもし誤っているところがあればご教示いただけましたら幸いです!

 これは、指数関数に Σ も入っていて、一般解を求めるのはかなり困難です。実際に (xi, yi) の値を入れて、数値計算するということになると思います。ただ、expの中に未知数 Γ が入っているので無理かな?
 近似式を立式の段階で、、Xi→∞で y → α なので「α」は理論値で決めておくとか、「α」が決まれば
  (1/α)y(x) = 1 - Be^(-Γx) = 1 - e^(C - Γx)
  (B = β/α, e^C=B )
にするとかの「前処理」が必要かもしれません。

No.1の「お礼」に書かれた式では、偏微分した段階で Σ がどこかに行っちゃいました。あくまで「総和」で扱わないといけません。
なお、偏微分する前の段階で、xi, yi を含まない項は N 倍して Σ の外に出ます。(単純に「N回足し合わせる」ということですから)この「N」も抜けています。

∂α:
0= 2Nα - 2βΣe^(-Γxi) - 2Σyi

∂β:
0= -2αΣe^(-Γxi) + 2Σe^(-Γxi)yi + 2βΣe^(-2Γxi)

∂Γ:e^(-Γxi) を Γ で微分すると、「定数 -xi」が外に出ます。
0= 2αβΣxie^(-Γxi) - 2βΣxie^(-Γxi)yi - 2β^2Σxie^(-2Γxi)

ちょっと解析的には無理かも。


 この計算、ひょっとして「ロジスティック回帰分析」「ロジスティック・モデル」で必要とされているのではありませんか? 少なくとも、お示しの式で y → α/y とすると、下記のロジスティック・モデルの式と一致します。

https://ja.wikipedia.org/wiki/%E3%83%AD%E3%82%B8 …
http://www.ibaraki-kodomo.com/toukei/logis.html
https://bellcurve.jp/ex/function/logistic.html

 もはや、手計算では手に負えず、統計ツールなどのお世話になる領域なのかもしれません。(私は使ったことがないので分かりませんが)
 必要に応じて、上記の統計ツール(エクセル統計、SPSSなど)を調べてみてください。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ご連絡が遅くなり申し訳ございません。

ご回答者様にご教示いただいたことを踏まえ自分なりに計算してみました、またαについては理論値を使用して(αを定数として)計算してみることにいたしました。

そのため式はご回答者様に例示していただいたαを定数とした場合の最小二乗法を考えてみました。
y = α - βe^(-Γx)
y = 1 - e^(C - Γx)
(B = β/α, e^C=B )

Σ(yi - 1 + e^(C - Γxi))^2
=Σ[(yi^2 - yi + yie^(C - Γxi)) - (yi - 1 + e^(C - Γxi)) + (yie^(C - Γxi) - e^(C - Γxi) + e^2(C - Γxi))]
=Σ(yi^2 - 2yi + 2(yi-1)e^(C - Γxi)) + e^2(C - Γxi) + 1)
=Σ(yi^2) - 2Σ(yi) + 2Σ((yi-1)e^(C - Γxi)) + Σ(e^2(C - Γxi)) + N

これをそれぞれ偏微分すると下記の用に変換可能
e^(C - Γxi)をCで微分したとき⇛e^(C - Γxi)
e^(C - Γxi)をΓで微分したとき⇛-xie^(C - Γxi)

∂C:
0=2Σ((yi-1)e^(C - Γxi)) + 2Σ(e^2(C - Γxi))

0=2e^CΣ[(yi-1)e^(- Γxi)] + 2e^2CΣ[e^(-2Γxi)]

-Σ[(yi-1)e^(- Γxi)] = 2e^CΣ[e^(-2Γxi)]

e^C= -Σ[(yi-1)e^(- Γxi)] / 2Σ[e^(-2Γxi)]

∂Γ:
0=-2Σ((yi-1)e^(C - Γxi)) - 2Σxi(e^2(C - Γxi))
申し訳ございません、この後の展開はわかりませんでした。。。

expの中に変数Cが入っているので両辺の対数を取ろうと思ったのですがΣe^(- Γxi)の対数を取った時に
どのような変化が起こるのか存じておりませんでした。ご回答者様のいうとおり一般解を求めるのは難しいのでしょうか?

またロジスティック回帰に関してですがあるデータにこの式を適用できないかを考えておりました。
少し調べてみたいと思います。

お礼日時:2016/08/13 20:47

No.1です。

あ、失礼しました。与式を「直線」の式にする方法でしたか。

y =α - βe^(-Γx)



(α - y)/β = e^(-Γx)

として、両辺の「自然対数」をとれば

ln[ (α - y)/β ] = -Γx

左辺は
ln[ (α - y)/β ] = ln(α - y) - ln(β)
ですから
  ln(β)/Γ = B
とでもおいて、

 x = -[ ln(α - y) ] /Γ + B

と書けばよいでしょう。

この式に対して、x と y を逆転してNo.1に書いた方法で α, Γ, B を求めることができると思います。

No.1のように「指数」で計算するか、このように「対数」で計算するかの違いで、結局は同じことですが。偏微分を考えると「指数」の方が計算しやすいと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

なるほど、私が線形でないと思い込んでいただけだったのですね!
またご教示いただきましたNo.1の指数の方法で展開してみましたのですがα=yi,β=0となってしまいました 。。重ね重ね誠に申し訳ないのですがもし誤っているところがあればご教示いただけましたら幸いです!

よろしくお願いいたします。

以下計算式
/****************************************/
Σ( α - βe^(-Γxi) - yi ) ^2
=Σ[(α^2 - αβe^(-Γxi) -αyi)
+(-αβe^(-Γxi) + β^2e^(-2Γxi) +βe^(-Γxi)yi)
+(-αyi + βe^(-Γxi)yi + yi^2)]
=Σ(α^2 - 2αβe^(-Γxi) - 2αyi + 2βe^(-Γxi)yi + β^2e^(-2Γxi) + yi^2)

∂α:
0= 2α-2βe^(-Γxi) - 2yi
α = βe^(-Γxi) + Σ(yi)

∂β:
0= -2αe^(-Γxi) + 2e^(-Γxi)yi + 2βe^(-Γxi)
β = (2αe^(-Γxi) - 2e^(-Γxi)yi)/e^(-2Γxi)
β = (2α - 2yi)/e^(-Γxi)

∂Γ:
0= - 2αβe^(-Γxi) + 2βe^(-Γxi)yi + β^2e^(-2Γxi)
= e^(-Γxi) [ - 2αβ + 2βyi + β^2e^(-Γxi)]
e^(-Γxi)=(- 2αβ + 2βyi)/β^2
e^(-Γxi)=(- 2α + 2yi)/β
-Γxi=(- 2α + 2yi)/β
Γ=[log(2α - 2yi)/β]/xi


α = βe^(-[log(2α - 2yi)/β]/xi * xi) + yi
α = βe^(-log(2α - 2yi)/β) + yi
α = - (2α - 2yi) + yi
α = - (2α - 2yi) + yi
3α = 3yi

α = yi

β = (2α - 2yi)/e^(-Γxi)
=(2yi - 2yi)/e^(-Γxi)
=0

Γ=[log(2α - 2yi)/β]/xi
=[log(2yi - 2yi)/β]
=不明

お礼日時:2016/08/08 00:56

y(x)=α - βe^(-Γx)


は、直線ではありませんが、「非線形」ではありませんよ。

その関数形でフィッティングするなら、実測値(x1, y1), (x2, y2), (x3, y3), ・・・,(xn, yn) に対して
 Y1 = y(x1) = α - βe^(-Γx1)
 Y2 = y(x2) = α - βe^(-Γx2)
 ・・・
 Yn = y(xn) =α - βe^(-Γxn)

あとは、各々の偏差
 Y1 - y1
 Y2 - y2
 ・・・
 Yn - yn
を二乗して合計し、その合計値を「最小」にする α , β , Γ を求めればよいのです。

具体的には
 S = Σ( Yi - yi )^2 = Σ( α - βe^(-Γxi) - yi ) ^2
を計算し、 α , β , Γ で構成される式になるので、それを「最小=極小」にする α , β , Γ を求めるために、それぞれ α , β , Γ で偏微分した3つの微分係数が =0 となる3つの連立方程式を作ります。

それを解けば、S を最小にする α , β , Γ が求まります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!