1

Torch / Lua プログラムで Pearson 相関係数を使用する必要があります。これは機能です:

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() 関数への入力として機能する良いオブジェクトを提供できますか?

4

1 に答える 1

3

この実装を使用している場合は、別のパラメーター構造が必要だと思います。次のように、2 つの値を持つテーブルのテーブルを渡す必要があります。

local z = {
  {27, 0.0001}, {29, 0.001}, {45, 0.32132}, {98, 0.0001}, {1293, 0.0009}
}
print(math.pearson(z))

これは私のために印刷-0.25304101592759されます。

于 2015-04-15T23:37:50.427 に答える