Нормализованные вероятности в четырех циклах в R

#r #loops #simulation #probability

#r #циклы #Симуляция #вероятность

Вопрос:

Я пытаюсь воспроизвести свои данные, сгенерировав некоторые случайные данные и пропустив их через симуляцию в R. В этом моделировании я создал вес для глубины, p1, и вес для плотности, p2. Однако я не думаю, что я правильно реализовал влияние плотности.

Ниже приведена моя симуляция

 nppl <- 100    #number of simulated people we want to run in the for loop
Sites <- LETTERS[1:4]
Depths <- c(.05, .1, .2, .3)
Density <- rep(0,4)
Places <- data.frame(Sites, Depths)
colnames(Places) <- c("Sites", "Depth")
Places <- data.frame(Places, Density=rep(0, 4))
head(Places)
fill <- rep(0, 100)
ppl <- data.frame(ID=1:nppl, Choice=fill, Depth=fill, Density=fill)


p1 <- 1    
p2 <-0.3
#set.seed(42) 
for (i in 1:nppl) {
prob <- p1*Places$Depth * exp(-p2 * Places$Density)  
prob <- prob/sum(prob)   
choice <- sample(as.character(Places$Site), 1, prob=prob)  
ppl[i, ] <- c(i, choice, Places$Depth[Places$Site==choice], Places$Density[Places$Site==choice])   
Places$Density[Places$Site==choice] <-  Places$Density[Places$Site==choice]   1    
}

ppl
 

Используя формулу

 prob=p1*depth*exp(-p2*density) 
 

нормализованные вероятности для людей 100 должны были составлять 0,40 для A, 0,59 для B и почти ноль для C и D.

При таком сильном эффекте плотности участки C и D должны были стать очень нежелательными по мере увеличения плотности, но этого, похоже, не произошло. Что я делаю неправильно? Что-то не так с моими значениями p1 и p2? Не должно быть проблем с использованием p1 = 1, но я не уверен.

Комментарии:

1. Для начала p2 -0.3 в вашем коде присваивается значение a, а затем отрицательное значение в вашей exp() команде, что делает плотность очень желательной…

2. @dyrland Opps, в приведенном выше коде это должно быть 0,3. Есть идеи, как решить проблему? Спасибо!

3. Почему вы говорите, что нормализованные значения, учитывая ваши ограничения, должны быть .4, .59, ~ 0, ~ 0? Это та часть, которую я не понимаю. По мере того, как я увеличиваю Density значение больше Depth , и плотность имеет тенденцию к выравниванию (вы, скорее всего, выберете менее плотное место, которое делает это место более плотным).

4. когда я использую уравнение «p1 * Размещает $ Depth * exp (-p2 * Размещает $ Density)» и значения p1 и p2 и вычисляю вероятность для каждого сайта, который увидит / встретит человек 100, сайт A и B должны иметь высокие вероятности (около 0,40 для A, 0,59 дляB), а сайты C и D должны быть около 0. Термин exp (-p2 * плотность) должен уменьшаться по мере увеличения плотности. Я не думаю, что моя проблема меняется с плотностью.