指数関数の方程式は$ y = ae ^ {bx} $

データは次のようにプロットされます。 変換されていない指数プロット

線形回帰のためにこれを変換する:$ ln(y)= ln (a)+ bx $

この変換は、以下のプロットに示されています: 変換

次に、線形回帰方程式は次のようになります。$ ln(y)= -369.9778 + 0.187693x $

$ y = ae ^ {の形式に戻すにはどうすればよいですか。 bx} $ ??

私の問題は$ ln(a)= -369.9778 $にあります。 $ a $値を取得する方法について。

Excelでも方程式を正しく取得できませんが、トレンドラインはありますか?それがどのように導き出されるのかわかりません。トレンドラインは、データに基づく実際のシナリオをまったく表していない: 間違った動作

ただし、最新のデータポイントを使用すると、ある程度正確になります。 より正確です最新のデータを取得したとき

データは次のとおりです。

Year Asymptomatic AIDS Total 1984 0 2 2 1985 6 4 10 1986 18 11 29 1987 25 13 38 1988 21 11 32 1989 29 10 39 1990 48 18 66 1991 68 17 85 1992 51 21 72 1993 64 38 102 1994 61 57 118 1995 65 51 116 1996 104 50 154 1997 94 23 117 1998 144 45 189 1999 80 78 158 2000 83 40 123 2001 117 57 174 2002 140 44 184 2003 139 54 193 2004 160 39 199 2005 171 39 210 2006 273 36 309 2007 311 31 342 2008 505 23 528 2009 804 31 835 2010 1562 29 1591 2011 2239 110 2349 2012 3151 187 3338 2013 4477 337 4814 2014 5468 543 6011 2015 7328 503 7831 2016 8151 1113 9264 

コメント

  • 私は' Excelを日常的に使用しておらず、'追加された行が何であるかを知りません最初のプロットで。'は単調ではないため、確かに指数関数ではありません。可能であれば、学生や同僚に曲線を与えないことをお勧めします'それがどのように生成されたかを説明します。'おそらく多項式またはスプラインです。
  • Excelで指数を押しました。あなた'正解です。ランダムにクリックしただけです。と感じました。線形回帰にしか精通していないあらゆる種類の線を適切にフィットさせる方法を見つけようとしています。
  • 別のサイトでExcelファイルを提供していただきありがとうございます。 'データを取得し、質問にリストしました。 '例を示すためのより良い方法であり、Excelを使用せずに、他の1つまたは2つのプログラムを切り取ります。これは、多くの人が行っていない'または、'持っていないので、コピーしてお気に入りのソフトウェアに貼り付けることができるものを提供するだけです。

回答

これらの2つの回帰では、相互に正確に変換できるパラメーター値は得られません。

$ ln(y)〜vs.〜A + B〜 x $

$ y〜vs.〜a〜exp(b〜x)$

異なる二乗和を最小化するため、つまり、それぞれ次のようになります。

$ \ Sigma_i(ln(y_i)-(A + B〜x_i))^ 2 $

$ \ Sigma_i(y_i-a〜exp(b〜x_i))^ 2 $

これらは同等の最小化問題ではありません。

最初の回帰は、線形回帰を使用して$ A $と$ B $について解くことができます。

2番目の回帰を解くには、最初の回帰を解くことから始めます。次に、開始値として$ a = exp(A)$および$ b = B $を使用して、非線形回帰ソルバーを使用して2番目の回帰問題を解決します(つまり、Excelではソルバーになります)。また、非線形回帰モデルが線形回帰モデルから十分に離れている場合、これらの開始値が適切でない可能性があります。その場合、他の開始値を試す必要があります。

追加

データが質問に追加されたので、上記の段落で説明した提案されたアクションを実行できます。以下に、これを行うためのRコードを示します。マシンにRをインストールする場合は、そのコードをコピーしてRコンソールに貼り付けるだけです。

