多项逻辑/建模选择[Netlogo]

多项逻辑/建模选择[Netlogo],netlogo,Netlogo,我使用多项式logit模型作为概率函数来为一组特定的代理建立选择模型,当我计算了概率P1、P2和P3以及如何使用它们来实际建模选择时,我的问题就出现了。我的想法是使用modellibrary中的lotterywinning示例,但问题是,在这种情况下,概率不是设置的,而是每个滴答都会发生变化,即使P1发生概率最低,但在下一次迭代中也会有最高的概率。 谢谢你的帮助 对于每种情况,多项式Logit的等式为p{ik}={exp(utilityik)\sum exp(utilityjk)} to fli

我使用多项式logit模型作为概率函数来为一组特定的代理建立选择模型,当我计算了概率P1、P2和P3以及如何使用它们来实际建模选择时,我的问题就出现了。我的想法是使用modellibrary中的lotterywinning示例,但问题是,在这种情况下,概率不是设置的,而是每个滴答都会发生变化,即使P1发生概率最低,但在下一次迭代中也会有最高的概率。 谢谢你的帮助

对于每种情况,多项式Logit的等式为p{ik}={exp(utilityik)\sum exp(utilityjk)}

to flightchoice-business

let flight-time1 mean [time1] of airline1
let airfare-airline1 mean [airfare] of airline1

set beta1 .8
set beta2 .2

set utility1 beta1 * (airfare-airline1) + beta2 * abs((time - flight-time1) * 10)

let flight-time2 mean [time1] of airline2
let airfare-airline2 mean [airfare] of airline2

set beta1 .8
set beta2 .2

set utility2 beta1 * (airfare-airline2) + beta2 * abs((time - flight-time2) * 10)

let flight-time3 mean [time1] of airline3
let airfare-airline3 mean [airfare] of airline3

set beta1 .8
set beta2 .2

set utility3 beta1 * (airfare-airline3) + beta2 * abs((time - flight-time3) * 10)

let cumulsum exp(utility1) + exp(utility2) + exp(utility3)

let P1 exp(utility1) / cumulsum

let P2 exp(utility2) / cumulsum

let P3 exp(utility3) / cumulsum

let buy random-float P1 + P2 + P3




end

你在正确的轨道上。您的代码应按如下方式继续:

...
let buy random-float P1 + P2 + P3
ifelse buy < P1 [
  do-stuff-with-P1
] [
  ifelse buy < P1 + P2 [
    do-stuff-with-P2
  ] [
    do-stuff-with-P3
  ]
]
let buy weighted-random (list P1 P2 P3)
if buy = 0 [ do-stuff-with-P1 ]
if buy = 1 [ do-stuff-with-P2 ]
if buy = 2 [ do-stuff-with-P3 ]

非常感谢,我会努力的,如果有什么问题我会回来的!嘿,对不起,我刚刚遇到了另一个问题,我在从我构建的模型导出数据时遇到了问题。我的意图是导出每个变量的值,例如每个迭代的机票价格(因为这些值将在每个go过程中更新)。我曾尝试使用[export world],但我的问题是,它不会为每次迭代存储每个变量的值,而是只存储一个值并覆盖.csv工作表。是否可以创建一个.csv表,其中每个迭代的变量值将以列的形式叠加?谢谢
let buy weighted-random (list P1 P2 P3)
if buy = 0 [ do-stuff-with-P1 ]
if buy = 1 [ do-stuff-with-P2 ]
if buy = 2 [ do-stuff-with-P3 ]