对于学校项目,我试图在R中创建一个包含四个变量的数据集,到目前为止我有: 我有一个包含变量的data.frame:Loss Experience(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
理想情况下,我的Dataframe应该是这样的 - 事故发生与驾驶员体验之间存在负相关。
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
这可能吗?如果是这样,任何人都可以帮助我,并让我知道如何将经验向量分配给损失发生向量?
高度赞赏任何想法或意见!
答案 0 :(得分:0)
这非常简单。您需要根据不同的经验模拟经验。这是一个条件概率问题。 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
另外,我不会将两个分类变量之间的关联度量称为相关性。