1

seaborn (matplotlib のラッパー) という名前のパッケージで 2 つの変数の共同分布を描画しようとしています。最終的には、次のようなものを取得したい: http://web.stanford.edu/~mwaskom/software/seaborn/examples/hexbin_marginals.html

問題は、さまざまな長さの配列を渡すと、シーボーンが私を罵倒することです。仮定する、

var1 = [1,1,1,1,1,2,2,2,2,3,3,5,7]
var2 = [1,1,1,1,2,2,2,3,3,3,4,4,5,5,6,6,7,9,10,13]

次に、これを書くと:

import seaborn as sns
sns.jointplot(var1, var2, kind='hex')

それは投げます

ValueError: operands could not be broadcast together with shapes (13) (20)

シーボーンをこれと和解させる方法を知っている人はいますか?

4

1 に答える 1

4

TL/DR: 配列の長さが異なる場合、ジョイント プロットは明確に定義された数学演算ではありません

hexbin は散布図と考えることができますが、ドットをプロットする代わりに、ドットが収まる六角形の領域の値をわずかに増やします。明らかに、すべての x が y とペアになっていない限り、散布図を作成することはできません。

数学的な答え:

そのプロットで、上部と右側のヒストグラムを見ると、それは 1 次元度数分布です。メイン ウィンドウで 2D 分布をプロットするポイントは、変数がどのように依存しているかを確認することです。変数が独立している場合、各 (x,y) 座標は単純に x 変数の相対度数に x 変数の相対度数を掛けたものになります。 y 変数 (つまり、f(x,y) = f(x)f(y)x,y indep の pdf)。

したがって、これらの変数が独立していることからどのように逸脱するかを確認したい場合は、それらに関する共同情報が必要です。両方の変数の共同意味観測には共通のインデックスがあり、ここでは (0...i) と仮定されます。ウィキペディアの独立性とCross Validated の独立性タグも参照してください。

于 2014-10-13T12:32:20.387 に答える