我想看看在多个滴答之后两个乌龟变量之间是否存在相关性。所以我们有海龟自己[a b],它们在100个蜱之后是否相关?
我可以导出这些并在电子表格中进行计算,但似乎NetLogo应该更容易实现,甚至可以更简单地使用矩阵扩展的回归功能(回归a b并输出beta系数)。
但我无法弄清楚如何创建一个由两列组成的矩阵,所有a和b值来自海龟。
所以:
有没有人有一些现成的代码来计算Pearson系数?
如何创建海龟变量矩阵?
谢谢!
答案 0 :(得分:2)
请参阅stats
NetLogo扩展程序(https://github.com/cstaelin/Stats-Extension)
示例:强>
使用扩展程序:
extensions [ stats ]
海龟设置:
to setup
clear-all
crt 5 [ fd 10 ]
end
计算:
to go
; Create some data as nested list (two variables for each turtle):
let data [(list xcor ycor)] of turtles
; Create a stats table:
let tbl stats:newtable-from-row-list data
; Calculate a correlation matrix with `stats:correlation`:
let cor-list stats:correlation tbl
; In 2x2 case you can use the second element from the first row to get the coefficient:
print item 0 item 1 cor-list
end
使用矩阵扩展:
extensions [ matrix ]
创建一个矩阵:
; data is same nested list as in previous example
let m matrix:from-row-list data
; apply linear regression model
let m-reg matrix:regress m
; there is R^2 in the first element of the second element of `m-reg`
print item 0 item 1 m-reg
请注意,stats:correlation
计算R,matrix:regress
计算R ^ 2.