最初にデータをDFに読み込み、次に線形モデルを実行します。つまり、log(Total)Yearの回帰です。 Rのlogは対数ベースeであることに注意してください。生成される回帰係数は、切片と傾きについてA = -369.977814およびB = 0.187693であることがわかります。次に、勾配を変数bに抽出して、非線形回帰の開始値として使用します。非線形回帰アルゴリズムplinearは非線形パラメーターの開始値のみを必要とするため、開始値として切片は必要ありません。次に、Total対の非線形回帰を実行します。 a * exp(b * Year)。生成される係数はb = 2.838264e-01およびa = 3.117445e-245です。次に結果をプロットすると、データにかなり近いように見えることがわかります。

一般に、非線形最適化を実行する場合、数値を考慮すると、パラメーターをほぼ同じ大きさにする必要がありますが、そうではありません。これは、モデルを次のように再パラメーター化することを示しています。

$ y〜vs.〜exp(a〜 + 〜b〜x_i)$ [再パラメーター化された非線形モデル]

そして、以下のコードの最後でそれを行います。 a = -562.9959733およびb = 0です。2838263ここで、aは、再パラメーター化された非線形モデルの定義で定義されているとおりです。これらのパラメーターははるかに比較可能な値であるため、再パラメーター化された非線形モデルが望ましいようです。

グラフは、最初の非線形回帰モデルで示されたものと似ています。

Lines <- "Year Asymptomatic AIDS Total 1984 0 2 2 1985 6 4 10 1986 18 11 29 1987 25 13 38 1988 21 11 32 1989 29 10 39 1990 48 18 66 1991 68 17 85 1992 51 21 72 1993 64 38 102 1994 61 57 118 1995 65 51 116 1996 104 50 154 1997 94 23 117 1998 144 45 189 1999 80 78 158 2000 83 40 123 2001 117 57 174 2002 140 44 184 2003 139 54 193 2004 160 39 199 2005 171 39 210 2006 273 36 309 2007 311 31 342 2008 505 23 528 2009 804 31 835 2010 1562 29 1591 2011 2239 110 2349 2012 3151 187 3338 2013 4477 337 4814 2014 5468 543 6011 2015 7328 503 7831 2016 8151 1113 9264" DF <- read.table(text = Lines, header = TRUE) 

これを実行します:

# run linear regression model fit.lm <- lm(log(Total) ~ Year, DF) coef(fit.lm) ## (Intercept) Year ## -369.977814 0.187693 b <- coef(fm.lm)[[2]] b ## [1] 0.187693 # run nonlinear regresion model fit.nls <- nls(Total ~ exp(b * Year), DF, start = list(b = b), alg = "plinear") coef(fit.nls) ## b .lin ## 2.838264e-01 3.117445e-245 plot(Total ~ Year, DF) lines(fitted(fit.nls) ~ Year, DF, col = "red") a <- coef(fit.lm)[[1]] a ## [1] -369.9778 # run reparameterized nonlinear regression model fit2.nls <- nls(Total ~ exp(a + b * Year), DF, start = list(a = a, b = b)) coef(fit2.nls) ## a b ## -562.9959733 0.2838263 

スクリーンショット

コメント

  • その'は正しいです。実際には、最初の線形化は、'がその後の回帰の問題であるため、実装が簡単なだけではありません。このようなデータの場合、log $ y $対年のグラフによって示されるエラー構造を考慮すると、特に、対数スケールでも大まかにばらつきが現れることを考えると、合理的と思われます。 'チェックする生データはありませんが、このような例では、最初に線形化が問題になったり劣ったりする可能性は低いようです。
  • 線形回帰では希望する答え。それが質問の要点です。
  • 私は'そのように質問を読んでいません。 OPは'(a)一般的に(b)Excelによって行われていることをすべて理解していませんでした。 (OPがスレッドを再検討したが、これまでのところ長い回答のいずれにも応答していないことは当惑しています。)
  • 最後の質問の議論と付随するグラフは、線形回帰から得られたものは、望まれていたものではありませんでした。
  • '質問で混乱し、さらには矛盾することがたくさんあります。データが正確に指数関数的である場合、モデルがどのように適合されたかは関係ありません'。 'は、高い値でアンダーシュートするミッドリングフィットから選択できる可能性があります。それらにもっと注意を払う中途半端なフィット感。まったく別のモデルを考えています。 OPは、彼らを悩ませているものに対する権威ですが、(前述のように)'まだ重要な詳細を明らかにしていません。それにもかかわらず、回答は、この地域の他の人にとって役立つまたは興味があるかもしれないさまざまなポイントを提起します。

