問題タブ [non-linear-regression]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 「nls」がモデルのパラメーターを推定できない
ヒープの法則の定数を推定しようとしています。次のデータセットがありますnovels_colection
。
次に、次の関数を作成します。
したがってn = Word Occurrences
、 、K
およびB
は、個別の単語の予測を見つけるために定数である必要がある値です。
これを試しましたが、エラーが発生します:
エラー =Error in numericDeriv(form[[3L]], names(ind), env) :
Missing value or an infinity produced when evaluating the model
これをどのように修正するか、関数に合わせて and の値を取得する方法について何か考えはK
ありB
ますか?
scipy - scipy.optimize.minimize のヤコビアン出力を理解する
カスタム非線形関数の RSS の最小値を見つけるために scipy.optimize.minimize を使用しています。私がやっていることを説明するために、単純な線形の例を提供します。
これにより、次の結果が得られます。
また、適合パラメーター 10、-32、および 15 は、実際のデータの生成に使用されたパラメーターと同等であることがわかります。それは素晴らしいことです。今私の質問:
ヤコビアンは mxn 行列である必要があることを理解しています。ここで、m は X 入力からのレコードの数であり、n はパラメーターの数です。明らかに、結果オブジェクトにはそれがありません。結果オブジェクトは、ドキュメントでヤコビアンと呼ばれる配列 ( 1および2 ) を生成しますが、パラメーターの数と等しい数の要素を持つ 1 次元のみです。
method='SLSQP' を使用すると、返されるヤコビアンには、他の最小化アルゴリズムによって返される要素よりも 1 つ多くの要素が含まれます。
. . .
ここでの私のより大きな目標は、当てはめたパラメーターの信頼区間または標準誤差、t 値、p 値のいずれかを計算できるようにすることです。
編集:
以下は、SLSQP 最小化アルゴリズムが、問題に制約があるかどうかに応じて、BFGS、L-BFGS-B、または SLSQP のいずれかである既定の最小化アルゴリズムとは異なるヤコビアンの結果をどのように生成するかを示すことを目的としています (ドキュメンテーション)。SLSQP ソルバーは、制約と共に使用することを目的としています。
結果:
SLSQP ソルバーから返されたヤコビアン配列に余分な要素があることがわかります。これがどこから来たのか混乱しています。
r - R - darch() と predict() を使用してモデルを非線形回帰に適合させる方法は?
darch() を使用してモデルを非線形回帰に適合させようとしています。
ここに私がすでに行ったコードがあります:
ただし、予測で値を取得しようとすると、待っている値のようには見えません。
darch() によって生成されたモデルをプロットして、ポイントの分布に適合するかどうかを確認できるように、スクリプトが新しい Y 座標を返すようにしたいと考えています。
乾杯 !
matlab - Matlab - 非線形モデル フィッティングへの仮定の追加
Matlab 内で fitnlm 関数を使用して 3 つの係数を計算しています。結果を改善するには、2 つの係数を正にし、3 つ目の係数を 0 ~ 360 度にする必要があることを知っています。これらの仮定をモデルに追加するにはどうすればよいですか? ヘルプ ファイルを調べましたが、役立つ情報が見つからないようです。以下は私が使用したコードです:
助けてくれてありがとう
ジェームズ
nls - 見積もり方法は?「単純な」非線形回帰 + パラメータ制約 + AR 残差
私はこのサイトを初めて使用するので、ご容赦ください。リンクに示されているように、非線形モデルが必要です: https://i.stack.imgur.com/cNpWt.png [0,1] のパラメーター a>0 および b>0 および gamma1 に制約を課すことによって。
非線形モデル [1] では、独立変数は x(t) であり、従属変数は R(t)、F(t) であり、ξ(t) は誤差項です。
データセットの例を以下に示します: https://i.stack.imgur.com/2Vf0j.png 68 行の時系列
非線形回帰を推定するには、以下に示すように nls() 関数を問題なく使用します。
NLM1 = nls(**Xt ~ (a Rt-b Ft)/(1-gamma1*Rt), start = list(a = 10, b = 10, lamda = 0.5 )**,アルゴリズム = "ポート", 下=c(0,0,0),上限=c(Inf,Inf,1),データ=temp2)
残差の AR(1) も考慮して NLM1 を推定したいと思います。
基本的に、lm() から gls() に移動するのと同じ手順が必要です。私の問題は、gnls() 関数で、モデル パラメーター a、b、gamma1 に制約を設定する方法がわからず、モデルがそれらの値を間違って推定することです。
nls() には、下限と上限のオプションがあります。gnls() でも同じことはできません
gnls() で: nls() lower=c(0,0,0),upper=c(Inf,Inf,1) のような制約を追加する必要があります
NLM1_AR1 = gnls( モデル = Xt ~ (a Rt-b Ft)/(1-gamma1*Rt)、データ = temp2、開始 = リスト (a =13、b = 10、ラムダ = 0.5)、相関 = corARMA(p = 1))
それを行う方法の解決策を知っている人はいますか?
ありがとうございました
python - scipy optimize.least_squares メソッドから適合パラメータの共分散行列を取得する
制約付きの非線形最小二乗最適化を実行するために、scipy.optimize のleast_squares メソッドを使用しています。適合パラメータのエラーバーを取得するために、適合パラメータの共分散行列を取得する方法を知りたいと思っていましたか?
これは、curve_fitとleastsqではかなり明確なようですが、least_squares メソッドでは (少なくとも私には) 明確ではありません。
私が行ってきた 1 つのアプローチは、least_squares がヤコビ行列J ("jac" の戻り値) を返すことを知っているため、ヘッセ行列 H を 2*J^T J で近似することです。行列は H^{-1} であるため、およそ (2*J^TJ)^{-1} ですが、これは共分散の近似が粗すぎるのではないかと心配しています。
r - R に非線形外生変数を含む ARIMA モデル
R で非線形回帰を行っており、モデルに移動平均項を 1 つ追加して、残差の自己相関を排除したいと考えています。
基本的に、モデルは次のとおりです。
は[e]
移動平均項です。
ARIMA(0, 0, 1)
残差のモデル化に使用する予定です。しかし、ARIMA モデルに非線形外因性部分を追加するには、R でどの関数を使用すればよいかわかりません。
詳細情報: コマンドを使用してとnls
を推定する方法は知っていますが、 の処理方法がわかりません。a
g
e[n]
私は、線形外生変数を持つ ARIMA モデルを処理できることxreg
を知っています。arima
非線形外生変数を持つ ARIMA モデルを処理する同様の関数はありますか?
事前に助けてくれてありがとう!
r - `predict.nls` は、指定された `newdata` での予測ではなく、適合値を返します
定義済みパラメーター:
nls
以下を使用してモデルを正常に適合させます。
問題: 予測をプロットできません
y と x の長さが異なります。
なぜそうすべきなのかわかりません.300個の変数を持つ新しいデータフレームを定義しましたy
.予測には300個の結果しかないはずです.
machine-learning - TensorFlow を使用した非線形回帰は直線になります
関数の単純な非線形回帰を試みています。TensorFlow を使用したx 2 sin(x)。以下のコードと出力を参照してください。また、a) サンプル ポイントの数を 10,000 に増やす、b) 隠れ層の数を増やす、c) 学習率を増減する、d) ReLU の代わりに改善なしで tanh を試しました。誰かがそれを試して、アプローチの何が問題なのかを確認できますか?
出力:
(1000, 1)
トレーニング データ ポイント: 668
検証データ ポイント: 166
テスト データ ポイント: 166
ステップ 0 での
初期化されたミニバッチ損失: 3.902083
ミニバッチ RMSE: 2.793586
検証 RMSE: 2.771836
ステップ 500 でのミニバッチ損失: 1.504731
ミニバッチ RMSE: 1.733019:
検証1.693558
ステップ1000でのミニバッチ損失:1.077074
ミニバッチRMSE:1.465299
検証RMSE:1.492440
ステップ1500でのミニバッチ損失:1.064864
ミニバッチRMSE
:
1.456898
検証rmse:1.456898 rmse rmse:1.456898 minibatch rmse
:1.464581
ミニバッチ損失2500: 1.055446
ミニバッチ RMSE: 1.450549
検証 RMSE: 1.461191
ステップ 3000 でのミニバッチ損失: 1.069557
ミニバッチ RMSE: 1.460215
検証 RMSE: 1.461298
テスト RMSE: 1.557867
合計 RMSE:
1.473936