7 votos

Medidas repetidas con medidas individuales

Tengo la siguiente situación: General practitionar (gp), paciente (pat) y de consulta (contras).

Cada gp tiene varias paciente y de cada paciente puede tener 1 de consultas y más con las características específicas de cons_x. El resultado es y=0/1 en el nivel de consulta.

Un posible modelo podría ser (en lmer/R notación)

y ~ gp_sex + pat_sex + pat_age + cons_x + (1|gp) + (1|gp:pat)

gp es una variable aleatoria y pat está anidado en el gp. Dado que el resultado es 0/1 (derivación a especialista sí/no) el modelo adecuado es un multinivel de regresión logística.

(1) El problema: el 50% de los pacientes tienen sólo una consulta, es decir, no hay repetición, otros tienen 2, 3 hasta 6 consultas.Me gustaría saber cómo lidiar con este tipo de situación. Con otras palabras: he grupos (pacientes) con una única consulta. Así, dentro del grupo es perfecta correlación debido a que el único miembro en el grupo. ¿Los modelos mixtos marco de lidiar con esto?

(2) Otra pregunta que surge es: El número de consultas pesos el efecto en el paciente, ya que el mismo paciente tiene tantas entradas como se ha consultas. El más consulta un paciente tiene más características de los pacientes son considerados. Este no sería el caso, si todos los pacientes tienen el mismo número de consultas.

Cualquier ayuda y sugerencia se agradece.

Actualización:
Para simplificar el análisis podría agregado en el nivel del paciente: Si el paciente tiene varias consultas y al menos una consulta tiene 1 entonces el paciente ha resultado 1 caso contrario 0. Entonces tengo un modelo más simple:

y ~ gp_sex + pat_sex + pat_age + (1|gp)

En este caso el problema (1) será obsoleto pero que todavía tengo problema (2), ya que cada gp tiene diferente número de pacientes.

1voto

ralf Puntos 28

Es difícil, sin entender verdaderamente lo que su resultado y , pero te la voy a dar mi mejor esfuerzo.

(1) Esto suena como que podría ser aproximada por una λ=1 distribución de Poisson. A menos que usted está viendo jugar a los componentes de varianza del modelo, yo no me preocuparía por eso. Si es así, me gustaría tratar de transformar por sqrt(cons_x) enlace y ver si funciona mejor. No te olvides de comprobar el modelo de sensibilidad mediante la conexión de algunos ejemplos en el modelo final, variando el número de consultas, y ver si tiene sentido.

(2) los Sonidos como variables de interacción deben agregarse para ver el efecto real de las consultas sobre el sexo y la edad.

y ~ gp_sex + pat_sex + pat_age + cons_x + cons_x*pat_sex + cons_x*pat_age + cons_x*pat_age*pat_sex + ....

1voto

Randy Puntos 6

Puedo dar una respuesta a mi pregunta sólo empíricamente mediante una simulación. El uso de este dos de la validación cruzada contribuciones mixto y logística que podría crear algunos falsos conjuntos de datos y el uso de la mezcla de regresión logística. Con R y glmer de la biblioteca(lme4) he utilizado esta fórmula:

 fit1 <- glmer(y ~ x1 + (1|j), data = d, family=binomial)

y es una variable dicotómica, x1 es continua y j es aleatorio. Primero he construido un equilibrado conjunto de datos d con la agrupación de la variable j con 20 grupos. A continuación, voy a construir dos conjuntos de datos de d con m de los grupos, que tienen sólo una observación.
Las simulaciones muestran que la varianza de la j y la fija el coeficiente b1 de x son muy similares a los "verdaderos" valores para todo tipo de conjuntos de datos. Esto es debido a la "perfecta" de la aleatorización. En realidad habrá algún sesgo.
Los límites de esta respuesta: falta de fundamentación teórica (pero intuitivamente tiene sentido). La simulación puede ser mejorado si se guardan en un bucle para obtener muchos de los cálculos y comparar la media con los verdaderos valores de var(uj) y el coeficiente b1.

Simulación:

