#netlogo #angle #summary
#netlogo #угол #Краткие сведения
Вопрос:
Я работаю над моделью в NetLogo, где я хотел бы сообщить среднее и стандартное отклонение набора направлений рассредоточения черепах (подшипники от 0-360 градусов) в каждый год моделирования. Конечно, в NetLogo нет команды по умолчанию для этой циклической статистики, поэтому мне нужно будет записать вычисления вручную. Мне интересно, разрабатывал ли кто-нибудь подобную пользовательскую функцию в NetLogo раньше?
Я наткнулся на этот набор кода для вычисления среднего:
to-report mean-of-headings [headings]
let x-mean mean map [sin ?] headings
let y-mean mean map [cos ?] headings
if x-mean = 0 and y-mean = 0 [ report random 360 ]
report atan x-mean y-mean
end
Но я не уверен, подойдет ли это для среднего значения, и не видел кода для SD. Моя мысль заключалась в том, чтобы перевести этот код R на язык NetLogo и создать reporter, подобный приведенному выше?
Tester <-c(340, 360, 20) # list of bearings
sine = sum(sin(Tester * pi/180)) # sin of each angle, convert to radian first
cosine = sum(cos(Tester * pi/180)) # cos of each angle, convert to radian first
Tester_mean = (atan2(sine, cosine) * 180/pi) %% 360
mu = (Tester - Tester_mean 180) %% 360 - 180 # Difference of each angle from mean
Tester_sd = sqrt(sum(mu^2)/(length(Tester) - 1)) # Standard Deviation
Tester_mean # mean bearing
Tester_sd # sd bearing