タグ付けされた質問 「nonlinear-regression」

このタグは、応答がパラメーターの非線形関数である回帰モデルにのみ使用してください。このタグを非線形データ変換に使用しないでください。

1
Rの非線形混合効果回帰
驚いたことに、Googleを使用して次の質問に対する答えを見つけることができませんでした。 私はいくつかの個人からのいくつかの生物学的データを持っていますが、それはおおよそS字状の成長挙動を示しています。したがって、標準のロジスティック成長を使用してモデル化したい P(t) = k*p0*exp(r*t) / (k+p0*(exp(r*t)-1)) p0はt = 0での開始値、kはt-> infinityでの漸近極限、rは成長速度です。私が見る限り、nlsを使用してこれを簡単にモデル化することができます(私の理解が不足しています:時間とデータをスケーリングすることにより、標準のロジット回帰を使用して類似のものをモデル化できないのはなぜですか?編集:ニック、どうやら、例えばプロポーションですが、めったにhttp://www.stata-journal.com/article.html?article=st0147この接線に関する次の質問は、モデルが異常値を処理できるかどうかです> 1)。 ここで、3つのパラメーターk、p0、およびrに対する固定(主にカテゴリー)およびランダム(個別のID、場合によってはスタディID)の効果を許可したいと思います。nlmeはこれを行う最良の方法ですか?SSlogisモデルは、私がやろうとしていることに対して賢明なようです、それは正しいですか?次のいずれかが賢明なモデルから始まりますか?開始値を正しく取得できないようで、update()はランダムな効果に対してのみ機能し、固定された効果に対しては機能しないようです-ヒントはありますか? nlme(y ~ k*p0*exp(r*t) / (k+p0*(exp(r*t)-1)), ## not working at all (bad numerical properties?) data = data, fixed = k + p0 + r ~ var1 + var2, random = k + p0 + r ~ 1|UID, start …

1
指数近似の残差平方和を最小化する方法は?
次のデータがあり、負の指数関数的成長モデルを当てはめたいと思います。 Days <- c( 1,5,12,16,22,27,36,43) Emissions <- c( 936.76, 1458.68, 1787.23, 1840.04, 1928.97, 1963.63, 1965.37, 1985.71) plot(Days, Emissions) fit <- nls(Emissions ~ a* (1-exp(-b*Days)), start = list(a = 2000, b = 0.55)) curve((y = 1882 * (1 - exp(-0.5108*x))), from = 0, to =45, add = T, col = "green", …

3
線形回帰では、F統計、Rの2乗、残差標準誤差は何を示しますか?
私は、次の用語の線形回帰のコンテキストに関する意味の違いについて本当に混乱しています。 F統計 Rの2乗 残留標準誤差 私が見つかりました。このwebstie私の線形回帰に関連するさまざまな面で素晴らしい洞察力、非常に多くのように見えるのA上記ただし条件を与えた(私が理解限りが)。私が読んだものと私を混乱させたものを引用します: 残差標準誤差は、線形回帰フィットの品質の尺度です。......残差標準誤差は、応答(dist)が真の回帰直線から逸脱する平均量です。 1.これは実際には、lmラインからの観測値の平均距離ですか? R二乗統計は、モデルが実際のデータにどれだけ適合しているかの尺度を提供します。 2.観測点が回帰直線からどれだけ離れているかをRSEが示す場合、低RSEが実際に「観測データ点に基づいてモデルが適切に適合している」ことを示しているため、混乱しています。モデルが適合するので、R 2乗とRSEの違いは何ですか? F統計は、予測変数と応答変数の間に関係があるかどうかの良い指標です。 3. RSEが高く、Rの2乗が低いように、NON LINEARである強い関係を示すF値を持つことができるのは本当ですか

2
非線形回帰の信頼区間と予測区間の形状
非線形回帰の信頼帯と予測帯は、回帰線の周りで対称的であると想定されていますか?つまり、線形回帰のバンドの場合のように、砂時計の形をとっていません。何故ですか? 問題のモデルは次のとおりです 図は次のとおりです。 F(x )= ⎛⎝⎜⎜A − D1 + (xC)B⎞⎠⎟⎟+ DF(バツ)=(A−D1+(バツC)B)+D F(x) = \left(\frac{A-D}{1 + \left(\frac x C\right)^B}\right) + D そして、これが方程式です:

2
線形回帰と非線形回帰
理論的に指数関数的に関連する値xxxとセットがあります。yyy y=axby=axby = ax^b 係数を取得する1つの方法は、両側に自然対数を適用し、線形モデルを近似することです。 > fit <- lm(log(y)~log(x)) > a <- exp(fit$coefficients[1]) > b <- fit$coefficients[2] これを取得する別の方法は、開始値の理論セットを指定して、非線形回帰を使用することです。 > fit <- nls(y~a*x^b, start=c(a=50, b=1.3)) 私のテストでは、2番目のアルゴリズムを適用すると、より良い理論関連の結果が表示されます。ただし、各方法の統計的な意味と意味を知りたいです。 どちらが良いですか?

4
線形モデルと非線形モデルの区別
私は線形モデルと非線形モデルの特性に関するいくつかの説明を読みましたが、それでも手元のモデルが線形モデルであるか非線形モデルであるかがわからないことがあります。たとえば、次のモデルは線形ですか、それとも非線形ですか? yt=β0+β1B(L;θ)Xt+εtyt=β0+β1B(L;θ)Xt+εty_t=\beta_0 + \beta_1B(L;\theta)X_t+\varepsilon_t と: B(L;θ)=∑k=1Kb(k;θ)LkB(L;θ)=∑k=1Kb(k;θ)LkB(L;\theta)=\sum_{k=1}^{K}b(k;\theta)L^k LkXt=Xt−kLkXt=Xt−kL^kX_t=X_{t-k} ここで、は、次の形式の(減衰する)指数アルモン多項式関数を表します。b(k;θ)b(k;θ)b(k;\theta) b(k;θ)=exp(θ1k+θ2k2)∑Kk=1exp(θ1k+θ2k2)b(k;θ)=exp⁡(θ1k+θ2k2)∑k=1Kexp⁡(θ1k+θ2k2)b(k;\theta)=\frac{\exp(\theta_1 k+\theta_2k^2)}{\sum_{k=1}^{K}\exp(\theta_1k+\theta_2k^2)} 私の見解では、この項には重みが乗算されているだけなので、メイン方程式(最初の方程式)はに対して線形です。しかし、私は、重み関数(最後の式は)パラメータに対して非線形であると言うでしょうθ 1 ANS θ 2XtXtX_tθ1θ1\theta_1θ2θ2\theta_2。 私の主な機能が線形または非線形の場合、誰かが私に説明できますか?それは推定手順にとって何を意味しますか?線形または非線形最小二乗法を適用する必要がありますか?さらに、関数が非線形であるか線形であるかを明確に識別できる識別可能な特徴は何ですか?

1
Rのnlsの適合度を読み取る方法
nls()の出力を解釈しようとしています。私はこの記事を読んだことがありますが、最適な選択方法をまだ理解していません。私の適合から、2つの出力があります。 > summary(m) Formula: y ~ I(a * x^b) Parameters: Estimate Std. Error t value Pr(>|t|) a 479.92903 62.96371 7.622 0.000618 *** b 0.27553 0.04534 6.077 0.001744 ** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 120.1 on 5 degrees …

1
同じモデル内の2つのパラメーター推定値が大幅に異なる場合、どのようにテストできますか?
私はモデルを持っています y=xa×zb+ey=xa×zb+e y=x^a \times z^b + e ここで、は従属変数、とzは説明変数、aとbはパラメーター、eはエラー項です。aとbのパラメーター推定値とこれらの推定値の共分散行列があります。aとbが大きく異なるかどうかをテストするにはどうすればよいですか?yyyxxxzzzaaabbbeeeaaabbbaaabbb

1
比率が独立変数である場合、比率を変換する最も適切な方法は何ですか?
私はこの問題を理解したと思っていましたが、今は確信が持てず、先に進む前に他の人に確認したいと思います。 私には2つの変数がXありYます。Yは比率であり、0と1に制限されず、通常正規分布します。Xは割合であり、0と1で区切られます(0.0から0.6まで実行されます)。の線形回帰を実行するY ~ Xと、それが判明しX、Y大幅に線形に関連しています。ここまでは順調ですね。 しかし、その後、さらに調査し、多分Xand Yの関係は線形より曲線的であると考え始めます。私には、それは関係のように見えるXとYに近いかもしれないY ~ log(X)、Y ~ sqrt(X)またはY ~ X + X^2、またはそのような何か。関係が曲線的であると仮定する経験的理由がありますが、ある非線形関係が他より優れていると仮定する理由はありません。 ここから関連する質問がいくつかあります。最初に、X変数は4つの値(0、0.2、0.4、および0.6)を取ります。これらのデータを対数変換または平方根変換すると、これらの値の間隔がゆがんで、0の値が他のすべての値からはるかに離れます。より良い質問方法がないため、これは私が望むものですか?そうではないと思います。なぜなら、私が受け入れる歪みのレベルに応じて非常に異なる結果が得られるからです。これが私が望むものではない場合、どうすればそれを避けるべきですか? 第二に、これらのデータを対数変換Xするには、0の対数を取ることができないため、各値にいくらかの量を追加する必要があります。より多く、たとえば1を追加しても、歪みはほとんどありません。X変数に追加する「正しい」量はありますか?または、代替の変換(キューブルートなど)またはモデル(ロジスティック回帰など)を選択する代わりに、変数に何かを追加することは不適切Xですか? この問題に関して私が見つけられたことはほとんどないので、慎重に踏み込む必要があると感じています。仲間のRユーザーの場合、このコードは、私のものと同様の構造を持つデータを作成します。 X = rep(c(0, 0.2,0.4,0.6), each = 20) Y1 = runif(20, 6, 10) Y2 = runif(20, 6, 9.5) Y3 = runif(20, 6, 9) Y4 = runif(20, 6, 8.5) Y = c(Y4, Y3, Y2, Y1) …

3
「線形」回帰と「非線形」回帰を区別することが重要なのはなぜですか?
線形モデルと非線形モデルの区別の重要性は何ですか?非線形モデルと一般化線形モデルの質問:ロジスティック、ポアソンなどの回帰をどのように参照しますか?そしてその答えは、一般化線形モデルの線形性/非線形性の非常に役立つ説明でした。線形モデルと非線形モデルを区別することは非常に重要であるように思えますが、その理由は明確ではありません。たとえば、次の回帰モデルを検討してください。 E[Y∣X]E[Y∣X]E[Y∣X]E[Y∣X]=β0+β1X=β0+β1X+β2X2=β0+β21X={1+exp(−[β0+β1X]}−1(1)(2)(3)(4)(1)E[Y∣X]=β0+β1X(2)E[Y∣X]=β0+β1X+β2X2(3)E[Y∣X]=β0+β12X(4)E[Y∣X]={1+exp⁡(−[β0+β1X]}−1\begin{align} E[Y \mid X] & = \beta_0 + \beta_1 X \tag{1} \\ E[Y \mid X] & = \beta_0 + \beta_1 X + \beta_2 X^2 \tag{2} \\ E[Y \mid X] & = \beta_0 + \beta_1^2 X \tag{3} \\ E[Y \mid X] & = \{1+\exp(-[ \beta_0 + \beta_1 X]\}^{-1} \tag{4} \end{align} …

1
一般化非線形最小二乗回帰(nlme)の対数尤度を「手で」計算する
私は、機能のための最小二乗非線形回帰、一般化のための対数尤度を計算しようとしているf(x)=β1(1+xβ2)β3f(x)=β1(1+xβ2)β3f(x)=\frac{\beta_1}{(1+\frac x\beta_2)^{\beta_3}}によって最適化されたgnlsRパッケージの機能をnlme(ブラウン運動と仮定AA系統樹上の距離によって生成された分散共分散行列使用して、corBrownian(phy=tree)からape)パッケージ。次の再現可能なRコードは、x、yデータと9タクサを持つランダムツリーを使用してgnlsモデルに適合します。 require(ape) require(nlme) require(expm) tree <- rtree(9) x <- c(0,14.51,32.9,44.41,86.18,136.28,178.21,262.3,521.94) y <- c(100,93.69,82.09,62.24,32.71,48.4,35.98,15.73,9.71) data <- data.frame(x,y,row.names=tree$tip.label) model <- y~beta1/((1+(x/beta2))^beta3) f=function(beta,x) beta[1]/((1+(x/beta[2]))^beta[3]) start <- c(beta1=103.651004,beta2=119.55067,beta3=1.370105) correlation <- corBrownian(phy=tree) fit <- gnls(model=model,data=data,start=start,correlation=correlation) logLik(fit) logLikから得られた推定パラメータに基づいて、対数尤度を「手で」(Rで、ただし関数を使用せずに)計算したいgnlsので、からの出力と一致しますlogLik(fit)。注:パラメーターを推定しようとはしていません。gnls関数によって推定されたパラメータの対数尤度を計算したいだけです(誰かがパラメータなしgnlsでパラメータを推定する方法の再現可能な例を持っているなら、私はそれを見ることに非常に興味があるでしょう!)。 Rでこれをどのように実行するかはよくわかりません。SとS-Plusの混合効果モデル(PinheiroとBates)で説明されている線形代数表記法は頭の上のもので、私の試みはどれも一致していませんlogLik(fit)。PinheiroとBatesが説明する詳細は次のとおりです。 一般化された非線形最小二乗モデルの対数尤度 ここで、 φ I = A I β次のように計算されます。yi=fi(ϕi,vi)+ϵiyi=fi(ϕi,vi)+ϵiy_i=f_i(\phi_i,v_i)+\epsilon_iϕi=Aiβϕi=Aiβ\phi_i=A_i\beta l(β,σ2,δ|y)=−12{Nlog(2πσ2)+∑i=1M[||y∗i−f∗i(β)||2σ2+log|Λi|]}l(β,σ2,δ|y)=−12{Nlog⁡(2πσ2)+∑i=1M[||yi∗−fi∗(β)||2σ2+log⁡|Λi|]}l(\beta,\sigma^2,\delta|y)=-\frac 12 \Bigl\{ N\log(2\pi\sigma^2)+\sum\limits_{i=1}^M{\Bigl[\frac{||y_i^*-f_i^*(\beta)||^2}{\sigma^2}+\log|\Lambda_i|\Bigl]\Bigl\}} ここで、は観測値の数、f ∗ i(β )= …

4
非線形最小二乗近似の初期値を選択する方法
上記の質問はそれをすべて言っています。基本的に私の質問は、推定しようとしているパラメータが非線形になる一般的なフィット関数(任意に複雑になる可能性があります)に関するものです。フィットを初期化するために初期値をどのように選択しますか?非線形最小二乗を実行しようとしています。戦略や方法はありますか?これは研究されましたか?参照はありますか?アドホックな推測以外に何かありますか?具体的には、現在作業しているフィッティング形式の1つは、推定しようとしている5つのパラメーターを持つガウスプラス線形形式です。 y=Ae−(x−BC)2+Dx+Ey=Ae−(x−BC)2+Dx+Ey=A e^{-\left(\frac{x-B}{C}\right)^2}+Dx+E ここで、x=log10x=log10x = \log_{10}(横座標データ)およびy=log10y=log10y = \log_{10}(縦座標データ)は、log-log空間では、データが直線とガウスで近似するバンプのように見えることを意味します。線の傾斜やバンプの中心/幅などのグラフ化と眼球運動を除いて、非線形フィットを初期化する方法については何の理論もありません。しかし、グラフ化や推測の代わりに、これを行うためのこれらの当てはめが100以上ありますが、自動化できるアプローチを好むでしょう。 ライブラリまたはオンラインで参照が見つかりません。私が考えることができる唯一のものは、初期値をランダムに選択することです。MATLABは、均一に分布した[0,1]からランダムに値を選択することを提案しています。したがって、各データセットで、ランダムに初期化されたフィットを1000回実行してから、r 2が最も高いものを選択しますr2r2r^2ますか?他の(より良い)アイデアはありますか? 補遺#1 まず、データセットの視覚的な表現をいくつか示します。これは、私が話しているデータの種類を示すためのものです。変換を行わずに元の形式でデータを投稿し、データの機能の一部を明確にし、他の機能をゆがめながら、ログとログの空間に視覚的に表示します。良いデータと悪いデータの両方のサンプルを投稿しています。 各図の6つのパネルにはそれぞれ、赤、緑、青、シアンの4つのデータセットがプロットされており、各データセットには正確に20個のデータポイントがあります。私は、データに見られるバンプのために、それらのそれぞれに直線とガウスを合わせようとしています。 最初の図は、良いデータの一部です。2番目の図は、図1と同じ良好なデータの対数プロットです。3番目の図は、不良データの一部です。4番目の図は、図3の対数プロットです。はるかに多くのデータがあり、これらは2つのサブセットにすぎません。ほとんどのデータ(約3/4)は良好であり、ここで示した良好なデータと同様です。 いくつかコメントがあります。これは長くなる可能性がありますが、この詳細はすべて必要だと思います。できるだけ簡潔にしようと思います。 私はもともと単純なべき法則(対数空間の直線を意味する)を期待していました。log-logスペースにすべてをプロットすると、約4.8 mHzで予期しないバンプが見られました。バンプは徹底的に調査され、他の作品でも発見されたので、混乱したわけではありません。それは物理的にそこにあり、他の出版された作品もこれに言及しています。そこで、線形形式にガウス項を追加しました。この適合は、ログとログのスペースで行われることに注意してください(この質問を含む私の2つの質問)。 今、Stumpy Joe Peteによる私の別の質問(これらのデータとはまったく関係ない)への答えを読んで、これとこれとその中の参照(Clausetのもの)を読んだ後、私はlog-logに収まるべきではないことに気付きましたスペース。だから今、私は事前に変換された空間ですべてをやりたい。 質問1:良いデータを見ると、変換前の空間で線形プラスガウス分布がまだ良い形だと思います。私は、彼らが考えていることをより多くのデータ経験がある他の人から聞いてみたいです。ガウス+線形は妥当ですか?ガウス分布のみを行うべきですか?または完全に異なる形式ですか? 質問2:質問1の答えが何であれ、私はまだ(おそらく)非線形最小二乗近似が必要なので、初期化の支援が必要です。 2つのセットが表示されるデータでは、最初のバンプを約4〜5 mHzでキャプチャすることを非常に強く好みます。したがって、ガウス項を追加したくはありません。ガウス項は最初のバンプを中心にする必要があります。これはほとんどの場合、より大きなバンプです。0.8mHz〜5mHzの間で「より高い精度」が必要です。高い周波数についてはあまり気にしませんが、それらを完全に無視したくはありません。それで、おそらくある種の計量ですか?または、Bは常に4.8mHz前後で初期化できますか? fffLLL L=Ae−(f−BC)2+Df+E.L=Ae−(f−BC)2+Df+E.L=A e^{-\left(\frac{f-B}{C}\right)^2}+Df+E. fff LLL AAAA>0A>0A>0AAA BBB CCCCCC−C−C-C DDD EEELLLEEELLLf=0f=0f=0 Ae−(B/C)2+E.Ae−(B/C)2+E.Ae^{-(B/C)^2}+E. EEEEEEf=0f=0f=0 LLL 質問3:この場合、この方法を外挿するとどう思いますか?賛否両論ありますか?外挿のための他のアイデアはありますか?繰り返しますが、低周波数のみに注意を払うので、0〜1mHzの間で外挿することがあります。非常に小さい周波数で、ゼロに近い場合もあります。この投稿は既に満員です。答えが関連している可能性があるため、ここでこの質問をしましたが、皆さんが希望する場合は、この質問を分けて後で質問することができます。 最後に、リクエストに応じて2つのサンプルデータセットを示します。 0.813010000000000 0.091178000000000 0.012728000000000 1.626000000000000 0.103120000000000 0.019204000000000 2.439000000000000 0.114060000000000 0.063494000000000 3.252000000000000 0.123130000000000 …

2
元のサンプルよりも小さいブートストラップサンプルを使用できますか?
ブートストラップを使用して、N = 250の企業とT = 50か月のパネルデータセットから推定パラメーターの信頼区間を推定したいと思います。パラメータの推定は、カルマンフィルタリングと複雑な非線形推定を使用するため、計算コストがかかります(数日間の計算)。したがって、M = N = 250会社のB(数百以上)のBサンプルを元のサンプルから描画し、パラメーターBを推定することは、これがブートストラップの基本的な方法であっても、計算上実行不可能です。 したがって、元の会社からの置き換えでランダムに描画されたブートストラップサンプルに小さいM(たとえば10)を使用し、モデルパラメータのブートストラップ推定共分散行列をスケーリングすることを検討しています(上記の例では1/25)で、完全なサンプルで推定されたモデルパラメーターの共分散行列を計算します。1NM1NM\frac{1}{\frac{N}{M}} 次に、望ましい信頼区間は、正規性の仮定に基づいて概算できます。または、同様の手順を使用してスケーリングされた小さいサンプルの経験的な信頼区間(たとえば、係数で縮小できます。1NM√1NM\frac{1}{\sqrt{\frac{N}{M}}} この回避策は意味がありますか?これを正当化する理論的な結果はありますか?この課題に取り組むための代替手段はありますか?

4
Rでのnlsモデルの正しい開始値の取得
次のようなデータセットに単純なべき乗則モデルを適合させようとしています。 mydf: rev weeks 17906.4 1 5303.72 2 2700.58 3 1696.77 4 947.53 5 362.03 6 目標は、電力線を通過させ、それを使用してrev、今後数週間の値を予測することです。たくさんの研究の結果、私はこのnls機能にたどり着きました。その機能を次のように実装しました。 newMod <- nls(rev ~ a*weeks^b, data=modeldf, start = list(a=1,b=1)) predict(newMod, newdata = data.frame(weeks=c(1,2,3,4,5,6,7,8,9,10))) これはlmモデルで機能しsingular gradientますが、エラーが発生します。これは、開始値aとに関係していることを理解していますb。私はさまざまな値を試しましたが、これをExcelでプロットし、1つを渡し、方程式を取得し、方程式の値を使用しましたが、それでもエラーが発生しました。私はこのような答えをたくさん見て、2番目の答えを試しました(最初の答えは理解できませんでした)が、結果はありませんでした。 ここで、適切な開始値を見つける方法について、いくつかのヘルプを実際に使用できます。または、nlsの代わりに使用できる他の関数。 mydf簡単に再作成したい場合: mydf <- data.frame(rev=c(17906.4, 5303.72, 2700.58 ,1696.77 ,947.53 ,362.03), weeks=c(1,2,3,4,5,6))

2
曲線をフィッティングする場合、フィッティングしたパラメーターの95%信頼区間をどのように計算しますか?
1つのパラメーターを抽出するために、データに曲線を適合させています。ただし、そのパラメーターの確実性が何であるか、および%の信頼区間をどのように計算/表現するかはわかりません。959595 指数関数的に減衰するデータを含むデータセットについて、各データセットに曲線を当てはめます。次に、抽出したい情報は指数bbbです。私はtttの値と私が興味のないaの値を知っていますaaa(これは、母集団からの変数であり、Imがモデル化しようとしているプロセスではありません)。 これらのパラメーターを近似するために、非線形回帰を使用します。ただし、どの方法でも959595%信頼区間を計算する方法がわからないので、より幅広い回答も歓迎します。 f=a⋅e−btf=a⋅e−btf= a\cdot e^{-bt} bの値を取得したらbbb、その959595%信頼区間をどのように計算しますか?前もって感謝します!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.