【问题标题】:standard error binary variable R标准误差二进制变量 R
【发布时间】:2016-11-29 17:43:46
【问题描述】:

如何使用 R 计算二进制变量的标准误差? 我有一组参与者在多个条件下执行任务。输出可能是 0(不正确)或 1(正确)。我用下一个方法计算了正确答案和标准错误(SE)的平均比例:

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

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

但是 SE 非常严格,几乎不可能是正确的。有人能给我一些想法吗?我发现下一个可能是解决方案,

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

...但我不知道如何将它实现到 R.

【问题讨论】:

    标签: r standard-error


    【解决方案1】:

    假设变量 X 只有 2 个结果 (0/1),我们假设成功的机会 (1) 等于 p。这意味着 X 遵循 Bernoulli(p) 分布。

    然后由 pp*(1-p)/n 给出均值和方差,其中 n 是您的样本量现在将 p 改为 p.est,其中 p.est 是正确答案的比例。

    因此,如果您有一个名为 binary 的变量,其中 1 表示成功,0 表示失败:

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

    编辑:

    您还说您发现了非常小的 SE,这是违反直觉的。让我们仔细看看方差的公式:p*(1-p)/n。分子 (p*(1-p)) 可以取的最大值仅为 0.25,即 p=0.5 时。这个值只能减少,因为我们将它除以 n(观察次数)。假设我们有 p=0.5n=100,那么方差只有 0.0025。为了找到 SE,我们取平方根,在这个例子中这将给出 0.05 的 SE。如果您有更多观察结果,即n>100,方差和 SE 只会降低更多(直觉:更多数据 => 更多确定性 => 更小方差/SE)。

    如果方差/SE的公式是这样解释的,你有小的SE还是很奇怪吗?

    【讨论】:

    • 感谢您的帮助。代码字很好,但我得到的值为 0.006,这对我来说没有任何意义。平均准确度为 85% 时,预期的 SE 应该大得多。不知道根本原因是什么
    • 谢谢马塞尔。这是非常清楚的。 (p*(1-p))=0.13 n=3290,方差很小,因此我得到SE=0.006。我虽然它是矛盾的,但关注大的 n 可能是有道理的。谢谢。
    • @user3596790 乐于助人!如果您的问题得到充分回答,请选中向上/向下投票箭头下方的复选标记框
    猜你喜欢
    • 1970-01-01
    • 2012-03-17
    • 2014-08-26
    • 1970-01-01
    • 2014-02-27
    • 2018-10-08
    • 1970-01-01
    • 2018-07-18
    • 2011-04-22
    相关资源
    最近更新 更多