回答

暦年を$ x $として使用しているため、必然的な結果として、$ y = a \ exp(bx)$の$ a $は、$ x = 0年の$ y $の値であるか、またはそうでした。 $。ゼロ年がなかったという衒学的な点は別として、それは$ 1 $ AD(CE)の前の年であり、曲線を後方に精神的に投影すると、近似値は実際には非常に小さい(はずだったでしょう!)ことを強調する必要があります。 $ 0 $(ただし、指数関数がそれを保証するため、正の値です)。

元のデータを確認するために提供していませんが、表示内容を疑う理由はありません。$ \ exp(-369.9778)$は$ 2.09 \ times 10 ^ {-161になります。 } $、確かに非常に小さいです。したがって、Excelは、表示される小数点以下2桁まで正しいです。さらに、結果を累乗表記で表示する必要があります。

これが私の問題である場合、私は次の点で適合します。 $ a \ exp [b(x –2000)] $と言うと、$ x = 2000 $の場合、$ a $は$ y $の解釈が容易になり、データとの比較が容易になります(数値の精度は損なわれません)。どちらか、そして助けられるかもしれません。)

JWテューキーは、切片ではなく「中心受容体」に適合すべきであると主張し、この例はその要点を強調しています。権限:彼のこのページのRogerKoenker。

対数スケールでプロットすると、指数関数は大まかな適合にすぎないことがわかりますが、そうではありません。 「質問ではありません。

での起点の選択に関する関連する議論回帰で日付変数を使用することは理にかなっていますか?

編集データが与えられたら、それらをStataに読み込みます。

回帰して$ \ text {total} = a \ exp [b(\ text {year} –2000)] $を近似しました$ \ ln(\ text {total})$ on $ \ text {year} -2000 $。

これにより、$ 5.40827 + 0.187693(\ text {year} -2000)$の線形方程式が得られます。

$ 2000 $の「centercept」は$ 223 $程度に戻ります。データ値は$ 123 $でした。ここで重要な詳細は、$ 0.187693 $がExcelの結果と一致することです。

I次に、非線形最小二乗を使用して同じ方程式を直接近似し、$ 105.2718 $のcenterceptと$ 0.2838264 $の係数を取得しました。これは非常に異なり、驚くことではありません。非線形最小二乗はtを割り引いていないためです。対数による線形化と同様に高い値です。対数スケールでの独自のグラフは、対数スケールでフィッティングすることにより、後年の最高値が過小予測されていることを示しています。逆に、非線形最小二乗法は逆に傾いています。

指数関数が非常によく適合しているように見えても、私はそれを非常に遠い将来に外挿しようとはしません。これらのデータでは、指数関数が最良の大まかなゼロ近似であり、要求したよりも控えめな外挿であるため、不確実性は深刻です。

ここに画像の説明を入力してください

コメント

  • 参照していただきありがとうございます'それらについて読み上げます。私は方程式の起源とそれらがどのように機能するかに関する基礎があまり得意ではないので、ツールを間違って適用します。 'ほとんどの人が数学を難しいと感じる理由

回答

まず、ログ関数と指数関数に関するカーンアカデミーのビデオを探すことを強くお勧めします。

a = e^(-369.9778)を作成するだけで問題ありません。

コメント

  • 'どのようにしてその値に到達したのかよくわかりません。 ' t log(a) = -369.977810^(-369.9778) = aと同じですか?
  • ごめんなさい'正解です' e^(-369.9778)。トレンドラインと回帰方程式の動作については説明していませんが。おそらく'何かが足りない'
  • 最初に質問を書いたとき、それは簡単だと思いました数学の問題。今、私はあなたの主張を理解します。
  • 誤解を招く質問でごめんなさい。私が最初に質問をしたとき、私はまた、問題を引き起こしたのは私の欠陥のある代数だと思いました。 '数学の基礎があまり得意ではないので、埋める穴がたくさんあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です