O que indica uma forma em forma de cunha do gráfico PCA?

9

No seu papel em autoencoders para classificação texto Hinton e Salakhutdinov demonstrado o lote produzido por 2-dimensional LSA (que está intimamente relacionado com a PCA): LSA 2 dim.

Aplicando o PCA a dados de dimensão ligeiramente alta absolutamente diferentes, obtive um gráfico de aparência semelhante: PCA 2 dim(exceto neste caso, eu realmente queria saber se existe alguma estrutura interna).

Se alimentarmos dados aleatórios no PCA, obteremos um blob em forma de disco, portanto essa forma em forma de cunha não é aleatória. Isso significa alguma coisa por si só?

macleginn
fonte
6
Presumo que todas as variáveis ​​sejam positivas (ou não negativas) e contínuas? Nesse caso, as bordas da cunha são apenas os pontos além dos quais os dados se tornariam 0 / negativos. Além disso, você pode obter o mesmo padrão que mostra com variáveis ​​positivas à direita; as observações são agrupadas na extremidade inferior. Se você tivesse variáveis ​​aleatórias uniformes positivas, veria um quadrado (girado). Portanto, padrões como o que você mostra são apenas restrições nos dados. Outros padrões podem aparecer, como uma ferradura, mas isso não se deve a restrições nos intervalos das variáveis.
Gavin Simpson
11
@GavinSimpson Isso é consideravelmente mais do que um comentário. Por que não expandi-lo em uma resposta?
Mike Hunter
Perguntei aos meus filhos (de 3 e 4 anos) o que essas fotos os lembram e eles disseram que é um peixe. Então, talvez "forma de peixe"?
Ameba
@GavinSimpson, thanks! Em ambos os casos, as variáveis ​​são de fato não-negativas, bot também em ambos os casos elas são valorizadas em número inteiro. Isso muda alguma coisa?
macleginn

Respostas:

6

Supondo que as variáveis ​​sejam positivas ou não negativas, as bordas da borda são apenas pontos além dos quais os dados se tornariam 0 ou negativos, respectivamente. Como esses dados da vida real tendem a ser distorcidos corretamente, vemos maior densidade de pontos na extremidade inferior de sua distribuição e, portanto, maior densidade no "ponto" da cunha.

De um modo mais geral, o PCA é simplesmente uma rotação dos dados e as restrições nesses dados geralmente serão visíveis nos componentes principais da mesma maneira mostrada na pergunta.

Aqui está um exemplo usando várias variáveis ​​log-normalmente distribuídas:

library("vegan")
set.seed(1)
df <- data.frame(matrix(rlnorm(5*10000), ncol = 5))
plot(rda(df), display = "sites")

insira a descrição da imagem aqui

Dependendo da rotação implícita nos dois primeiros PCs, você poderá ver a cunha ou uma versão um pouco diferente, mostrada aqui em 3d usando ( ordirgl()no lugar de plot())

insira a descrição da imagem aqui

Aqui, em 3d, vemos vários picos saindo da massa central.

XEu(N)(μ=0 0,σ=1 1)

set.seed(1)
df2 <- data.frame(matrix(rnorm(5*10000), ncol = 5))
plot(rda(df2), display = "sites")

insira a descrição da imagem aqui

insira a descrição da imagem aqui

E para variáveis ​​aleatórias positivas uniformes, vemos um cubo

set.seed(1)
df3 <- data.frame(matrix(runif(3*10000), ncol = 3))
plot(rda(df3), display = "sites")

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Observe que aqui, para ilustração, mostro o uniforme usando apenas 3 variáveis ​​aleatórias, portanto, os pontos descrevem um cubo em 3d. Com dimensões mais altas / mais variáveis, não podemos representar perfeitamente o hipercubo 5d em 3d e, portanto, a forma distinta de "cubo" fica distorcida. Problemas semelhantes afetam os outros exemplos mostrados, mas ainda é fácil ver as restrições nesses exemplos.

Para seus dados, uma transformação de log das variáveis ​​anteriores ao PCA puxaria as caudas e esticaria os dados agrupados, assim como você pode usar essa transformação em uma regressão linear.

Outras formas podem surgir em gráficos de PCA; uma dessas formas é um artefato da representação métrica preservada no PCA e é conhecida como ferradura . Para dados com um gradiente longo ou dominante (as amostras organizadas em uma única dimensão com variáveis ​​aumentando de 0 a um máximo e depois diminuindo novamente a 0 ao longo de partes dos dados são conhecidas por gerar esses artefatos.

ll <- data.frame(Species1 = c(1,2,4,7,8,7,4,2,1,rep(0,10)),
                 Species2 = c(rep(0, 5),1,2,4,7,8,7,4,2,1, rep(0, 5)),
                 Species3 = c(rep(0, 10),1,2,4,7,8,7,4,2,1))
rownames(ll) <- paste0("site", seq_len(NROW(ll)))
matplot(ll, type = "o", col = 1:3, pch = 21:23, bg = 1:3,
        ylab = "Abundance", xlab = "Sites")

insira a descrição da imagem aqui

que produz uma ferradura extrema, onde pontos nas extremidades dos eixos se dobram de volta para o meio.

insira a descrição da imagem aqui

Gavin Simpson
fonte
+1. Pode fazer sentido vincular sua própria resposta aqui. Qual é o “efeito ferradura” e / ou o “efeito arco” na análise de PCA / correspondência? na última parte desta resposta.
Ameba