对于一个学校项目,我正在尝试在R中创建一个数据集,到目前为止,它包含四个变量:我有一个包含变量的数据帧:损失经验 (0,1) ;损失大小(介于 0 和 1 之间);地区;和司机的经验
我现在想分配驾驶员的经验,与损失经验呈负相关;(例如:驾驶员经验越丰富,发生事故的可能性就越小。但是,我仍然希望发生一些事故,以防驾驶员经验丰富。有谁知道我该怎么做?因为到目前为止,我只是随机分配体验。
Experience_Class <- c(0,100,250,500,1000) #this variable is used to assign different classes of experience levels
Experience <- sample(Experience_Class,N,replace=TRUE) # this is how I assign the experience to the drivers, however I have the problem that this is completely random
理想情况下,我的数据帧应如下所示 - 事故发生与驾驶员体验之间存在负相关关系。
Accident_Occured Accident_Size Driver_Experience
1 .24 0
1 0.99 250
0 0 0
0 0 1000
0 0 500
0 0 0
0 0 250
0 0 1000
0 0 1000
1 0.99 100
这可能吗?如果是这样,谁能帮助我并告诉我如何将经验向量分配给损失发生向量?
任何想法或意见都非常感谢!
这很简单。您需要偶然基于差分经验来模拟经验。这是一个条件概率问题。P(exp|accident = 1) = a, p(exp|accident = 0) = b。
下面是一个示例。显然,您可以根据运行模拟的确切方式对其进行修改。
set.seed(2314L)
dat <- data.frame(accident= sample(c(0,1), size= 20, replace=T, prob= c(.7,.3)),
accident_size= (ifelse(runif(20) < .8, 0, runif(20, .2, 1))))
Experience_Class <- c(0,100,250,500,1000)
dat$experience <- ifelse(dat$accident == 1,
sample(Experience_Class, size= sum(dat$accident), replace= T, prob= c(.5,.2,.1,.1,.1)),
sample(Experience_Class, size= 20-sum(dat$accident), replace= T, prob= c(.05,.05,.2,.3,.4)))
# see results.
R> tapply(dat$experience, dat$accident, mean)
0 1
500.00000 33.33333
R> tapply(dat$experience, dat$accident, sd)
0 1
233.85359 57.73503
此外,我不会将两个分类变量之间的关联度量称为相关性。