問題タブ [poisson]
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の二変量ポアソン回帰?
関連する 2 つのポアソン過程のモデルを評価する R 用のパッケージ 'bivpois' を見つけました (たとえば、サッカーの試合でのホーム チームとアウェイ チームのゴール数)。ただし、このパッケージは新しいバージョンの R では使用できなくなったようです。
glm() 関数を変更して同様のプロセスを実行する、またはこの古いパッケージを新しいバージョンの R で実行する合理的な方法はありますか? この種のプロセスに関する文献はほとんど見つかりませんでしたし、STATA のような他の統計パッケージでの簡単な実装に関する文献もほとんど見つかりませんでした。
どんな提案でも大歓迎です。
c - 帯行列連立方程式を解く
2D ポアソン方程式、つまり AX=B の方程式系を解く必要があります。ここで、A は n 行 n 列の行列で、B は n 行 1 列のベクトルです。A は 2D ポアソン問題の離散化行列であるため、5 つの対角線のみが null にならないことがわかっています。Lapack には、この特定の問題を解決する関数はありませんが、帯行列連立方程式を解く関数、すなわち DGBTRF (LU 因数分解用) と DGBTRS があります。ここで、5 つの対角線は、主対角線、主対角線の上下の最初の対角線、および主対角線に対して m 対角線分だけ上下にある 2 つの対角線です。バンド ストレージに関する lapack ドキュメントを読んだ後、A をバンド ストレージ形式で格納するには (3*m+1) 行 n 列の行列を作成する必要があることを知りました。この行列を AB と呼びましょう。今質問:
1) dgbtrs と dgbtrs_ の違いは何ですか? インテル® MKL は両方を提供しますが、その理由がわかりません
2) dgbtrf では、バンド ストレージ マトリックスが配列である必要があります。行または列で AB を線形化する必要がありますか?
3) これは 2 つの関数を呼び出す正しい方法ですか?
r - ポアソン回帰直線
ポアソン回帰直線をプロットに追加するにはどうすればよいですか? 以下を試してみましたが、アブライン機能が動作しません。これは、abline() が切片と勾配を使用するのに対し、ポアソン回帰直線は対数リンクを使用するためです。
wolfram-mathematica - Mathematicaを使ったポアソンソルバー
Mathematicaで書いているポアソンソルバーの助けを探しています。コードは非常に長く、アレイが接続されていますが、詳細についてはhttp://pastebin.com/uSrSDcW6を参照してください。
ポアソンの式から導出された中央差分法を使用して、電荷密度が与えられた電圧を計算しています。電圧を計算した後、データセットの収束をテストします。収束しきい値を10^-1000+のオーダーに設定しています。フェイルセーフとして、何かがうまくいかない場合に備えて、10000回の反復後にキックアウトするようにループを設定しています。正気のためにループカウンターを設置しています。収束しきい値が10^-100に設定されている限り、プログラムは正常に実行されているようです。
私の質問はこれです:しきい値を更新しても、たとえば10 ^ -100、10 ^ -150の場合、計算は633回の反復後に停止し、ループから抜け出します。私はこれで助けをいただければ幸いです、私は完全に立ち往生しています。このフォーラムの誰にとっても説明できるコメントをプログラムに追加しました。繰り返しになりますが、この説明は限られていることを知っているので、完全なプログラムについては、添付のURLhttp ://pastebin.com/uSrSDcW6を参照してください。
*更新10/9/12 ***問題を16桁のマシン精度に切り分けました。マシンの最大精度が10^309になるまで開く必要があります。Mathematicaヘルプはこれを行う方法についてはまばらです。ex「N[MachinePrecision、50]」。これをプログラムのどこに設定して、すべての計算に適用しますか?それが助けになるなら、ここにループを貼り付けます
Vnew / Vold / RHOは10x10x34です行列イプシロンは定数です
(ConvergenceLoopをOに初期化します-これは、必要に応じてループからキックアウトするためのフェイルセーフとして機能します)
ConvergenceLoop = 0;
(収束をゼロに初期化します)
収束=0;
While [Convergence == 0 && ConvergenceLoop <10000、
(すべてのi、j、k要素を実行し、新しい電圧値を計算します)
Do [Vnew [[i]] [[j]] [[k]] =(1 /(2 / deltaX ^ 2 + 2 / deltaY ^ 2 + 2 / deltaZ ^ 2))*(((Vold [[i + 1]] [[j]] [[k]] +
(収束したと仮定して、テストが定義された収束しきい値を超える最初の値に達したときにループがトリガーされるようにします)
収束=1;
(これは収束テストです。ユーザー定義の収束しきい値)
任意の要素で定義されたユーザー*)
(VnewとVoldがゼロ以外になるまで、最初の反復を無視します)
If [ConvergenceLoop <2、Convergence = 0、Null];
(VlandをVnewで進化させる)
Vold = Vnew;
ConvergenceLoop ++;]
(将来の計画のためにSessionTimeを追加しました)
If [ConvergenceLoop == 10000、
Print ["Convergence Loop Limit Reached。"(SessionTime [] / 3600)]、
Print["収束ループ制限に達していません。"]];
(whileループから抜け出しました。つまり、データが収束したため、収束した値を出力します)
If[収束==1、
Print [ConvergenceLoop "おめでとうございます!" MatrixForm [Vnew]]、Print ["Did Not Converge!"]];
c++ - C++ とブーストを使用してポアソン到着日を生成する
トランスポート ネットワークのシミュレーション プログラムを実行しています。ラムダ率の毒分布を持つバスステーションに乗客が到着することをシミュレートしたいと考えています。
実際、私のプログラムの構想では、到着日の 2 つのリストが必要です。1 つ目は乗客の到着予定日と見なされ、2 つ目は乗客の実際の到着日と見なされます。
到着時刻を生成するために、ブーストを使用して次のコードを使用しました。
問題は、このコードを異なるリストに使用して、同じ Lambda と同じリスト サイズの到着日を生成すると、常に同じ数値が生成されることです。
この世代で特定のバリエーションを作成して、生成された 2 つのリストが少し異なるようにするにはどうすればよいですか?
r - R を使用してポアソン信頼限界を生成する
ここからの参照(PDF の 19 ページ) を使用して、直接標準化された発生率の信頼区間を計算しました。引用された章はTable of 95% Confidence Limits for the Number of Cases, for 1-29 Cases, Based on the Poisson Distribution
、ここに添付されています。
パッケージ内のci.poisson
関数を使用して番号を生成しようとしました:epicalc
出力は PDF のテーブルとは異なります。これは0.0000
-である必要があります3.6889
。数値を生成するために間違った関数を使用しているのではないかと思います。Rを使用してそのテーブルを構築するにはどうすればよいですか? ありがとう。
c - 並列(CUDA)2Dポアソンソルバー
予測子修正子法を使用して2Dポアソン方程式を解く必要があります。方程式は、n*m
不均一なグリッドで解く必要があります。予測子修正子法とは、x
あるステップの解が、あるステップの解と値k+1
を合計することによって得られることを意味します。この値は、次のような連立一次方程式を解くことによって得られます。k
delta
delta
A(x ^ k)*デルタ= b(x ^ k)
有限差分法を適用することにより、行列A
は5
非ヌルの対角線を持ちます。メインの対角線、真上と真下の対角線、さらに上下の2つの対角線(n-1
他の対角線からゼロ対角線で区切られます)。不均一でA
あることは、明らかに非対称です。また、の主対角線A
とベクトルb
は、古い解に従って変更されます。ここで、並列アルゴリズムを使用してこの問題を解決したいと思いますdelta
。大きなグリッドを見つけるのは非常にコストがかかる可能性があるためです。何か案は?今はヤコビ法を試しています。
私には2つの可能な道があると信じています:直接法と逐次法に固執するか、反復法を使用することができます。後者を選択した場合、並列処理を利用したい場合は、ヤコビ法を使用する必要があります。他の並列方法を知っていますか?5
前者を選択した場合、私が正確にゼロ以外の対角線を持っているという事実を利用するアルゴリズムがあるかどうか知っていますか?ブロック行列に対するThomasのアルゴリズムはどうですか?
r - ポアソン回帰の層化データを構造化する方法
私はRを使用して、私が持っているいくつかのデータに対してポアソン回帰を実行しようとしています。データの現在の構造は次のとおりです。
データは、3つの職業に基づいて階層化されています。データには4つのレベルの収入があります。各階層内では、収入のレベルごとに
- 発生した労働災害の数、および
- 観察された総人月。
セットアップの例を次に示します。括弧内の数字は観察された総人月数であり、括弧なしの数字は労働災害の数です。
私の質問は、このデータをどのように設定し、労働災害の発生に対する所得水準の影響についてポアソン回帰を実行するのかということです。職業を調整して収入だけの効果を調べたいのですが、出発点として、ポアソン回帰問題として設定する方法がまったくわかりません。怪我の数を観察の月数で割るようなことを考えましたが、それは整数以外の値を与えるので、それは正しいことではないと思います。
繰り返しになりますが、予測因子:所得水準。応答変数:労働災害。
ところで、もしそれが理にかなっているなら、括弧番号を分けてそれらを彼ら自身の列に入れることは非常に簡単でしょう。
これを設定する方法についての提案を本当にいただければ幸いです。他の統計家も同様の構造のデータを扱っており、洞察を得たいと思うかもしれません。本当にありがとう!
statistics - Python SciPyカイ二乗検定は、ExcelおよびLibreOfficeとは異なるp値を返します
ポアソン分布のアプリケーションに関する最近のブログ投稿を読んだ後、Pythonの「scipy.stats」モジュールとExcel/LibreOfficeの「POISSON」および「CHITEST」関数を使用してその結果を再現してみました。
記事に示されている期待値については、単に次のものを使用しました。
これにより、ブログ投稿に示されているテーブルが再現されます。また、セルA1、A2、...、A8に0〜7の値を持つ最初の列Aと、単純な数式'= POISSON()を使用して、LibreOffice内からテーブルを再作成しました。 A1、2、0)*31'は列Bの最初の8行で繰り返されます。
これまでのところ良好です-カイ2乗p検定値について:
LibreOfficeの下で、セルC1〜C8の観測値を書き留め、「= CHITEST(C1:C8、B1:B8)」を使用して、記事で報告された0.18のp値を再現しました。ただし、scipy.statsでは、この値を再現できないようです。
私は何が間違っているのですか?
java - FastSineTransformer - 長さに合わせて配列にゼロを埋め込む
Javaで画像ブレンディング用のポアソン ソルバーを実装しようとしています。5つ星の方法で秘密化した後、実際の作業が始まります。これを行うには、色の値を使用して次の 3 つの手順を実行します。
- 行と列で正弦変換を使用する
- 固有値を掛ける
- 行と列に逆正弦変換を使用する
これはこれまでのところ機能します。Java で正弦変換を行うために、Apache Commons Math パッケージを使用しています。
ただし、FastSineTransformerには 2 つの制限があります。
- 配列の最初の値は 0 でなければなりません (それで問題ありません。実際の問題は 2 番目です)。
- 入力の長さは2 の累乗でなければなりません
したがって、現在、私の抜粋は 127、255 などの長さで収まっています (1 と 2 が満たされるように、最初にゼロを挿入しています)私の抜粋を自由に。
私の質問は: Apache FastSineTransformer の制限に適合するように、たとえば長さ 100 の配列を拡張する方法はありますか?
FastFourierTransfomer クラスでは、ゼロをパディングして 2 の累乗を取得できることが言及されています。しかし、それを行うと、間違った結果が得られます。おそらく私は間違っているかもしれませんが、ゼロでパディングしているときに心に留めておく必要があるものがあるかどうかは本当にわかりません