2016-07-26 9 views
2

Rを使用してバイナリ変数の標準エラーを計算するにはどうすればよいですか? 私は、参加者のグループにいくつかの条件でタスクを実行させています。出力は0(不正)または1(正しい)です。私は次のように正解と標準誤差(SE)の平均割合を計算しています標準エラーバイナリ変数R

mean<-tapply(dataRsp$Accuracy, dataRsp$Condition, FUN=mean) 

SE<- with(dataRsp, tapply(Accuracy, Condition, sd)/sqrt(summary(dataRsp$Condition))) 

しかし、SEは、彼らはほとんど正しいことはできませんことをextremellyタイトです。誰かが私にいくつかのアイデアを与えるかもしれない?私は次は、

sqrt(p.est*(1-p.est)/n) 

解決策になるかもしれないことがわかった...しかし、私は考えR.

答えて

2

にそれを実装する方法がわからない、その変数X用 2つの結果(0/1)しかなく、成功の確率(1)はpに等しいと仮定します。これは、Xが、ベルヌーイ(p)の分布に従うことを意味します。

平均と分散

は、[今すぐ p.estによってPを変更NはあなたのサンプルサイズであるPのp *(1-P)/ N、で与えられます。 p.estは答えの正解の割合です。

だから、失敗の成功のためのbinary 1と0のという変数がある場合:

p.est <- mean(binary) 
variance <- (p.est*(1-p.est))/nrow(binary) 
std.dev <- sqrt(variance) 

EDIT:

また、あなたは見つけることを言っカウンター直感的だった非常に小さなSEさん、 。分散の式を詳しく見てみましょう:p *(1-p)/ n。分子(p *(1-p))の最大値は0.25であり、すなわちp = 0.5である。この値は、n(観測数)で除算するため、減少するだけです。 p = 0.5およびn = 100であると仮定すると、分散はわずか0.0025です。 SEを見つけるために、この例では0.05のSEを与える平方根を取る。より多くの観測値がある場合、つまりn> 100の場合、分散とSEはさらに減少します(直感:より多くのデータ=>より確実性=>より小さい分散/ SE)。

分散/ SEの計算式がこのように説明されている場合は、小さなSEを使用するのはまだ奇妙ですか?

+0

ありがとうございます。コードワードはうまくいきますが、私は0.006の値を得ていますが、これは意味をなさないものです。例えば85%の平均精度では、予想されるSEははるかに大きくなるはずである。何が根本的な理由かもしれないか分かりません – user3596790

+0

Marcelありがとうございます。これは非常に明確であった。 (p *(1-p))= 0.13 n = 3290の場合、分散は非常に小さいので、SE = 0.006を得る。私はそれが対立していましたが、大きなnに参加することは意味をなさないかもしれません。ありがとうございました。 – user3596790

+0

@ user3596790ようこそ!あなたの質問が完全に回答されている場合は、アップ/ダウン矢印のすぐ下にあるチェックボックスをチェックしてください – Marcel10

関連する問題