R を使用してデータの PCA 分析を行おうとしています。私のデータは、それぞれ 3 つの生物学的複製 (つまり 6 行) と約 20000 の遺伝子 (つまり変数) を持つ 2 つのサンプル タイプです。まず、ガイドに記載されているコードで PCA モデルを取得してもうまくいきません。prcomp
ggbiplot
>pca=prcomp(data,center=T,scale.=T)
Error in prcomp.default(data, center = T, scale. = T) :
cannot rescale a constant/zero column to unit variance
ただし、scale. = T
パーツを削除すると、問題なく動作し、モデルが得られます。これはなぜですか? また、これが以下のエラーの原因ですか?
> summary(pca)
Importance of components:
PC1 PC2 PC3 PC4 PC5
Standard deviation 4662.8657 3570.7164 2717.8351 1419.3137 819.15844
Proportion of Variance 0.4879 0.2861 0.1658 0.0452 0.01506
Cumulative Proportion 0.4879 0.7740 0.9397 0.9849 1.00000
次に、PCA をプロットします。基本的なコードを使用しただけでも、エラーと空のプロット イメージが表示されます。
> ggbiplot(pca)
Error: invalid 'rot' value
これはどういう意味ですか?どうすれば修正できますか? PCA を作成する際の (非) スケールと関係があるのでしょうか、それとも何か違うのでしょうか? 標準的なサンプル コード (以下) を使用すると、非常に優れた PCA プロットが得られるため、これは私のデータに関係しているに違いないと思います。
> data(wine)
> wine.pca=prcomp(wine,scale.=T)
> print(ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, groups = wine.class,
ellipse = TRUE, circle = TRUE))
[編集 1] データを 2 つの方法でサブセット化しようとしました: 1) すべての列を削除するとすべての行が 0 になり、2) すべての列を削除するとすべての行が 0 になります。最初のサブセット化ではエラーが発生しscale
ますが、エラーは発生しません。 0 の列を削除したもの。どうしてこれなの?これは PCA にどのように影響しますか?
また、元のデータ(スケーリングされていない)と上記のサブセット化されたデータの両方に対して通常のbiplot
コマンドを使用してみましたが、どちらの場合も機能します。だから、それは何かと関係がありggbiplot
ますか?
[編集 2] すべてのゼロを削除しないとエラーが発生し、削除すると機能するデータのサブセットをアップロードしました。私は以前にgistを使用したことがありませんが、これだと思います。それともこれ...