【发布时间】:2020-02-20 16:13:32
【问题描述】:
我这里的代码生成点的随机空间分布,返回每个点与受感染个体之间的距离列,并使用函数计算下一个时间步的感染概率。有 60 台主机,其中一台已被感染。我想用原始坐标将 Pi 的值(计算感染概率)绑定到我的数据框。显然,从距离矩阵中删除了一个点,即被感染的个体。这个值我想在主数据框中替换为 NA 作为我的代码的下一步,并确认坐标与函数 Pi 的输出相对应。
因此,我正在尝试将 59 行的列附加到 60 行的主数据框。
# Create a spatial distribution with infected individuals
xcoord <- sample(1:100,60)
ycoord <- sample(1:100,60)
infectionstatus <- rep(0,60)
Df <- data.frame(xcoord, ycoord, infectionstatus)
a <- sample(1:60, 1)
Df$infectionstatus[a] <- 1
# Calculate distance between infected individuals and susceptibles
library(rdist)
distances <- pdist(Df[,1:2], metric = "euclidean")
position_infected_individual <- which(Df[,3]==1)
distance_from_infected <- distances[-(position_infected_individual), position_infected_individual]
#Assign parameter values and calculate probability of infection
beta<-100
alpha<-0.1
Pi<-vector()
for (p in 1:length(distance_from_infected)){
Pi[p] = 1-exp(-beta*exp(-alpha*distance_from_infected[p]))
}
【问题讨论】:
-
您的问题是什么?标题是否与您要解决的问题有关?实际上,说从感染者到自己的“距离”消失了是没有意义的。它是 0。我确信距离函数应该确认这一点。但它们已从风险集中移除。关键是您需要在距离矩阵(实际上是向量)为 1-1 的每个时间点内创建风险个体的子集。我们在时间到事件结果的 Cox 模型中做类似的事情。
-
您好,感谢您的回复。我的问题是如何将 NA 值添加到 Pi 向量中,仅添加到受感染者所在的位置。我明白了,我还没有听说过事件发生时间结果的 Cox 模型,听起来很有趣,你的意思是感染概率与高危个体坐标之间的 1-1 吗?这就是我想要做的,但是,也许我应该更多地考虑距离矢量,谢谢你的纠正我对 R 比较陌生。希望有所帮助!
-
为什么要从远处删除
position_infected_individual? -
我删除了
position_infected_individual,因为a。我不想包括到自身和 b 的距离。该人已经被感染,因此不包括在我的等式中,该等式说明了一个人被感染的可能性。