Próbuję wykonać analizę PCA moich danych za pomocą R i znalazłem this nice guide, używając prcomp
i ggbiplot
. Moje dane to dwa typy próbek z trzema replikami biologicznymi (6 rzędów) i około 20000 genami (tj. Zmiennymi). Po pierwsze, coraz model PCA z kodem opisanym w przewodniku nie działa:prcomp i ggbiplot: niepoprawna wartość "zgnilizny"
>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
Jednak jeśli usunąć scale. = T
część, to działa dobrze i mam model. Dlaczego tak jest i czy jest to przyczyną błędu poniżej?
> 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
Po drugie, wykreślenie PCA. Nawet po prostu używając podstawowego kodu, pojawia się błąd i pusty obraz wydruku:
Co to oznacza i jak mogę to naprawić? Czy ma to coś wspólnego z (nie) skalą w tworzeniu PCA, czy jest to coś innego? To chyba coś z moimi danymi, ponieważ jeśli użyję standardowego kodu przykładowego (poniżej), otrzymam naprawdę fajny wykres 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))
[EDIT 1] Próbowałem podzbioru moje dane na dwa sposoby: 1) usunąć wszystkie kolumny zostały wszystkie wiersze są 0 i 2) usunąć wszystkie kolumny zostały wszystkie wiersze są 0. Pierwszy podzbiorów nadal daje mi błąd scale
, ale nie te, które usunęły kolumny z dowolnymi zerami. Dlaczego to? Jak to wpływa na moją PCA?
Próbowałem także użyć zwykłej komendy biplot
zarówno dla oryginalnych danych (nieskalowanych), jak i dla podsegmentów danych powyżej, i to działa w obu przypadkach. A więc ma to coś wspólnego z ggbiplot
?
[EDIT 2] Załadowałem podzbiór moich danych, który daje mi błąd, gdy nie usuwam wszystkich zer i działa, gdy robię. Nie używałem wcześniej gist, ale myślę, że to jest to. Lub this ...
Czy istnieje jakiś sposób, aby dostarczyć dane, takie jak 'dput' swojego zestawu danych w [gist] (https://gist.github.com/)? Lub jeśli jest duży, podzbiór, który nadal powoduje błąd? Trudno jest zdiagnozować problem, którego nie możemy odtworzyć. – cdeterman
Dodałem trochę danych, każda pomoc jest doceniana! – Sajber
Dane podane w istotce nie odtwarzają błędu. Pobrałem plik i 'prcomp' i' ggbiplot' działały bezbłędnie. – cdeterman