Rで二項分布をまとめて計算

二項分布をまとめて計算

はじめに

複数の頻度と95%信頼区間を計算したい。普段、頻度とその95%信頼区間はbinom.test(a, b)を用いて計算しています。これに、データフレームのデータを流し込んで一気に、頻度 estimateと信頼区間の上限upperと下限lowerの値をベクトルとして得たい。

サンプルコード

bunsi <- c(1, 2, 3, 4)
bunbo <- c(10, 15, 16, 20)
df <- data.frame(bunsi, bunbo)

result <- mapply( binom.test, df$bunsi, df$bunbo ) 
estimates <- unlist(result[5,]) # estimate, 頻度
conf_int <- matrix ( unlist(result[4,]) , byrow=F, nrow=2 ) # conf.int
lower <- conf_int[1,]
upper <- conf_int[2,]

解説

このRスクリプトは、4つの異なる二項分布に関する二項検定を行っています。 まず、ベクトル`bunsi`と`bunbo`が定義されており、それぞれ成功回数と試行回数を表しています。

次に、これらのベクトルを使用してデータフレーム`df`が作成されます。

`mapply`関数は、`binom.test`を用いて、`df`の各行について二項検定を行います。`binom.test`は、二項分布における成功の確率を推定し、その確率が指定した値(デフォルトでは0.5)から有意に異なるかどうかを検定します。

結果のリストから、`estimates`(推定値)と`conf_int`(信頼区間)が抽出されます。`estimates`は成功の確率の推定値を、`conf_int`はその95%信頼区間を表しています。

最後に、信頼区間の下限`lower`と上限`upper`が抽出されています。 したがって、このスクリプトは4つの二項分布の成功確率を推定し、その信頼区間を計算しています。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Translate »