#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 * плотность) должен уменьшаться по мере увеличения плотности. Я не думаю, что моя проблема меняется с плотностью.