根据参考确定百分位数 table

Determining percentile based on reference table

我从最近的一篇文章中获得了儿童心率和呼吸率的标准化正常值。我将它们复制到 csv 中用作 R 中的数据集。数据只是不同的年龄范围(例如 3 个月到 6 个月,或 1 岁到 2 岁),然后是第一个百分位、第 10 个、第 25 个百分位数的心率,该年龄段的第 50、75、90、99 个百分位数。

我想将患者数据与此参考资料进行比较 table 以告诉我他们处于哪个百分位数。由于这是一个完全正态的分布,我认为这不是一项非常艰巨的任务,但它超出了我的 R 范围,我似乎无法找到任何关于如何完成此任务的好信息。

根据您的解释,我可以建议这个简单的函数,它将输入患者的心率和年龄范围,以及 return 基于此特定范围的正常密度的百分位数。

my.quantile = function(myrange, heart.rate){
  table <- data.frame('range'= c("range1", "range2", "range3"),
             'mean' = c(120, 90, 60),
             'sd'   = c(12, 15, 30))
  res <- pnorm(q    = heart.rate,
               mean = subset(table, range==myrange)$mean,
               sd   = subset(table, range==myrange)$sd)
  return(res*100)
}

### my.quantile("range1", 140) 
### [1] 95.22096

根据你的说法,如果它完全正常,你只需要每个范围的均值和方差,对吗?您可以根据呼吸频率调整它。

编辑:为了从你的分位数table中检索正态分布参数,假设你得到的分位数相当精确:

i/ 你的平均参数恰好是第 50 个百分位数

ii/ 您可以通过采用任何其他百分位数来找到标准差,例如,假设您的第 90 个百分位数是 73 次节拍,第 50 个百分位数是 61 次节拍:

(73-61)/qnorm(0.90)
### [1] 9.36365

9.36 是您的标准偏差。从这里开始,自动化它应该不是很难。

注意:如果您的百分位数据不是很精确,您可能需要对每个百分位值重复操作并取平均值。