Мне нужно использовать коэффициент корреляции Пирсона в моей программе Torch/Lua. Это функция:
function math.pearson(a)
-- compute the mean
local x1, y1 = 0, 0
for _, v in pairs(a) do
x1, y1 = x1 + v[1], y1 + v[2]
print('x1 '..x1);
print('y1 '..y1);
end
-- compute the coefficient
x1, y1 = x1 / #a, y1 / #a
local x2, y2, xy = 0, 0, 0
for _, v in pairs(a) do
local tx, ty = v[1] - x1, v[2] - y1
xy, x2, y2 = xy + tx * ty, x2 + tx * tx, y2 + ty * ty
end
return xy / math.sqrt(x2) / math.sqrt(y2)
end
Эта функция требует входную таблицу пар, которую можно использовать в функции pairs(). Я попытался представить ему правильную входную таблицу, но у меня ничего не получилось.
Я пробовал с:
z = {}
a = {27, 29, 45, 98, 1293, 0.1}
b = {0.0001, 0.001, 0.32132, 0.0001, 0.0009}
z = {a,b}
Но, к сожалению, это не работает. Он будет вычислять пары между первыми элементами b, а я хочу, чтобы он вычислил корреляцию между a и b. Как я мог сделать?
Можете ли вы предоставить хороший объект, который может работать в качестве входных данных для функции math.pearson()?