我在Netlogo中编写Herfindahl索引时遇到了麻烦。我想要Netlogo来计算它。我无法告诉程序以下公式: https://en.wikipedia.org/wiki/Herfindahl_index#Formula
我希望Netlogo报告并绘制它。请帮忙:-s。
答案 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