程序公式使用R进行固定

时间:2018-03-24 03:14:01

标签: r formula bootstrapping

我有一个关于如何编写R代码的非常复杂的问题,因为我经历了所有可能的选项而没有任何结果。我可以在不到一个小时的时间内完成excel的第一部分,即得到以下公式的结果。

C = 1 / n Σ nj cj - aj ) ^ 2

n =观察次数, nj =区间内的观察次数, aj =每个班级间隔的正确响应比例, Σ是每个 j 等级与等级间隔的总和。

我想在R中做的原因是因为(1)一切都可以用同一个程序完成,而且 - 更重要的是 - (2)我需要做jackknife(或bootstrap)这个公式来得到折刀 SE (我需要推理置信区间)。

这是数据

> str(data)
'data.frame':   372 obs. of 6 variables:
 $ ID          : int  120 432 664 163 283 659 78 150 158 188 ...
 $ age         : int  20 20 16 18 20 15 20 20 16 20 ...
 $ sex         : Factor w/ 2 levels "female","male": 1 1 1 2 2 2 1 1 1 2 ...
 $ poconf123   : int  1 1 1 1 1 1 1 1 1 1 ...
 $ PoConfPC    : int  40 50 40 30 10 50 50 30 40 30 ...
 $ idacc       : Factor w/ 2 levels "accurate","inaccurate": 1 1 1 1 1 1 2 2 2 2 ...

要获取 nj cj aj ,我尝试了以下代码

group_by(data, poconf123) %>%  #this is to get results for each class intervall
    summarise(poconf = mean(PoConfPC)) %>% #this is to get cj
    summarise(NumAcc=n(), prop = mean(idacc==1)/n())  #this is to get nj and aj

使用上面的代码我收到以下错误消息

Error in summarise_impl(.data, dots): 
  Evaluation error: object 'PoConfPC' not found. 

单独的前两行,或仅第一行和最后一行不会产生相同的错误。但是,代码

group_by(data, poconf123) %>% 
    summarise(NumAcc=n(), prop = mean(idacc==1)/n())

似乎仍然不是最优的,因为我没有获得比例,例如.53,而是获得了值#34; 0。"在整个专栏中' prop'。

当然,我可以要求一个比例表,例如,

prop.table(table(data$idacc))  

获得准确和不准确的比例,但这不是我真正需要的。

所以,总的来说,我甚至没有达到可以运行分析并获得单个C的程度,更不用说重切刀SE了。这让我想到了一个实际的问题,那就是我如何将这个公式编程成一个函数,所以我可以“折刀”#39;它。 下面是如何将点 - 双列相关与推理置信区间所需的输出相关联的示例。

library(bootstrap)
xx = data$PoConfPC
yy = data$idacc
nn = length(xx)
theta <- function(x,xx,yy) {biserial.cor(xx[x], yy[x], level = 1)}
results <- jackknife(1:nn, theta, xx, yy)
summary(results$jack.values); results$jack.se; results$jack.bias

0 个答案:

没有答案