問題タブ [statistics-bootstrap]
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 - tryCatch() を使用してブートストラップ ループをキャッチする
の使用に関する知識が不十分ですtryCatch()
が、進行中の議論で適切な解決策を見つけるのが難しいことがわかりました。
オブジェクトを返す自己プログラム関数があります。これは実際にはリスト オブジェクトですが、簡単にするためにスカラーであると仮定します。for()
この関数をブートストラップするためにループを使用しています。私のループは次の形式です。
myfunction()
lm()
は、データのサブセットにモデルを当てはめ、別のサブセットから新しいデータを予測するために使用するため、エラー メッセージを返すことがあります。次に、特定の要因について、たまたま適合に使用されたデータに表示されないレベルが発生する可能性がありますが、予測サブセットには表示されます。これはめったに発生しませんが (たとえば、約 15,000 回の反復ごとに)、発生します (何度もブートストラップmyfunction()
する必要があります)。
tryCatch()
または同様の関数を使用して、ブートストラップ ループをキャッチしたいと考えています。tryCatch()
さらに、ループ全体で関数をキャッチする必要があった頻度をカウントするインデックスを定義したいと思います。boot
最後に、エラーが発生した回数に関係なく一定数にしたいと思います。
R は次のメッセージを返します。
X
のユーザー指定の予測子ですlm()
。2 が何を表しているのかわかりませんが、新しいレベル (?) の数だと思います。
r - R parallel を使用してブートストラップを高速化する
ブートストラップ関数を高速化したいのですが、それ自体は完全に正常に機能します。R 2.14 から というパッケージがあると読みましたが、parallel
sb では非常に難しいと思います。実際に実装するには、コンピュータ サイエンスの知識がほとんどありません。多分誰かが助けることができます。
したがって、ここにブートストラップがあります。
目標は、並列処理を使用し、PC の複数のコアを活用することです。WindowsでRを実行しています。ありがとう!
編集(ノアからの返信後)
テストには次の構文を使用できます。
ただし、私のマシンでは、単純な R コードの方が高速です。これは、並列処理の既知の副作用の 1 つですか。つまり、このような「単純なタスク」の時間を追加するプロセスをフォークするオーバーヘッドが発生しますか?
編集: 私のマシンでは、parallel
コードは「単純な」コードよりも約 5 倍長くかかります。boot
この要素は、タスクの複雑さを増しても (または の増加など)変化しないようn
です。コードまたはマシンに問題がある可能性があります (Windows ベースの処理?)。
r - Rを使用して、列間ではなく列の小さな部分を標準化します
私は複数レベルの構造を持っており、私がする必要があるのは、各個人 (より高いレベルのユニットであり、それぞれがいくつかの個別の対策を持っている) を標準化することです。
検討:
以前apply(data, 2, scale)
はすべての人に標準化していました (これは ID とメジャーも標準化しますが、それで問題ありません)。
ID == 1
ただし、 、 、ID == 2
および を個別に標準化するにはどうすればよいID == 3
ですか? --> 各observation
-mean of 3 scores
を で割ったものstandard deviation for 3 scores
)。
私はfor
ループを考えていましたが、問題はこれをブートストラップしたいということです (つまり、大きなデータセットに対して手順全体を 1000 回複製するため、速度が非常に重要です)。
追加情報: ID はさまざまな測定値を持つことができるため、すべての ID に 3 つの測定スコアがあるわけではありません。
dput
データのは次のとおりです。
r - R の「boot」と「boot.ci」で「apply」を使用する方法を理解する
データ フレームがあり、ブート関数を使用して各列に関数を適用したいと考えています。また、boot.ci を使用して、適用された関数の信頼区間を取得したいと考えています。次の簡単な例に示すように、ブートストラップを実行できましたが、それが機能する理由がわかりません。
まず、関数へのデータ入力に付随する x と [x,] が必要なのはなぜですか? (関数を次のように定義することで、うまくいくと思いました:
、しかし、これはエラーをスローします:統計のエラー(データ、オリジナル、...):未使用の引数(オリジナル)。このため、なぜ x が必要なのかわかりません。各ブートストラップ統計に関連付けられた信頼区間 (つまり、各列の平均に関連付けられた信頼区間) も返すように関数を定義するのに問題があります。おそらく、信頼区間に関する私の問題は、x の目的の誤解に根ざしているのでしょうか? 例えば、
信頼区間のセットを 1 つだけ返します。
x 参照が必要な理由に関する他の質問やコメントへの指示は大歓迎です。信頼区間を返す方法についてのガイダンスもいただければ幸いです。
r - R でローリング ブートストラップ値と信頼区間を計算する方法
私は R を初めて使用し、ブートストラップされた標準偏差 (sd) と関連する標準誤差を 30 観測ローリング ウィンドウ内で計算しようとしています。以下の関数は、sd だけが必要な場合に適切にローリング ウィンドウを実行します。しかし、ブート パッケージを使用してブートストラップ関数を追加すると、以下に示すエラーが発生します。ブートストラップの結果を正しいサイズではないベクトルに保存しようとしていることがわかりました。新しいマトリックスの行の各ウィンドウのブートストラップされた sd と関連する stderror だけを保存する方法について誰かアドバイスはありますか? 目標は、時系列に沿って各ウィンドウの sd と関連する 95% 信頼区間をプロットすることです。助けてくれてありがとう。
r - サンプリングされたセットのすべての値が等しい場合の R boot.ci 関数のエラーを回避する
関数への入力である多くのデータセットがあります。データはデータ テーブルに保存され、関数出力の信頼区間を計算しています。ただし、すべての入力データが同じで、次のようなエラーが発生する場合があります。すべての値が等しい場合の 0 または NA のような任意の値への間隔)? 例えば:
戻り値:
変化
戻り値:「t のすべての値は 100 に等しい \n 信頼区間を計算できません」 これは他のエラーにつながります。
結果を次のようにしたいと思います。
r - pvclust を使用して 1 次元データをクラスター化する
この質問を読んでくれてありがとう。R でクラスター化する 1 次元データがいくつかあります。基本的なhclust
コマンドは正常に機能します。ただし、pvclust
コマンドは 1 次元データを使用せず、次のように言い続けます。
データにすべてゼロの行を追加するという回避策を見つけました。したがって、データは次のようになります。
それから私は走りましたpvclust
、そしてそれはうまくいきました!
しかし、この回避策が pvclust の背後にある数学を台無しにするのではないかと懸念しています。私が正しい/間違っているかどうか、そして私の質問に対するより良い解決策があるかどうか、誰か教えてもらえますか?
ありがとうございました!
r - R を使用してブート内で最適化を使用する
ブートストラップを介して推定されたパラメーターの標準誤差を計算したいと考えていますoptim
。目的は、optim
関数の入力として使用されるデータをブートストラップすることです。
初期最適関数は次のように与えられます。
C1 などは、ブートストラップで作成したい共分散行列です。を使用してブートストラップするためのコードをboot
以下に示します。
これは、関数内で未使用の引数のエラーを返しますoptim
。optim
ブート関数内で使用できますか? optim
関数の定義方法を変更する必要がありますか?
編集: Vincent が示唆したように、追加の引数は初期関数を介して渡す必要があります。この問題で重要なのは、optim
が異なるデータで確実に繰り返されるように、追加のインデックスを指定する必要があることです。最終的な解決策は.
stata - 多数のスカラーに対するブートストラップ標準誤差の生成
4 つのスカラーがあるとしますdea_1 dea_2 dea_3 dea_4
。それらはプログラムからの出力です samprogram
(ここには示されていません)。
ここbootstrap
で、これらのスカラーで Stata のコマンドを使用して、ブートストラップされた標準エラーを取得します。
これは問題ありませんが、元のプログラムでは、30 個のスカラーを計算しdea_1 dea_2 ... dea_30
ます。ここで、コマンドでこれら 30 個のスカラーをそれぞれ記述することを避けたいのでbootstrap
、この目的のために次のようにループを記述しました。
これは機能しますが、各スカラーの出力を一度に 1 つずつ提供します。bootstrap
ただし、コマンドにすべてのスカラーを書き込むことを回避しながら、同時にすべての出力を提供するコードを探しています(つまり、次のコマンドからの出力のように)。
この点でどんな助けでも大歓迎です。