计算超出90%置信区间的观测百分比

时间:2014-12-19 00:09:47

标签: r ggplot2 confidence-interval

目标:我想计算数据中所有受试者的90%CI以外的观察百分比(CONC)。

我的数据框包含以下列:

df <-
ID  TIME CONC   CI90low     CI90hi
1   4   9.38    0.870240934 133.6468179
1   5   37.5    0.936887451 140.4165014
1   6   50.9    1.804344597 16.7551025
1   8   53.5    55.34913078 146.1486235
1   10  64.8    8.433188849 126.9535201
1   12  47.8    15.48328251 94.23716498
1   24  19.4    2.457364534 34.00074335
1   36  5.54    1.107788098 22.38902995
1   48  2.52    0.456572767 14.28822964
2   1   7.23    0.309733729 52.68946657
2   1.5 27.1    0.705395145 100.630645
2   10  51.1    9.78008354  134.8669611
2   12  37.1    5.500102861 94.25775578

我想到了一种可能的方法来实现这一目标,但我不确定如何在R中编码。

我的想法是在数据框中添加一个新列:

1)对于每个时间点(ID,TIME)的每个受试者,检查浓度(CONC)是否介于所提供的90%CI的下限和上限之间。如果是,则在新列中添加零0值,如果否,则添加值1。我试过ifelse但是无法确定它。

2)计算列中的零个数。然后:

    % of observations outside the 90%CI = total number of ONEs/length(df)*100%

感谢您对此进行编码的帮助。也许,你可能有另一种方式去做。

2 个答案:

答案 0 :(得分:0)

一种简单的方法:

mean(with(df, CONC < CI90low | CONC > CI90hi)) * 100

答案 1 :(得分:0)

我自己找到了答案:

1)使用以下内容添加值为0(如果在其中)或1(如果在90CI之外)的指标列:

  df$IND <- ifelse(df$CONC < df$CI90low|df$CONC > df$CI90hi,1,0) 

2)通过以下方式计算外部百分比:

 Percernt_Out <- sum(df$IND)/length(df$IND)*100

请注意,sum(df$IND)会在90CI之外提供观察总数,因为其他人的值为0