問題タブ [stan]
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 - openCPU と rstan - 接続を開くことができません
私は openCPU を使用して API を作成し、rstan でかなり基本的なモデルを推定しています。
openCPU から呼び出されるのではなく、通常の R コンソール セッションから呼び出されたときに、関数が自分の環境で機能することを確認しました。
しかし、openCPU 経由で呼び出すと、応答は次のようになります。
rstan のソースにチェックポイントを挿入することで、これを R/cxxfunplus.R の 1 つの呼び出しに追跡しました ( github の行へのリンクはこちら):
この呼び出しで、失敗する可能性のある接続を読み取ろうとしているのは何ですか?
r - 観測ノードが潜在ノードの最大値である場合に JAGS または STAN を使用する
私は次の潜在変数モデルを持っています: 人 j は 2 つの潜在変数 X j1と X j2を持っています。観察できるのは、それらの最大値 Y j = max(X j1 , X j2 ) だけです。潜在変数は二変量正規です。それらはそれぞれ平均 mu、分散 sigma 2を持ち、それらの相関は rho です。n 人の患者 (j = 1,...,n) からのデータを使用して、Y jのみを使用して 3 つのパラメーター (mu、sigma 2、rho) を推定したいと考えています。
このモデルを JAGS に適合させようとしました (そのため、パラメーターに優先順位を付けています) が、コードをコンパイルすることができません。JAGS を呼び出すために使用している R コードを次に示します。最初に、パラメーターの真の値を指定して、データ (潜在変数と観測変数の両方) を生成します。
次に、JAGS モデルを定義し、JAGS サンプラーを実行してサンプルを返す小さな関数を作成します。
最後に、JAGS を呼び出して、観測されたデータのみを供給します。
悲しいことに、これによりエラー メッセージが表示されます。「Y[1] は論理ノードであり、監視できません」。JAGS は、私が "<-" を使用して Y[i] に値を代入することを好みません (問題のある行を "Ack!" で示します)。苦情は理解できますが、これを修正するためにモデル コードを書き直す方法がわかりません。
また、他のすべて (「Ack!」行以外) が正常であることを示すために、モデルを再度実行しますが、今回は、実際に観測されているふりをして X データをフィードします。これは完全に実行され、パラメーターの適切な推定値が得られます。
このモデルを JAGS の代わりに STAN でプログラムする方法を見つけることができれば、それで問題ありません。
r - ユーザー定義関数内での STAN 関数の使用
私のデータ (m) の尤度関数は次のようになります。
STAN コード内に記述したユーザー定義の対数尤度関数は次のようになります。
. 私はそれを正しく行っているかどうか知りたいですか?ユーザー定義関数内で「exponential_log」や「normal_cdf_log」などの STAN 関数を使用できますか?
stan - 8schools.stanとschools.stanの違い
数年前、チュートリアル モデルが 8schools.stan だったとき、私は STAN を勉強しました。STANの再学習を試みています。現在、チュートリアル モデルは school.stan のみです。シードを同じ値に設定して、同じ基本モデルのこれら 2 つのバージョンを実行しました。非常に似ているが同一ではない 2 つの結果が得られますが、lp__ の値が著しく異なります。
8schools.stan と school.stan の唯一の違いは、モデル セクションにあります。2 つのファイルの差分は次のとおりです。
私が理解しているように、これら 2 つのモデル ステートメントは同等です。チュートリアルで指定された同じschools_datデータセットを使用して2つのモデルを実行しました。次のSTAN呼び出しを使用し、fit1のみをfit2に変更し、STANファイルを8schools.stanからschools.stanに変更して2つの実行を行いました。
8校の結果:
そしてschools.stanの場合:
2 つのモデルの結果は非常に似ていますが、完全に異なる lp__ を除いて、同一ではありません。シードが同じ値を与えないように、2 つのモデルのコンパイル方法が少し異なっているのではないかと思います。しかし、これら 2 つのモデル ステートメントは本当に同一なのでしょうか? 推定されたパラメーターのわずかな違いは別として、サンプリングから予想される変動の範囲内 (ただし、同一のシードに注意してください) に十分に収まっていますが、顕著な違いは lp__ の値にあります。
何が起きてる?私のためにこの問題を明確にすることができる人に事前に感謝します.
r - 非線形指数モデルの構築 -- ベクトルまたは実数を使用しますか?
私はスタンと確率的プログラミングが初めてです。非線形成長モデルを構築しようとしています。私はモデルを構築することができましたNLS
私が使用したNLS式は次のとおりです。Trump_Pct ~ alpha - beta * lambda^Population
私のNLSの要約は次のとおりです。
言い換えれば、基本的な指数減衰曲線です。私はスタンと複製しようとしています。
私のデータは次のとおりです。
データセットにN
観測があります。予測子は郡の人口 (「人口」) であり、予測された Y はトランプへの投票率「Trump_Pct」です。
このモデルを構築する 2 つの方法を試しました。
1 つは、データの各コンポーネントをモデルにベクトルとして渡します。
もう 1 つの方法では、各データ コンポーネントをリストとして残し、各データ ポイントを使用しようとします。
どちらの場合も、モデルを正常に実行することはできません。
ここに私のモデルがあります:
ケース 1:
これは、このモデルの適応です。
ここでは、Trump_Pct 列と Population 列のベクトル化されたバージョンを作成しました。
このモデルは、指数の行で次の理由で失敗します。
`構文エラー、パーサーからのメッセージ:
^ への引数はプリミティブ (実数または整数) でなければなりません。block=local` では実数をベクトルで累乗できません
使用してみましpow()
たが、先に進む方法が見つかりません。任意のヒント?
ケース 2:
ケース 2 では、パラメーターの推定値を範囲内に保つことができません。
"Informational Message: The current Metropolis proposal is about to be rejected because of the following issue:"
[2] "Exception thrown at line 21: normal_log: Location parameter[2873] is -inf, but must be finite!"
私の式の単純な非線形モデルについてアドバイスをくれる人はいますか?