我正在比较两种温度控制设备,它们均设计用于将麻醉患者的体温保持在恰好37度。该设备适合500名患者,分为两组。A组(400例患者)-设备1,B组(100例患者)-设备2。每位患者每小时测量一次体温,持续36小时,为我提供了两组的18000个数据点。我需要确定在36小时内哪种设备可以更精确地控制患者的体温。我已经构造了折线图,将每个时间点的中位数与四分位数条连接起来,在视觉上似乎有所不同。我应该如何分析我的数据以证明统计差异?
我正在比较两种温度控制设备,它们均设计用于将麻醉患者的体温保持在恰好37度。该设备适合500名患者,分为两组。A组(400例患者)-设备1,B组(100例患者)-设备2。每位患者每小时测量一次体温,持续36小时,为我提供了两组的18000个数据点。我需要确定在36小时内哪种设备可以更精确地控制患者的体温。我已经构造了折线图,将每个时间点的中位数与四分位数条连接起来,在视觉上似乎有所不同。我应该如何分析我的数据以证明统计差异?
Answers:
您需要考虑的第一件事是(量化)在这种设备中具有“良好的精度”的含义。我建议,在医学方面,目标是避免温度偏差进入对患者而言危险的范围,因此“良好的精度”可能会转化为避免危险的低温或高温。这意味着您将要寻找一种指标,该指标会严重不利于偏离您的最佳温度37 C的较大偏差。因此,基于中值温度波动的测量将是对精度,而突出较大偏差的度量会更好。
在制定这种度量标准时,您隐含地采用了“惩罚函数”,该函数会对偏离所需温度的温度进行惩罚。一种选择是通过在所需温度附近的较低方差来测量“精度”(将其作为方差计算的固定平均值)。方差由平方误差惩罚,因此对于高偏差给出合理的惩罚。另一种选择是加大处罚力度(例如,立方误差)。另一种选择是简单地测量每个设备使患者处于医疗安全温度范围之外的时间。在任何情况下,无论选择什么,都应反映出偏离所需温度的危险。
一旦确定了什么构成“良好精度”的度量标准,就将制定某种“异方差测试”,从更广泛的意义上讲,可以允许您使用任何精度的度量。我不确定我是否同意胡布关于调整自相关的评论。这实际上取决于损耗的公式-毕竟,长时间处于高温范围内可能是最危险的事情,因此,如果您调整回去考虑自相关,则可能会结束未能充分惩罚高度危险的结果。
这是对同方性的检验。并且因为这是一个时间序列,所以适当的选择是Breusch-Pagan检验,而不是F检验。该测试仅回答两个设备之间的精度相等问题。精度水平是方差的另一种思考方式。
[编辑:考虑到时间依赖性,将测试更改为正确的测试]
如果您对设备保持37°C的温度状况感兴趣,则可以:
数据自然适合重复测量处理。通过将个人内部试验视为群集,您将减少围绕设备影响而错误估计置信区间的可能性。此外,您可以测试两个设备之间时间的影响,也可以测试与设备的交互作用,以确定随时间推移保持温度是否良好。寻找一种可视化所有方法的方法至关重要,并且可能会建议一种方法。类似于以下内容:
library(dplyr)
library(lme4)
set.seed(42)
id <- rep(1:500, each=36)
time <- rep(1:36,500)
temp <- c(rnorm(36*400, 38,0.5), rnorm(36*100,37.25,0.5))
temp <- temp + 1/time
prox_37 <- temp - 37
group <- c(rep("A",36*400), rep("B",36*100))
graph_t <- ifelse(group=="A", time-0.25, time+0.25)
df <- data.frame(id,time,temp,prox_37,group, graph_t)
id_means <- group_by(df, id) %>% summarize(mean_37 = mean(prox_37))
id_means$group <- c(rep("A",400), rep("B",100))
boxplot(id_means$mean_37 ~ id_means$group)
plot(graph_t, prox_37, col=as.factor(group))
loess_fit <- loess(prox_37 ~ time, data = df)
lines(c(1:36), predict(loess_fit, newdata= c(1:36)) , col = "blue")
summary(t.test(mean_37 ~group, data=id_means))
model1 <- glm(prox_37 ~ as.factor(group), family = "gaussian", data=df)
model2 <- lmer(prox_37 ~ as.factor(group) + (1 | id), data=df)
model3 <- lmer(prox_37 ~ as.factor(group) + time + (1 | id), data=df)
model4 <- lmer(prox_37 ~ as.factor(group) + time + time*as.factor(group) + (1 | id), data=df)
AIC(model1)
summary(model2)
summary(model3)
summary(model4)