Netlogo中的Herfindahl索引代码

时间:2016-03-14 07:58:43

标签: netlogo

我在Netlogo中编写Herfindahl索引时遇到了麻烦。我想要Netlogo来计算它。我无法告诉程序以下公式: https://en.wikipedia.org/wiki/Herfindahl_index#Formula

我希望Netlogo报告并绘制它。请帮忙:-s。

2 个答案:

答案 0 :(得分:2)

这是一个完整的工作示例。出于您的目的,您只需要calc-HI程序(并记得在go程序中调用它),但我已经为您提供了一个单独的模型,以便您自己进行测试。测试它的方法是运行setup,然后在命令中心运行go然后show HI。通过检查单个海龟,您可以看到它们的变量值并使用计算器来检查HI值的匹配。

globals [ HI ]

turtles-own [ val ]

to setup
  clear-all
  create-turtles 3
  [ setxy random-xcor random-ycor
    set val random 5
  ]
  reset-ticks
end

to go
  set HI calc-HI
  tick
end

to-report calc-HI
  let num count turtles
  let total sum [ val ] of turtles
  let herf sum [ ( val / total ) ^ 2 ] of turtles
  report herf
end

对于绘图,您需要做的只是绘图小部件中的plot HI

答案 1 :(得分:2)

假设您有一个使用百分比的市场份额列表。将每个市场份额映射到广场并总结:

;;e.g. let market-shares (list .5 .5)
to-report calculate-herfindahl [market-shares]
    report (sum (map [? * ?] market-shares))
end

如果您想根据实际股票计算股票。将每个份额映射到一个百分比,然后应用上面的公式:

;;e.g. let market-shares (list 30 40)
to-report calculate-herfindahl [market-shares]
    let market-size sum market-shares
    report (sum (map [(? / market-size) ^ 2] market-shares))
end