# -- Model
# yj[i] = b*0 b1*xj[i]
# b0 = g00 + u0j, u0j ~ N(0,1)
# b1 = const
# => zj[i] = g00 + u0j[i] + b1*xj[i]

# -- Libraries
library(lme4)
library(sqldf)

# -- Create balanced dataset d
# Number of clusters (level 2)
N <- 20
# Number of observations (level 1) for cluster j
nj <- 200
# intercept
g00 <- 1
# slope
b1 <- 3
# Vector of clusters indices 1,1...n1,2,2,2,....n2,...N,N,....nN
j <- c(sapply(1:N, function(x) rep(x, nj)))
# Vector of random variable
uj <- c(sapply(1:N, function(x)rep(rnorm(1), nj)))
# Vector of fixed variable
x1 <- rep(rnorm(nj),N)
# linear combination
z <- g00 + uj + b1*x1
# pass trhough an inv-logit function
pr <- 1/(1 + exp(-z))
# bernoully response variable
y <- rbinom(N*nj,1,pr)
d <- data.frame(j, y=y, z=z,x1=x1, uj=uj)

# -- Create unbalanced datasets d2 and d3
# sort j
d <- sqldf("SELECT * FROM d ORDER BY j")

# count each observation within j
d$ord    <-  NA
    d$ord[1] <- 1
k <- 2
for (i in 2:nrow(d) ) {
    if ( d$j[i] == d$j[i-1] ) {
      d$ord[i] <- k
          k = k+1
      } else {
          d$ord[i] <- 1
      k = 2
  }
}
# result
d[c(190:210),]

# Define a sample with m groups which have only one observation
m <- 5
d2 <- subset(d, j %in% c(1:m)
                | ( j %in% c((m+1):20) & ord == 1)
             )
# Another sample
d3 <- subset(d, j %in% c(1:m)
                | ( j %in% c((m+1):20) & ord == 10)
             )

# Fit with balanced dataset d
fit1 <- glmer(y ~ x1 + (1|j), data = d, family=binomial)
summary(fit1)

# fit with unbalanced data d2
fit2 <- glmer(y ~ x1 + (1|j), data = d2, family=binomial)
summary(fit2)

# fit with unbalanced data d3
fit3 <- glmer(y ~ x1 + (1|j), data = d3, family=binomial)
summary(fit3)

0voto

Michael Bishop Puntos 1599

Sin duda soy ningún experto y el amor de los demás para comentar esto, pero:

No estoy seguro de lo que su resultado es pero usted dijo que era medido 1/0. por el bien del ejemplo yo voy a pretender que su resultado es "feliz con la consulta" sí=1 y No=0.

Creo que para las personas con múltiples consultas que usted tiene una tarea más fácil. Usted podría trabajar proporción feliz respuestas para cada persona en base a su consulta de múltiples (e.g 1 persona tenía 6 consultas fue feliz 3 veces y no feliz 3 tiempo = 50% feliz). Usted podría trabajar entonces un General de'average la felicidad a través de todas las personas mediante la adición de hasta el % feliz para cada persona y dividiendo por el número de personas. Entonces usted podría conseguir un 'total promedio % feliz' medida. Te gustaría obtener un error estándar alrededor de este total % . Básicamente, ahora tenemos datos que pueden ser analizados con la prueba t o de otras medidas basadas en una distribución normal.

Donde no se dispone de una repetición de la persona, usted no puede hacer esto. lo mejor que puedes hacer es con una proporción de feliz respuestas, entre todos los participantes. digamos que usted tenía 4 participantes, que sólo tenía 1 consulta (p1 era feliz=1 p2 se feliz=1, p3= 1 y p4=0) por lo que la proporción feliz es del 75%. Usted ahora tiene que utilizar el binomio pruebas de correo.g a z de la prueba, lo cual creo que no son tan potentes (sólo he publicado una pregunta sobre esto).

Puede que tenga que analizar los datos para el que no se repite y la repite por separado. Desafortunadamente, usted no puede pretender que se repiten los datos son de diferentes personas, porque esto violaría suposición de independencia, por lo que tengo la sensación de que se requiere un enfoque diferente con el de medidas repetidas vs no de medidas repetidas de datos.

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