問題タブ [nls]
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 - Rでnls()を計算する際の問題
プログラム R 内で点データを多項式関数で近似しようとしていますが、どの順序が最適かを確認したいと考えています。非線形回帰モデルを使用しnls(function, data, start)
、関数はy~a*(x+c)^b
です。
私がやりたいことは、谷間充填堆積物の断面積を計算することです。このため、下にある谷底がどのように見えるかをモデル化する必要があります。私はすでに線形シナリオを持っており、いくつかの多項式シナリオを試してみたいと思っています。
私のデータセットは谷のプロファイルを表し、次のようになります (x_combsl は距離、y_combsl は標高):
モデルを生成しようとすると、次のエラー メッセージが表示されます。
問題を引き起こす可能性のあるアイデアはありますか? 多項式のピークは c=35 付近にある可能性が非常に高いため、開始パラメータが問題を引き起こしているようには見えません。ポイントの非常に直線的な配置でしょうか?少ないデータ ポイントで試してみました [24:31] が、同じエラー メッセージが表示されました。
私は R を使ったプログラミングの経験があまりないので、具体的な回答があれば助かります。
dojo - ロケールのロード中に Dojo 1.9 ビルドの「multipleDefine」エラーが発生する
ビルド後、アプリのロード中に Dojo アプリケーションが壊れ、「multipleDefine」がスローされ、次のエラーが発生します。
エラー {src: "dojoLoader", info: Object}
メッセージ: 複数定義
info: オブジェクト {pid: "dojo", mid: "dojo/nls/dojo_en-us", pack: オブジェクト, url: "dojo/nls/dojo_en-us.js", 実行: 5…}
ここに私のプロフィールがあります:
}
これが src/ 内の index.html です
注:
build.sh
は、本番環境にデプロイするときに「isDebug」フラグを削除する責任があります。このフラグを変更すると、ビルドが中断されます。
これは dist/ に生成された index.html です
dojo/nls/dojo_en-us.js が存在することを確認しましたが、問題ありません。私はこの時点で立ち往生しており、手がかりがありません!
この問題を解決するための助けをいただければ幸いです。
r - R で `nls.lm` を使用する場合の境界制約の処理方法
少し前にこの質問をしました。これを回答として投稿するか、新しい質問として投稿するかがわかりません。答えはありませんが、nls.lm
Rを使用してLevenberg-Marquardtアルゴリズムを適用することで問題を「解決」し、解決策が境界にある場合は、信頼領域反射アルゴリズム(Rで実装されたTRR)を実行してステップを実行しますそれから離れてください。今、私は新しい質問があります。
私の経験から、この方法でプログラムは最適に到達し、開始値にそれほど敏感ではありません。しかし、これは、私が遭遇した問題やRの他の最適化関数を回避するための実用的な方法にすぎません。境界制約のある最適化問題に対して がこのように動作する理由と、実際に使用するときに境界制約を処理する方法をnls.lm
知りたいです。.nls.lm
nls.lm
次に、 を使用して 2 つの問題を説明する例を示しましたnls.lm
。
- 開始値に敏感です。
- 一部のパラメータが境界に達すると停止します。
再現可能な例: フォーカス データセット D
モデル/システムを記述する微分方程式は次のとおりです。
左側のグラフは初期値を使用したモデル、中央は "TRR" (Matlablsqnonlin
関数のアルゴリズムと同様) を使用した近似モデル、右側は "LM" を使用した近似モデルnls.lm
です。適合した parameters( ) を見ると、1 つの適合した parameter( ) が境界にFit.LM$par
あることがわかります。1 つのパラメーターの開始値を0.1 から 100 に変更すると、 and を使用して同じ結果が得られました。このようなケースがたくさんあります。f_parent_to_m1
1
M0_parent
nls.lm
lsqnonlin
上記の問題を除いて、によって返されるヘッセ行列がnls.lm
可逆でないことがよくあります (特に、いくつかのパラメーターが境界上にある場合)。そのため、共分散行列の推定値を取得できません。一方、"TRR" アルゴリズム (Matlab 内) は、ほとんどの場合、解点でヤコビアンを計算することによって推定を行います。これは便利だと思いますが、R 最適化アルゴリズム (私が試したもの) が何らかの理由でこれを行わなかったことも確かです。パラメータ推定値の標準誤差を得るために共分散行列を計算する Matlab の方法を使用して、私が間違っているかどうかを知りたいです。
最後の注意点として、私は以前の投稿で、ほぼすべてのケースで Matlablsqnonlin
が R の最適化関数よりも優れていると主張しました。私は間違っていた。上記の例からわかるように、Matlab で使用される「Trust-Region-Reflective」アルゴリズムは、R でも実装されている場合、実際には遅くなります (場合によってははるかに遅くなります)。ただし、R の基本的な最適化アルゴリズムよりも安定しており、より優れたソリューションに到達します。
r - R 関数 "nls" を使用して GEV パラメーターを推定する
加重最小二乗法を使用して、GEV (一般化極値) 分布のパラメーターを推定したいと考えています。私は R を使用しており、この目的に使用できると思われる nls という関数を見つけました。数式とオプションのデータセットを要求します。GEV 式と年次最大値シリーズがここにあるはずですが、どうすればよいかわかりません。誰も nls を使用していて、これを行う方法について何か考えがありますか?
y が見つからないというエラーが表示されます。y は、GEV パラメーターを最適化したときに得られるものであり、すべての x に対して y が可能な限り x に近づくようにします (これも重みによって異なります)。したがって、GEV パラメータを推定するまで y は不明です...
r - Rでapply関数と一緒にnls関数を使用する
最初の応答をありがとう。
私は次のような行列を持っていると仮定します。
apply 関数を使用して、次の nls 関数を各行に適用したい場合。
どのようにプログラムするのですか?繰り返しk
ますが、応答変数は直観的に上記の行列の行であるためです。
oracle11g - NLS_DATE_FORMAT パラメータが動的 SQL を使用して設定されていない
テーブルを作成し、別のプロシージャを呼び出していくつかの値をテーブルに挿入する動的 SQL を使用するストアド プロシージャがあります。ストアド プロシージャは、いくつかのセッション設定も設定します。その 1 つがNLS_DATE_FORMAT
.
このパラメーターは、プロシージャーの実行時には機能しません。SYSTEM
(所有者) の下で、ADMIN
DBA、接続、およびリソースの特権を持つユーザーの下でプロシージャを実行しようとしましたが、目的の形式DD-MON-RR
ではなく、常に表示されますMM/DD/YYYY
。SQL Developer では、DBA->Database Configuration->Current Database Properties の下にNLS_DATE_FORMAT
も の形式で表示されますDD-MON-RR
。
データベース全体でこれを変更する方法はありますか? 以下を見つけて試しましたが、まったく機能しませんでした (これには、データベースの停止と再起動が含まれます)。
答えを得るために SPFILE と init.ora を調べましたが、私が見つけた最良の方法は、各ユーザーのログオン後に値を設定するトリガーでした。私はこれに反対しているわけではありませんが、次のセッション パラメータを設定するトリガーを作成することなく、パラメータを 1 回設定するよりグローバルな方法があるかどうかを調べたいと思います。
そして、ここに私のストアドプロシージャの関連部分があります:
プロシージャが実行されると (値を挿入するために後続のプロシージャが呼び出されます)、テーブルを開いたときに、ユーザーのNLS_DATE_FORMAT
は変更されていません (つまり、DD-MON-RR
ではなく形式のままですMM/DD/YYYY
)。
ありがとう。
oracle - NLS に応じて、週の最初の曜日を取得する方法
週の最初の日の日付を取得したいのですが、NLS パラメータに依存させたいです。たとえば、アメリカで実行すると日曜日の日付が表示されるはずですが、トルコでは月曜日が表示されるはずです..
どうすれば依存させることができますか?