GWASデータセットのPCAプロジェクションで、子供たちはどのようにして親をまとめることができますか?


9

IID座標各10,000次元空間で20個のランダムな点を取るN(0,1)。それらを10個のペア(「カップル」)に分割し、各ペア(「子」)の平均をデータセットに追加します。次に、結果の30ポイントでPCAを実行し、PC1とPC2をプロットします。

注目すべきことが起こります。それぞれの「家族」は、すべてが互いに近接する3組の点を形成します。もちろん、すべての子供は元の10,000次元の空間ではそれぞれの親に近いので、PCA空間でも親に近いと期待できます。ただし、PCA空間では、親の各ペアは互いに近接しています。ただし、元の空間ではそれらは単なるランダムなポイントです。

PCAプロジェクションでは、子供はどうやって親をまとめるのですか?

ここに画像の説明を入力してください

これは、子供たちが親よりも規範が低いという事実に何らかの影響を受けていることを心配するかもしれません。これは問題ではないようです:x + y / として子供を生成する場合(x+y)/2xy

ここに画像の説明を入力してください

この質問はおもちゃのデータセットを使用していますが、それは、私がゲノム全体の関連研究(GWAS)からの実世界のデータセットで観察した、ディメンションが単一ヌクレオチドの多型(SNP)であることに動機付けられています。このデータセットには、母・父・子のトリオが含まれていました。


コード

%matplotlib notebook

import numpy as np
import matplotlib.pyplot as plt
np.random.seed(1)

def generate_families(n = 10, p = 10000, divide_by = 2):
    X1 = np.random.randn(n,p)    # mothers
    X2 = np.random.randn(n,p)    # fathers
    X3 = (X1+X2)/divide_by       # children
    X = []
    for i in range(X1.shape[0]):
        X.extend((X1[i], X2[i], X3[i]))
    X = np.array(X)

    X = X - np.mean(X, axis=0)
    U,s,V = np.linalg.svd(X, full_matrices=False)
    X = U @ np.diag(s)
    return X

n = 10
plt.figure(figsize=(4,4))
X = generate_families(n, divide_by = 2)
for i in range(n):
    plt.scatter(X[i*3:(i+1)*3,0], X[i*3:(i+1)*3,1])
plt.tight_layout()
plt.savefig('families1.png')

plt.figure(figsize=(4,4))
X = generate_families(n, divide_by = np.sqrt(2))
for i in range(n):
    plt.scatter(X[i*3:(i+1)*3,0], X[i*3:(i+1)*3,1])
plt.tight_layout()
plt.savefig('families2.png')

1
非常に高い次元では、ランダムな無相関データのすべてのデータポイントがスペースのコーナーに配置され、ポイント間の距離はほぼ同じです。ポイントを選択し、それらのポイントの間に中間点(平均)を作成することにより、ポイントの別の1つと結び付けると、クラスターが作成されます。前述の距離よりも明らかに短い距離が導入されました。
ttnphns

1
はい、元の20のポイントがほぼ等距離であると理解しています。そして、子供が2人の親がお互いにいるよりも親に近いことは明らかです。それでも私がまだ得られないのは、PCAプロジェクションでが接近する理由です...
amoeba

任意の2つのランダムな次元に投影しようとしましたか?何を手に入れましたか?
ttnphns 2018

1
私の直感はこれです:ポイントのトリプレットはPC1-2部分空間にほぼ垂直なパイルとして投影されます。これは、分散最大化するためにこの平面の位置を定義する方法です。ご覧のように、モードがほとんど中心から離れたマルチモーダルデータを取得しています(ポイントはすべて10K dimで周辺にあるため)。このような雲は、ダンベルのように、メインのPCを引っ張って重い地域を突き抜ける傾向があります。 、したがってトリプレットに垂直です。
ttnphns

1
この結果、btwは、PCA(PCoA)がポイントを投影し、距離を直接モデル化しないため、MDSとしてあまり良くないという問題を示唆しています。反復MDSは、これらの「クラスター」をはるかに少ない程度で生成すると予想されます。
ttnphns

回答:


8

上記のコメントでの@ttnphnsとのディスカッション中に、同じ現象が10未満の家族で観察できることに気付きました。3つのファミリ(n=3コードスニペット内)は、正三角形の角に大まかに表示されます。実際、2つのファミリ(n=2)のみを考慮すれば十分です。これらのファミリはPC1に沿って分離され、各ファミリはおおよそ1つの点に投影されます。

2家族の場合は直接視覚化することができます。10,000次元空間の元の4点はほぼ直交しており、4次元部分空間に存在します。したがって、4つのシンプレックスを形成します。センタリング後、3Dの形状である通常の四面体を形成します。これは次のようになります。

*ここに画像の説明を入力してください*

子が追加される前に、PC1はどこを指すこともできます。優先する方向はありません。ただし、2つの子が2つの反対側のエッジの中心に配置された後、PC1はそれらを正しく通過します。この6つのポイントの配置は、@ ttnphnsによって「ダンベル」と呼ばれていました。

ダンベルのようなそのような雲は、これらが重い地域を突き抜けるようにメインPCを引っ張る傾向があります

通常の四面体の反対側のエッジは互いに直交し、それらの中心を結ぶ線にも直交していることに注意してください。つまり、各ファミリはPC1の1つの点に投影されます。

2


3
優れた視覚化!Mom1-Child1-Dad1はバイモーダルクラウドの1つのディスクまたはパンケーキで、Mom2-Child2-Dad2はもう1つです。投影の分散を最大化するために、PC1を引き付け、両方の「家族」を母親と子供の父親の線に直角に突き刺します。その結果、各ファミリは1つの点(この場合は子)に投影され、2つのファミリは2つの非常にタイトな内部になり、投影の他のクラスタから離れています。
ttnphns

1
写真を描くのにどのプログラムを使いましたか?
ttnphns

4
ホワイトボード、ホワイトボードマーカー、スマートフォンカメラ:-)
アメーバ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.