5 votos

R modelo.tablas (a) incorrecta significa – posible error?

Yo estaba haciendo un ANOVA con el programa estadístico SPSS y, a continuación, en R y para mi gran sorpresa, los resultados de la última versión de R eran incorrectos.

Cuando hago uso de la función model.tables(x,"means") para obtener la estadística descriptiva, la variable independiente se entiende por la segunda dependientes son ligeramente incorrecta (por ejemplo, 129 en vez de 130.27).

Mi pregunta es, ¿qué podría causar el problema? Yo soy un novato, a R, pero con los mismos datos, SPSS obtiene el resultado correcto, así que algo es obviamente erróneo.

head(data):

  skupina pohlavie zodpovedny
1       1        1        152
2       1        1        118
3       2        2         88
4       2        1        140

Código:

x <- aov(zodpovedny ~ pohlavie*skupina,data=data)
model.tables(x,"means")

Problema ilustrado:

This is unfortunate.

7voto

Eero Puntos 1612

Como usted señala, la célula individual significa el partido, pero donde se ve que el problema está en las medias marginales. Hay varias formas de calcular las medias marginales. Supongamos que los datos que tiene información sobre el sexo (masculino/femenino) y la edad (viejo/joven), y queremos calcular el margen para el sexo. Un enfoque es ignorar la variable edad y acaba de tomar la media de todos los varones y la media de todas las hembras. Otro enfoque es el de encontrar la media de los varones por el promedio de la media de edad los varones y la media de los varones jóvenes (agregar los 2 medios y dividir por 2). En un diseño equilibrado los 2 métodos va a dar la misma respuesta (puede ser demostrado con la simple álgebra), pero en el desequilibrada caso se le suele dar respuestas diferentes, porque el peso que cada punto de datos contribuye a la media general es diferente. Con el modelo basado significa que usted puede obtener diferentes ponderaciones a partir de los 2 que he mencionado (los he usado para ejemplos como maneras sencillas de entender). Espero que en el caso de que R y SPSS es probable el uso de diferentes enfoques.

6voto

Raptrex Puntos 115

@mnel es correcta, ya que debido a la falta de objetividad del diseño, el orden de los términos de la materia en la salida de model.tables.

AÑADIDO: En el archivo de ayuda para aov, leemos que "está diseñado para equilibrado de los diseños, y los resultados pueden ser difíciles de interpretar sin equilibrio". Así que si usted desea simple estadística descriptiva, mejor pedir por ellos directamente.

Ahora, sería mejor si usted había publicado un conjunto de datos completo de ti mismo, incluso si usted tiene que hacer de uno un suplente, que mostró el mismo problema. Pero tiene suerte y un lector curioso, quería saber qué estaba pasando, así que lo hice por ti. He aquí una muestra de datos:

library(reshape2)
set.seed(5)
d <- expand.grid(a=factor(LETTERS[1:2]), b=factor(letters[1:2]))
d <- d[rep(1:4, c(15,9,11,10)),]
d$y <- round(rnorm(nrow(d), mean=10, sd=2),1)

Y vemos que el orden de los términos en el modelo de asuntos de salida (trunca):

> model.tables(aov(y ~ a*b, data=d), "means")
 a      A      B
    10.43  9.921
 b      a      b
    9.843  10.64

> model.tables(aov(y ~ b*a, data=d), "means")
 b       a      b
     9.867  10.61
 a       A      B
     10.46  9.877

El primer término en el modelo de acuerdo con el real media y el otro es diferente.

> tapply(d$y, d$a, mean)
        A         B 
10.426923  9.921053 
> tapply(d$y, d$b, mean)
        a         b 
 9.866667 10.609524 

Tenga en cuenta que yo digo diferente, no es malo. Es decirle a usted algo en lo correcto sobre el modelo. No estoy seguro de lo que, en realidad, pero estoy bastante curiosa que me puede mirar en el código de model.tables a ver qué. (O tal vez no, se está haciendo tarde.)

1voto

Lil' Smokey Puntos 237

Cuidado: el model.tables() función sólo funciona con equilibrado de los diseños. Si usted quiere tener las medias marginales para desequilibrio de diseño debe utilizar el popMeans() función. Imagine que usted tiene el siguiente modelo:

Check.Model <- aov(dependent ~ factor1 + factor2, data=data.data)

Si usted quisiera que los marginales medios para los niveles de factor1 (es decir, en promedio sobre los niveles de factor2) en un desequilibrio en el diseño, usted debe utilizar el popMeans() función de la doBy paquete de:

popMeans(Check.Model, eff=c("factor1"))

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