根据经验分配损失概率

时间:2016-03-15 15:01:45

标签: r

对于学校项目,我试图在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

这可能吗?如果是这样,任何人都可以帮助我,并让我知道如何将经验向量分配给损失发生向量?

高度赞赏任何想法或意见!

1 个答案:

答案 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 

另外,我不会将两个分类变量之间的关联度量称为相关性。

相关问题