我有一些汇总级别的数据,可以告诉我一组患者在某个截止日期之前实际去过医生的频率。我没有个人数据,我只知道例如去了5次,有的只有一次。 我也知道,有些人在观察间隔开始时已经是患者,并且预计会越来越多,而有些则是后来才进入的新患者。如果他们只在截止数据之前一个月加入,那么他们的出现频率将比一开始就在小组中的人减少。
当然,患者的行为不佳,因此有时会错过一次探访,或者比预期的来得频繁。我正在设置一些边界条件,以定义相对于开始看医生的月份就诊的最小和最大次数的期望。
现在,我想将实际的摘要级别数据分发给个人,即创建一个数据框,该数据框告诉我每个人在哪个月开始出现在医生那里,以及他们来了多少次才进行检查,直到截断为止。休息日。
我假设这可以通过某种类型的随机抽样来完成,但是结果需要既符合我所掌握的有关实际主题的摘要级别信息,又要符合告知某个主题预期会出现的频率的边界条件与他们的加入时间有关。
这里有一些代码生成目标数据帧,其中包含观察期开始的月份,预期的医生就诊的各自次数(包括最小和最大就诊的边界)以及相关的受试者开始百分比在这个月内去看医生:
library(tidyverse)
months <- c("Nov", "Dec", "Jan", "Feb", "Mar", "Apr")
target.visits <- c(6,5,4,3,2,1)
percent <- c(0.8, 0.1, 0.05, 0.03, 0.01, 0.01)
df.target <- data.frame(month = months, target.visits = target.visits,
percent = percent) %>%
mutate(max.visits = c(7,6,5,4,3,2),
min.visits = c(5,4,3,2,1,1))
这是数据框:
month target.visits percent max.visits min.visits
Nov 6 0.80 7 5
Dec 5 0.10 6 4
Jan 4 0.05 5 3
Feb 3 0.03 4 2
Mar 2 0.01 3 1
Apr 1 0.01 2 1
此外,我可以创建一个数据框,以显示实际主题n和实际访问次数:
subj.n <- 1000
actual.visits = c(7,6,5,4,3,2,1)
actual.subject.perc = c(0.05,0.6,0.2,0.06,0.035, 0.035,0.02)
df.observed <- data.frame(actual.visits = actual.visits,
actual.subj.perc = actual.subject.perc, actual.subj.n = subj.n * actual.subject.perc)
以下是带有实际观察结果的数据框:
actual.visits actual.subj.perc actual.subj.n
7 0.050 50
6 0.600 600
5 0.200 200
4 0.060 60
3 0.035 35
2 0.035 35
1 0.020 20
不幸的是,我不知道如何将它们组合在一起。我只知道如果我有在观察期间,有60位受试者4次来到医生那里,我想为他们每个人随机分配一个开始月份。但是,根据min.visits
和max.visits
的条件,我知道从12月到2月只有一个月的时间。
任何想法都很感激。