問題タブ [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.

0 投票する
0 に答える
557 参照

r - Rでの指数nlsのフィッティング

いくつかのデータに最適な線を当てはめようとしています。一見すると、負の指数曲線です。関数を使用しnlsて 2 次多項式の近似を見つけることができましたが、指数の問題を近似しようとすると....

次のように入力すると:

R は次のメッセージを出力します。

numericDeriv(form[[3L]], names(ind), env) のエラー: モデルの評価時に値が欠落しているか、無限大が生成されました

さまざまな初期パラメーターをいじって非常に長い時間を費やしましたが、このメッセージまたはマトリックスが特異であるという別のメッセージが表示されます....

年齢に対して価格の線を当てはめようとしています(グラフは下のリンクに添付されています)

クリックしてグラフを表示

0 投票する
2 に答える
2536 参照

python - sklearnで多項式回帰を行う最も簡単な方法は?

線形回帰に適合しないデータがいくつかあります。

ここに画像の説明を入力

実際、二次関数に「正確に」適合する必要があります。

私はこれを作っています:

次のようなことで解決する可能性はありますか:

0 投票する
1 に答える
939 参照

r - 非線形フィッティング方法 (nlsLM、nlxb、および wrapnls) でのフィッティングの失敗

nls fittingRでやりたいタスクがあります。ここでこれを行う最初の試みと@Rolandが指摘したように

「要点は、複雑なモデルは当てはめが難しいということです。そうであるほど、データがモデルをサポートしなくなり、不可能になります。非常に良い開始値があれば、これを当てはめることができるかもしれません。」

私は@Rolandに同意excelできますが、このフィッティングができるのであれば、できRないのはなぜですか?

基本的に、このフィッティングは Excel の GRG Nonlinear ソルバーで実行できますが、プロセスに非常に時間がかかり、フィッティングがうまくいかない場合もあります。(実際にはたくさんのデータがあるため)。

これが私のサンプルdata.frameです。set各グループを以下に示すモデルに当てはめたいと思います。

試行 1

私はすでにここに質問を投稿しました

基本的に問題は、グループ化されたデータでフィッティングを行い、フィッティング係数に基づいて予測を行いたかったことです。

から使用nlsLMlibrary(minpack.lm)ました エラーが発生しました

nlsModel(formula, mf, start, wts, upper) のエラー: 初期パラメータ推定値での特異勾配行列

@Rolandによると、一見したところ、モデルエラーまたは私の開始値が良くなかったのかもしれません。一方、このモデルは 2 つのフィッティング パラメーターのみでフィッティングできました。問題はthird、フィッティング関数にパラメーターを追加したいときに発生します。

試行 2

その投稿で、@ G をフォローして、トラブルを追加するときに 3rd-fitting-parameter-in-nls を追加します。Grothendieck の提案、私はパッケージnlxbから試しnlmrt、パラメーターの 1 つを に修正し、次のようにフィッティングを行いましたdd=32

フィッティング係数は妥当ですwolaa! しかし、今回、(@G. Grothendieck も後で指摘しました) 後の新しい値を予測することは不可能であることに気付きましたnlxb(なぜ=? わかりません!)

::ここpredictvalsから機能を見つけることができます

UseMethod("predict") のエラー: クラス "nlmrt" のオブジェクトに適用される 'predict' に適用可能なメソッドがありません

ここにはない!coefまたはクラスオブジェクトの場合predict methods"nlmrt"

試行 3

@Gをフォローした後。Grothendieckwrapnlsから次に試した別の提案nlmrt

この投稿で彼が述べたので、 can-we-make-prediction-with-nlxb-from-nlmrt-package

「nlmrtパッケージwrapnlsが実行するものをnlmrt提供nlsし、"nls"オブジェクトが結果として得られ、そのオブジェクトをすべての"nls"クラスメソッドで使用できるため.

以下のようにまだ問題がある同じnlmrtパッケージから

ロードが問題をより複雑にしているためplyr、最初の投稿の後、使用を断念しました。そのため、代わりに function に固執して使用します。plyrdplyrdplyrdo

nlsModel(formula, mf, start, wts, upper) のエラー: 初期パラメータ推定値での特異勾配行列

このエラーで開始した場所に戻りました。関連する例を探し(ただし 3 つだけ)、本を読み、提案に従って、できることはすべて試したと思います。

0 投票する
1 に答える
608 参照

r - R における非線形ラングミュア パラメーター推定の最適化

この投稿で行われたのと同様nlsのラングミュア方程式のフィッティングを支援するために使用することに興味がありますR の非線形ラングミュア等温線のフィッティング. 私が興味を持っている方程式のパラメーターは、以下にプロットされた収着データの水平方向の漸近線 (緑の線) に対応するものです。周囲の視覚的な漸近線 (緑の線) にできるだけ近い値を取得するために使用できる方法以外に、より堅牢なアプローチ、または使用を改善する方法はありますか?Y =(Qmax*k*X)/(1+(k*X))QmaxnlsnlsQmaxQmax=3200

次のデータを使用します。

私はQmax = 4253.63(赤線)を得ています - 約1000ユニット離れています。上限と下限を使用しても、上限に設定した Qmax のみが得られ、初期値を変更しても結果は変わらないようです。これは、ベース R で採用したものとは異なる非線形回帰へのアプローチで解決できる課題ですか、それとも何よりもまず統計的/数学的な問題ですか?

非線形ラングミュア等温線のプロット

モデルの線形化の試みはうまくいきませんでした:

免責事項:これは私の最初の投稿ですので、ご容赦ください。私はRに比較的慣れていません。上記の技術を改善するのに役立つ可能性のある技術的なアドバイスは大歓迎です。

0 投票する
1 に答える
274 参照

python - 三次元データを用いた非線形最小二乗最小化

3D データがあり、 を使用して非線形モデルをデータに適合させたいと考えていますlmfit。これは私が書いたコードですが、動作しません。

次のエラーが表示されます。

これは私が適合させようとしているモデルです:

ここに画像の説明を入力

ここでA0Bおよびalphaはモデルの自由パラメーターです。また、エラーがmありr、フィッティングプロセスにどのように含めることができるのでしょうか? ありがとう。

0 投票する
1 に答える
1773 参照

r - R で nls を使用した非線形回帰の交差検証

問題:

私はデータセットを持っていinputAll.dataます。データの 80% をモデル構築の入力として使用し、残りの 20% のデータでモデルを検証したいと考えています。

データセットを 2 つの小さなデータセットに手動で分割し、input80.dataそれぞれinput20.dataデータの 80% と 20% を含めました。

私のデータセット内のデータの形式:

を使用して非線形回帰モデルを構築するために、データの 80% を使用していnlsます。

残りの 20% のデータを使用して予測値を取得しています。yという名前の別のファイルに実際の値を含むこのデータのコピーを保存しましたinput20Actual.datainput20.data、値のみが含まれていxます。

RMSE次に、予測値と実際の値の間の誤差を計算するために呼び出されるカスタム関数を使用しています。

エラー計算は、各予測値を取得し、それを に保存した実際の値と比較することによって行われますinput20Actual.data。出力をファイルに保存しています。

問題は、入力セットを手動で分割したことです。これを自動化し、異なる分割 (毎回異なるデータ) に対して同じことを行い、計算されたエラーの平均を取得したいと思います。

私が試したこと:

R のクロス検証について StackOverflow を読みました。私の理解では、モデルの作成にデータの一部を繰り返し使用し、残りをテストに使用するということです。で相互検証関数を使用できる場合nls、入力データを 2 つのファイルに分割する必要はありません。

SOで解決策をたくさん検索しました。交差検証に関する多くの回答はlm. しかし、特にクロス検証が必要ですnls。パッケージについても読みましたcaretが、インストールしようとしましたが、ほとんどの場合、次のようなパッケージのインストール エラーが発生します。

したがって、パッケージを追加インストールせずに (rkward で) 相互検証を実行する直接的な方法があることを期待していました。モデルを繰り返し作成してテストするために使用できる R の関数または API はありますか?

私はRの完全な初心者であることに注意してください。これが明らかな質問である場合は申し訳ありません。