Usted no debería estar usando una 'forma' o 'bondad de ajuste de chi-cuadrado de la prueba de aquí a seis veces más. Usted debe utilizar una prueba de chi-cuadrado de independencia en un camino de tablas de contingencia. Además, como @DJohnson las notas de abajo, usted necesita usar el real recuentos observados, no el promedio de los recuentos (no estoy seguro de entender cómo usted dice que tienes $6.67$ moscas en la parte inferior de la capa, por ejemplo). Es decir, usted necesita para configurar una tabla de contingencia como esta:
Layer
Color bottom middle top sum
red 7 3 10 20
green # # # 20
blue # # # 20
orange # # # 20
purple # # # 20
yellow # # # 20
A continuación, ejecute la prueba de chi-cuadrado. Los grados de libertad para la prueba de chi-cuadrado es $(r-1)(c-1)$ (es decir, el número de filas menos 1 veces el número de columnas menos 1). En tu caso sería: $5\times 2 = 10$.
Actualización: Si tienes tres versiones repetidas de este experimento, usted tiene (en algún sentido) tres dos-forma de tablas de contingencia, o (más bien) de las tres tablas de contingencia. Quieres probar si hay una diferencia entre las filas con las iteraciones tomado en cuenta. La forma general para analizar mult-forma de tablas de contingencia es utilizar el registro de un modelo lineal (que es de hecho una disfrazados de Poisson GLiM). Puedo describir esto en más detalle aquí: $\chi^2$ de los datos multidimensionales. A continuación, puedo crear dos conjuntos de datos falsos el uso de R
, uno de los que yo llamo ".n
" ('null', debido a que no existe una relación entre el color y la capa), y el otro que yo llamo ".a
" (por "alternativa", porque la relación que usted está interesado en la existe).
dft = expand.grid(layer=c("bottom","middle","top"),
color=c("blue", "green", "orange", "red", "white", "yellow"),
Repeat=1:3)
dft = dft[,3:1]
dft.n = data.frame(dft, count=c(rep(c( 3,6,11), times=6),
rep(c( 6,7, 7), times=6),
rep(c(11,6, 3), times=6)))
dft.a = data.frame(dft,
count=c(c(3,6,11), c(11,6, 3), c(11,6, 3), c(3,6,11), c(3,6,11), c(11,6, 3),
c(3,6,11), c(11,6, 3), c(11,6, 3), c(3,6,11), c(3,6,11), c(11,6, 3),
c(3,6,11), c(11,6, 3), c(11,6, 3), c(3,6,11), c(3,6,11), c(11,6, 3) ))
tab.n = xtabs(count~color+layer+Repeat, dft.n)
# , , Repeat = 1
# layer
# color bottom middle top
# blue 3 6 11
# green 3 6 11
# orange 3 6 11
# red 3 6 11
# white 3 6 11
# yellow 3 6 11
#
# , , Repeat = 2
# layer
# color bottom middle top
# blue 6 7 7
# green 6 7 7
# orange 6 7 7
# red 6 7 7
# white 6 7 7
# yellow 6 7 7
#
# , , Repeat = 3
# layer
# color bottom middle top
# blue 11 6 3
# green 11 6 3
# orange 11 6 3
# red 11 6 3
# white 11 6 3
# yellow 11 6 3
tab.a = xtabs(count~color+layer+Repeat, dft.a)
# , , Repeat = 1
# layer
# color bottom middle top
# blue 3 6 11
# green 11 6 3
# orange 11 6 3
# red 3 6 11
# white 3 6 11
# yellow 11 6 3
#
# , , Repeat = 2
# layer
# color bottom middle top
# blue 3 6 11
# green 11 6 3
# orange 11 6 3
# red 3 6 11
# white 3 6 11
# yellow 11 6 3
#
# , , Repeat = 3
# layer
# color bottom middle top
# blue 3 6 11
# green 11 6 3
# orange 11 6 3
# red 3 6 11
# white 3 6 11
# yellow 11 6 3
Tengo un rapidito log-lineal de análisis en ambos. Los modelos que se muestran de 0
, que es el 'saturada' modelo, a través de la 2
, que se ha reducido términos. Tenga en cuenta que en R es típico de la lista de modelos en orden de menor a mayor, pero el resultado de la anova()
convocatoria se refiere a la modelo anidado como "Model 1
", lo que hace que los nombres no se corresponden bien; trate de no ser arrojado por este. Para el null conjunto de datos, Model 2
difiere Model 1
(es decir, m.1.n
difiere m.2.n
), lo que significa que el layers
no son independientes de la Repeats
. Por otro lado, Model 3
no difiere Model 2
(es decir, m.0.n
difiere m.1.n
), lo que significa que el layer*Repeat
patrón no se diferencian por el color. Además, Model 3
no difiere de la Saturated
modelo (porque es el modelo saturado).
library(MASS)
m.0.n = loglm(~color*layer*Repeat, tab.n)
m.1.n = loglm(~color+layer*Repeat, tab.n)
m.2.n = loglm(~color+layer+Repeat, tab.n)
anova(m.2.n, m.1.n, m.0.n)
# LR tests for hierarchical log-linear models
#
# Model 1:
# ~color + layer + Repeat
# Model 2:
# ~color + layer * Repeat
# Model 3:
# ~color * layer * Repeat
#
# Deviance df Delta(Dev) Delta(df) P(> Delta(Dev)
# Model 1 59.55075 44
# Model 2 0.00000 40 59.55075 4 0
# Model 3 0.00000 0 0.00000 40 1
# Saturated 0.00000 0 0.00000 0 1
m.0.a = loglm(~color*layer*Repeat, tab.a)
m.1.a = loglm(~color+layer*Repeat, tab.a)
m.2.a = loglm(~color+layer+Repeat, tab.a)
anova(m.2.a, m.1.a, m.0.a)
# LR tests for hierarchical log-linear models
#
# Model 1:
# ~color + layer + Repeat
# Model 2:
# ~color + layer * Repeat
# Model 3:
# ~color * layer * Repeat
#
# Deviance df Delta(Dev) Delta(df) P(> Delta(Dev)
# Model 1 87.47794 44
# Model 2 87.47794 40 0.00000 4 1e+00
# Model 3 0.00000 0 87.47794 40 2e-05
# Saturated 0.00000 0 0.00000 0 1e+00
Para la alternativa de conjunto de datos, Model 2
no difiere Model 1
(es decir, m.1.a
difiere m.2.a
), lo que significa que el layers
son independientes de la Repeats
. Por otro lado, Model 3
no difieren de Model 2
(es decir, m.0.a
difiere m.1.a
), lo que significa que el layer*Repeat
patrón no se diferencian por el color. (Y de nuevo, Model 3
es el Saturated
modelo).