問題タブ [weibull]
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 - JAGSの「カウントプロセス」形式でのパラメトリック生存モデルの表現
時変共変量を可能にする JAGS で生存モデルを構築しようとしています。たとえば、生存率がワイブル分布に従うと仮定します (ただし、ハザードを変化させたいので、指数関数は単純すぎます)。したがって、これは基本的にパッケージで実行できることのベイジアン バージョンでありflexsurv
、パラメトリック モデルで時変共変量を可能にします。
したがって、「カウントプロセス」形式でデータを入力できるようにしたいと考えています。各被験者には複数の行があり、それぞれが共変量が一定のままである時間間隔に対応しています (この pdfまたはここで説明されています。これはまたはパッケージが許可する配合(start, stop]
。survival
flexurv
残念ながら、JAGS で生存分析を実行する方法に関するすべての説明は、被験者ごとに 1 つの行を想定しているようです。
この単純なアプローチを採用して、カウント プロセス形式に拡張しようとしましたが、モデルは分布を正しく推定しません。
失敗した試み:
例を次に示します。まず、いくつかのデータを生成します。
次に、データを被験者ごとに 2 つの観測値に分割します。各被験者を時間 = 300 で分割しているだけです (時間 = 300 に達しなかった場合を除き、観察結果は 1 つしか得られません)。
これで、JAGS モデルをセットアップできます。
分割点がどこにあるかに応じて、モデルは基になる分布の非常に異なるパラメーターを推定します。データがカウント プロセス フォームに分割されていない場合にのみ、パラメーターが正しく取得されます。これは、この種の問題のデータをフォーマットする方法ではないようです。
仮定が欠けていて、問題が JAGS とはあまり関係がなく、問題の定式化に関連している場合は、提案を歓迎します。時変共変量がパラメトリック生存モデルで使用できないことに絶望しているかもしれません (また、一定のハザードを仮定し、実際には基になる分布を推定しない Cox モデルのようなモデルでのみ使用できます)。ただし、上で述べたように、flexsurvreg
R のパッケージは(start, stop]
パラメトリック モデルの定式化に対応しています。
このようなモデルを別の言語 (JAGS の代わりに STAN など) で構築する方法を知っている人がいれば、それもありがたいです。
編集:
Chris Jackson が電子メールで役立つアドバイスを提供しています。
ここでは、JAGS の切り捨てのための T() コンストラクトが必要だと思います。基本的に、人が生きているが共変量が一定である各期間 (t[i]、t[i+1]) では、生存時間は期間の開始時に左打ち切られ、場合によっては右打ち切られます。終わり。だからあなたは次のようなものを書くでしょう
y[i] ~ dweib(shape, scale[i])T(t[i], )
この提案を次のように実装しようとしました。
残念ながら、これではうまくいきません。古いコードでは、モデルはほとんどスケール パラメータを正しく取得していましたが、形状パラメータでは非常に悪い仕事をしていました。この新しいコードを使用すると、正しい形状パラメーターに非常に近くなりますが、スケール パラメーターは一貫して過大評価されます。過大評価の程度は、分割点が来るのが遅いことに相関していることに気付きました。分割点が早い ( cens_point = 50
) 場合、過大評価はありません。遅い ( cens_point = 350
) 場合は、たくさんあります。
この問題は、観測の「二重カウント」に関連している可能性があると考えました。t=300 で打ち切られた観測が見られた場合、同じ人物から、t=400 で打ち切られていない観測が見られた場合、この人物がは、ワイブル パラメータに関する推論に 2 つのデータ ポイントを提供していますが、実際には 1 つのポイントだけを提供する必要があります。したがって、私は各人にランダム効果を組み込んでみました。ただし、これは完全に失敗し、nu
パラメーターの推定値が非常に大きくなりました (50 ~ 90 の範囲)。それがなぜなのかはわかりませんが、おそらくそれは別の投稿の質問です。私は問題が関連しているかどうかわからないので、そのモデルの JAGS コードを含む、この記事全体のコードをここで見つけることができます。
r - 特定の間隔で乱数を生成する
特定の間隔でいくつかのワイブル乱数を生成したいと考えています。たとえば、間隔 (0, 10) で形状 2 およびスケール 30 のワイブル分布からの 20 個の乱数。
rweibull
R の関数は、指定された形状とスケール値を持つワイブル分布から乱数を生成します。誰かが方法を提案できますか?前もって感謝します。
python - Ubuntu 14.04 で実行されている Python コードが Windows 8.1/10 で実行されていない
私のpythonコードはUbuntu 14.04で正常に実行されていました。しかし、Windows プラットフォームで実行しようとすると、エラーが発生します。コード:
エラー:
これを修正してください!
r - Rのワイブル確率グリッド
R の ggplot2 パッケージを使用して、信頼性分析用のワイブル確率グリッドを構築しようとしています。2 つのパラメトリック ワイブルの累積分布関数が直線に適合するように、時間と故障確率などのデータを変換しました。グリッドにライン。
y 軸については、パーセンテージを表示する二重対数スケールを変換する関数を作成しました。
ここで、適切なブレークとラベルを x 軸に合わせたいと思います。単位は時間ですが、軸は対数です。短い失敗時間の場合、軸にラベルを付けて整数で分割する必要があります。たとえば、c(100, 1000, 2000, 5000) のようなベクトルです。
失敗回数が多い場合 (時間 > 5000)、x >= 4 の対数スケール 10 ^(x) に切り替えたいと考えています。
x 軸上の 2 つのものを組み合わせるのに問題があり、誰かがこの問題を解決するのを手伝ってくれることを願っています。
以下に、私のコードの「興味深い」部分があります。対数 (10 ^(x)) の場合のためだけに、x 軸を分割してラベルを付けたことがわかります。しかし、私が言ったように、私は1つの軸に組み合わせを持ちたい.
これは私が今までコーディングしたものです。
私の言語が私の問題を説明するのに十分であることを願っています.
ベスト、ティム
excel - Excelを使用して最適な分布を見つける
指数分布のシータとワイブル分布のシータとタウを推定しました。2 つの分布を比較して、どちらが自分のデータに最も適しているかを確認したいと考えています。どうすればそれをエクセルで行うことができますか?R 2 乗値を Excel で求めることはできますか?
python - Scipy: ワイブル分布に合わせるには?
ワイブル分布をフィッティングすることで完全に混乱しました。
これらのパラメーターはhttps://en.wikipedia.org/wiki/Weibull_distributionのワイブル分布にどのように対応していますか? 具体的にはa
、c
wiki のlambda
とはk
何ですか?
http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.exponweib.html#scipy.stats.exponweibでは、pdf
は次のように定義されています。
しかしウィキペディアでは、PDF は
exponweib.pdf
また、返されるパラメーターを使用すると、異なる結果が得られます
winbugs - Winbugs の単純なモデルですが、「このチェーンには初期化されていない変数が含まれています」と表示されます
イベントデータまでの時間は簡単で、共変量はありません。私はそれにワイブル分布を当てはめようとしていました。だから私は次のコードを持っています。イニシャルをロードするまでは、すべて問題ないようです。「このチェーンには初期化されていない変数が含まれています」と表示されます。しかし、私は理解していません。Weibull dist には 2 つのパラメーターしかないと思いますが、それらはすべて指定済みです。アドバイスいただけますか?ありがとう!