netlogo中的灵敏度分析(多次模拟的平均值)
我有几个指标,比如变量的均值和标准差 500次滴答声后,模型停止 我想模拟这个模型,例如,100次,并绘制指数的平均值和CInetlogo中的灵敏度分析(多次模拟的平均值),netlogo,Netlogo,我有几个指标,比如变量的均值和标准差 500次滴答声后,模型停止 我想模拟这个模型,例如,100次,并绘制指数的平均值和CI 在netlogo中,有没有办法代替python或R来执行此操作?是的,您可以使用BehaviorSpace运行模型100次,将结果保存到文件系统文件中,然后让另一个netlogo程序(或过程)读入数据并进行打印。下面是一个示例编写部分,它计算一系列数字的平均值和标准偏差,并在十个滴答声停止后计算 globals [ delist demean destd fname ]
在netlogo中,有没有办法代替python或R来执行此操作?是的,您可以使用BehaviorSpace运行模型100次,将结果保存到文件系统文件中,然后让另一个netlogo程序(或过程)读入数据并进行打印。下面是一个示例编写部分,它计算一系列数字的平均值和标准偏差,并在十个滴答声停止后计算
globals [ delist demean destd fname ]
to setup
clear-all
set fname "myfile.txt"
set delist []
reset-ticks
end
to go
if ( ticks >= 10 ) [
;; show delist
set demean mean delist;
set destd standard-deviation delist;
export-data
;;print (word "mean = " demean " stdev= " destd )
stop
]
set delist lput random 100 delist
tick
end
to export-data
if not (file-exists? fname ) [
file-open fname
file-print ( word "mean stdev" );
file-flush
file-close
]
file-open fname
file-print ( word demean " " destd )
file-flush
file-close
end
to clear-file
if (file-exists? fname ) [
file-delete fname
]
end
下面是在中读取上述myfile.txt并打印的示例代码。
假设一个plot小部件报告demean和destd
globals [ delist demean destd fname ]
to setup
clear-all
set fname "myfile.txt"
print " This file begins as follows:"
set delist []
ifelse (file-exists? fname ) [
file-open fname
if not file-at-end?
[ let str file-read-line
print str
]
]
[ print " expected file doesn't exits " ]
reset-ticks
end
to go
if file-at-end? [ print "Data has been all read." file-close stop]
set demean file-read
set destd file-read
print (word "mean = " demean " , std-dev = " destd )
tick
end
谢谢报告最后的数字对我帮助很大。但我想画的是这样的情节。(Song,H.,和Boomgaarden,H.G.(2017)。动态螺旋测试:一个基于代理的模型,加强选择性暴露、人际网络和态度极化之间的螺旋。通讯杂志,67(2),256-281。)而不是使用NetLogo本身绘制行为空间实验结果的曲线图,我建议使用另一种工具,任何可以读取CSV文件的绘图工具,例如Excel。实际上,他们有一个更复杂的问题——正如他们链接到的图所显示的那样——他们想得到每个刻度的变量输出,然后在行为空间计算出每个刻度的平均值和置信区间,并用奇特的图绘制出来。显然,如果经常做这类事情,学习R的聚合和奇特的出版质量的情节是值得的。不管怎样,我在netlogo google组中用代码回答,或者即将回答,所以我称之为关闭。