Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

8 votos

Cómo probar si la varianza explicada por el primer factor de la PCA se diferencia a través de medidas repetidas condiciones?

Contexto:

Tengo un estudio en seis variables numéricas se miden en cada una de las dos medidas repetidas de las condiciones experimentales (n = 200). Permite llamar a las condiciones de A B y las variablesA1,A2,...,A6B1,B2,...,B6. Teóricamente, espero que en la condición de B más de la varianza en las variables deben ser explicado por el primer factor de un análisis de componentes principales (PCA).

Valores típicos serían:

  • Primer factor de la PCA en A1,...,A6 representa el 30% de la varianza
  • Primer factor de la PCA en B1,...,B6 representa el 40% de la varianza.

Preguntas:

  • ¿Cómo puedo comprobar si esta diferencia es estadísticamente significativa?
  • ¿Cómo puede ser implementado en R?

1voto

Uri Puntos 111

Sólo uno (tal vez tonta idea. Guardar 1 de puntuaciones de los componentes principales de la variable de condición (PC1A) y 1 puntuaciones de los componentes principales de variables para la condición B (PC1B). Las calificaciones deben ser "bruto", es decir, su variación o suma de cuadrados iguales a las de sus autovalores. A continuación, utilice Pitman de la prueba para comparar las varianzas.

1voto

John Mac Puntos 1095

¿Puedo obtener la respuesta correcta? - Quieres probar si hay diferencia estadísticamente significativa entre las dos condiciones?

Perhabs vegana::adonis() es algo para usted? No sé si eso es lo que tu buscas.

Se trabaja en la distancia-de la matriz y compara las distancias dentro de una condición son más grandes que entre las condiciones. Por ejemplo, en un NMDS, usted puede ver una clara separación de las dos condiciones.

Aquí está el Código de ejemplo:

df <- data.frame(cond = rep(c("A", "B"), each = 100), 
 v1 <- jitter(rep(c(20, 100), each = 100)),
 v2 <- jitter(rep(c(0, 80), each = 100)),
 v3 <- jitter(rep(c(40, 5), each = 100)),
 v4 <- jitter(rep(c(42, 47), each = 100)),
 v5 <- jitter(rep(c(78, 100), each = 100)),
 v6 <- jitter(rep(c(10, 100), each = 100)))

# PCA
require(vegan)
pca <- rda(df[ ,-1], scale = TRUE)
ssc <- scores(pca, display = "sites")
ordiplot(pca, type = "n")
points(ssc[df$cond == "A", ], col = "red", pch = 16)
points(ssc[df$cond == "B", ], col = "blue", pch = 16)

# NMDS
nmds <- metaMDS(df[ ,-1], distance = "euclidian")
nmsc <- scores(nmds, display = "sites")
ordiplot(nmds, type = "n")
points(nmsc[df$cond == "A", ], col = "red", pch = 16)
points(nmsc[df$cond == "B", ], col = "blue", pch = 16)

# use adonis to test if there is a difference between the conditions
adonis(df[ ,-1] ~ df[ ,1], method = "euclidean")
## There is a statistically significant difference between the two conditions

1voto

zowens Puntos 1417

Prueba de permutación

Para probar la hipótesis nula directamente, el uso de una prueba de permutación.

Deje que el primer PC en condición de A explique a<100% de la varianza, y la primera PC en condición de B explique b<100% de la varianza. Su hipótesis es que el b>a, por lo que podemos definir c=ba según la estadística de interés, y la hipótesis es que el c>0. La hipótesis nula para rechazar es que c=0.

Para realizar la prueba de permutación, tome su N=200+200 de las muestras de ambas condiciones, y aleatoriamente divididos en condiciones de AB. Como la división es aleatorio, no debería haber ninguna diferencia en la varianza explicada después de eso. Para cada permutación, se puede calcular el c, repetir este proceso muchas (es decir, 10000) de los tiempos, y de obtener la distribución de c bajo la hipótesis nula de ctrue=0. Comparando su valor empírico de c con esta distribución se producirá un p-valor.

Bootstrapping

Para obtener el intervalo de confianza en c, el uso de bootstrap.

En el arranque de enfoque, usted podría seleccionar aleatoriamente N=200 de muestras con reemplazo de los ejemplos existentes en A y el otroN=200B. Calcular c, y repetirla muchas (de nuevo, dicen, 10000) de veces. Usted va a obtener un bootstrap de distribución de la c de los valores, y su percentil intervalos van a corresponden a los intervalos de confianza del valor empírico c. Así se puede estimar el p-valor por buscar en qué parte de esta distribución se encuentra por encima de 0.

La prueba de permutación es una forma más directa (y, probablemente, menos de confiar en ninguna hipótesis) para probar la hipótesis nula, pero el bootstrap tiene un beneficio añadido de ceder a un intervalo de confianza en c.

0voto

Marc-Andre R. Puntos 789

Esto es sólo un esbozo de idea. La proporción de la varianza se define como

λ1λ1+...+λ6,

donde λi son los autovalores de la matriz de covarianza. Ahora si vamos a utilizar en lugar de los autovalores de la matriz de correlación, a continuación,λ1+...+λ6=6, ya que la suma de los autovalores de una matriz es igual a la traza de la matriz, y para matrices de correlación de la traza es la suma de unidades.

Por lo que si utilizamos las matrices de correlación necesitamos para poner a prueba hipótesis acerca de la diferencia de dos máximos valores propios de una muestra de matrices de correlación. Sin duda es posible encontrar en la literatura de la distribución asintótica de la máxima eigen-valor de la matriz de correlación. Así el problema se reduce entonces a una especie de pares o impares t-test.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X