-2
グループ化された割合テーブルを作成しました。特定の信頼区間に誤差範囲を含める最も簡単な方法は何ですか?誤差のある因子のprop.table
data.frame(prop.table(table(df$variable, df$group),2))
SummarySE()が動作するはずですが、私の変数は三つのレベルではなく、数値を持つ要因です。
グループ化された割合テーブルを作成しました。特定の信頼区間に誤差範囲を含める最も簡単な方法は何ですか?誤差のある因子のprop.table
data.frame(prop.table(table(df$variable, df$group),2))
SummarySE()が動作するはずですが、私の変数は三つのレベルではなく、数値を持つ要因です。
確かに信頼区間で何を意味するのかを明記する必要がありますが、比率の二項信頼区間が必要な場合、これは必ずしもきれいではなく動作します。出発点として、それを取り、あなたのニーズに適応:
ci.table <- function(tbl, margin = NULL) {
binom_ci <- function(x, n) {
paste(round(binom.test(x, n)$conf.int, 3), collapse = " - ")
}
sweep_ci <- function(xx, nn) { mapply(FUN = binom_ci, xx, nn) }
if (length(margin))
result <- sweep(tbl, margin, margin.table(tt, margin),
"sweep_ci", check.margin = FALSE)
else
result <- sweep_ci(tbl, sum(tbl))
dim(result) <- dim(tbl)
as.table(result)
}
binom_ci
機能は、フォーマットを処理します。私が特に好きではない - 信頼区間のための "X Y" が、私はほとんどの人が、この例よりも良い "(x、y)を" 理解していることを発見した...
MWE:
ddff <- data.frame(
A = sample(c("A", "B", "C"), 20, replace = TRUE),
B = sample(c("C", "D"), 20, replace = TRUE)
)
tt <- table(ddff$A, ddff$B)
ci.table(tt)
ci.table(tt, 1)
ci.table(tt, 2)
私は、信頼区間はバイナリ変数の頻度テーブルの文脈で意味をなさないと思う。 stats.stackexchange.comで質問することを検討するかもしれません。ここで尋ねるならば、おそらく、(サマリーSEが出てくるような)パッケージへの参照を含む再現可能な例を作るべきでしょう。いくつかのガイダンス:http://stackoverflow.com/a/28481250/ – Frank
私の間違いは、3つのレベルを述べているはずです。 – Kasey