重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

実数の有限数列が2つある場合
a(i) i = 1,2, ..., n
b(i) i = 1,2, ..., n
相関係数rは
r = (aとbの共分散)/√(aの分散)*(bの分散)
で求められますが、
aやbが2次元以上の有限次元ベクトルの場合は、どのように計算すべきでしょうか?
(例)2枚のデジタルカラー画像(画素値が3次元ベクトル)がどの程度似ているかを相関係数で表す。

質問者からの補足コメント

  • うーん・・・

    早々に解答をお寄せ頂き、有難うございます。
    相関を求める目的を補足させて頂きます。
    例えば、動画カメラの手振れ補正のように複数のフレームの位置合わせをするときに、相関の最も高い位置にしたいと考えました。
    この相関を輝度値を用いて行えば取り敢えずできるわけですが、カラー値を用いればもっと品質の高い位置合わせができるのではないかと考えました。
    その際に、RGBの要素別に相関をとって位置をもとめると違った位置が求まる可能性があります。
    別々の求まった位置を平均したのでは、輝度でやったのと大して変わらないのではないかと思い、より良い位置合わせ方法を検討しています。

      補足日時:2020/11/19 22:07
  • うれしい

    皆様からのアドバイスを参考にして色々試した結果、要素ごとに相関をとってその和で評価するのが今のところベストの様です。二乗差でやると画面全体の輝度の変化の影響を受けてうまくいかない場合が見受けられました。色々と有難うございました。

      補足日時:2020/11/20 15:07

A 回答 (3件)

企業で統計を推進する立場の者です。



A多次元空間とB多次元空間が同じ次元数を持っていて、それぞれの軸に同じ意味があるなら、#1さんの前半のコメントのように対応毎に見ます。
理由は、同じ次元数で同じ座標軸なのだから、わざわざ主軸を見つけて射影する必要がないからです。
例えば、Aカメラで撮影したある被写体のn=1~100までの画素のデータと、Bカメラで撮影した同じ被写体の画素のデータがあって、それぞれRGBの列があるなら、対応する色どうしの単相関係数を求めて幾何平均を取れば良いでしょう。
そうではなく、AカメラのRとBカメラのGやBとの相関を見ることもあります。もし、そこまでやると重相関係数というものを求めることになります。これは#1さんの後半のコメントに該当します。

A多次元空間とB多次元空間が異なる座標軸を持っている場合、例えば100名の被験者についてA空間はいくつかの処方薬の投与量、B空間は血液検査の各項目のような複数の観測値というときに、A空間すなわち治療行為とB空間すなわち治療効果に相関があるかどうかは「正準相関係数」というものを使用します。
この理由は、A空間においては治療の強さの総合的な向きがあり、B空間においては治癒効果の大きさという総合的な向きがあるわけですが、それらをご質問にあるようなa軸b軸に見立てて相関を取る必要があるからです。
a軸b軸は、各々の空間で個別に見出すのではなく、両者の相関が最大になるような方向とします。

「正準相関分析」などでググれば、詳しい説明が見つかるでしょう。
    • good
    • 0
この回答へのお礼

有難うごさいます。
確かにRGB値の相関をとってその幾何平均を求めるほうが、RGB値から輝度値をもてめて、それの相関をとるより良いような気がします。極端な例として、輝度値が一定で色相のみ変化している場合でも有効ですよね。検討してみます。

お礼日時:2020/11/19 22:19

#2です。



そういう目的であれば、私だったら前の画像との差の2乗和が一番小さくなる位置を探す座標補正をやりますが・・・。

2乗のペナルティを掛けるのは、小さなズレは動きだろうから許容し、大きなズレは補正対象としたいからです。

そのときのデータはRのn個のピクセル値のうしろにGのn個のピクセル値、Bのn個のピクセル値というように、1列に連結して使います。
    • good
    • 0
この回答へのお礼

有難うございます。その方法も実装して、輝度値相関と比較してみたいと思います。

お礼日時:2020/11/20 09:49

ベクトルの要素ごとに相関を見ればよいのではありませんか?



画素値が (R, G, B) で表わされるのなら、R, G, B それぞれについて別個に相関の有無を見るというように。
「R については相関があるが、G, B については相関がない」など。
要素ごとの相関からどのように「全体の相関」を定義するかは、何をどのように評価したいのかに依存して決める必要があると思います。

あるいは、どんな相関を見たいのかによっては、「ベクトルから何らかの評価関数を定義する」ようなことが必要かもしれません。
たとえば「ベクトルの絶対値」とか「要素ごとに重みづけして何らかのスカラーに変換する」とか。

いずれにせよ、「相関」は「2つのパラメータ間の関係」ですから、「ベクトルそのもの」の相関係数は定義できないと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
補足で追記しましたように、ベクトル場としてどの程度似ているかを評価したいのでスカラー値にしてから相関をとったのでは情報が欠落するような気がしていますが、誤解があるでしょうか?

お礼日時:2020/11/19 22:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!