Hola compañeros de la lista.
Tengo el análisis que muestro abajo, para la estimación de la Dosis
Letal Media (DL50) por medio de regresión logística, de dos compuestos
similares (denominados 1 y 2) aplicados a grupos de individuos
similares, evaluando el número de individuos vivos y muertos al final
del ensayo. Mi duda es qué forma me recomiendan para determinar si la
diferencia es significativa entre las DL50's estimadas para cada compuesto.
De antemano muchas gracias por su ayuda.
----------------------------------------------------------------------
Código:
datos.1 = data.frame(
dosis.1 = c(1,10,10,10,50,50,50,100,100,100,1000,1000,1000),
vivos.1 = c(20,20,20,20,19,14,15,5,3,2,0,0,0),
muertos.1 = c(0,0,0,0,1,6,5,15,17,18,20,20,20)
)
datos.2 = data.frame(
dosis.2 = c(1,10,10,10,50,50,50,100,100,100,1000,1000,1000),
vivos.2 = c(20,18,18,18,7,6,6,1,1,2,0,0,0),
muertos.2 = c(0,2,2,2,13,14,14,19,19,18,20,20,20)
)
attach(datos.1)
attach(datos.2)
y1 = cbind(vivos.1,muertos.1)
y2 = cbind(vivos.2,muertos.2)
modelo.logistico.1 = glm(y1~log(dosis.1),binomial)
modelo.logistico.2 = glm(y2~log(dosis.2),binomial)
library(MASS)
log.LD50.1 <- dose.p(modelo.logistico.1,p=0.5)
log.LD50.2 <- dose.p(modelo.logistico.2,p=0.5)
log.LD50.1
log.LD50.2
LD50.1 <- exp(log.LD50.1[1])
LD50.2 <- exp(log.LD50.2[1])
LD50.1
LD50.2
--
Argel.
H
ola Argel,
Muchisimas gracias por los datos y el codigo! ;-)
Una forma es hacer bootstrap. En
http://www.mayin.org/ajayshah/KB/R/documents/boot.html hay una corta
introduccion.
Seria algo similar a lo siguiente:
d <- LD50.1 - LD50.2 # diferencia real
d
#p = 0.5:
#37.31248
# ------------
# bootstrap
# ------------
B <- 1000 # numero de muestras bootstrap
d.sample <- replicate(B, {
i <- sample(NROW(y1), NROW(y1), TRUE)
datos.1.i <- datos.1[i, ]
datos.2.i <- datos.2[i, ]
y1 = with(datos.1.i, cbind(vivos.1,muertos.1))
y2 = with(datos.2.i, cbind(vivos.2,muertos.2))
modelo.logistico.1 = glm(y1 ~ log(dosis.1),binomial, data = datos.1.i)
modelo.logistico.2 = glm(y2 ~ log(dosis.2),binomial, data = datos.2.i)
log.LD50.1 <- dose.p(modelo.logistico.1,p = 0.5)
log.LD50.2 <- dose.p(modelo.logistico.2,p = 0.5)
LD50.1 <- exp(log.LD50.1[1])
LD50.2 <- exp(log.LD50.2[1])
LD50.1 - LD50.2
})
d.sample <- as.numeric(d.sample)
d.sample
hist(d.sample, breaks = 20, las = 1)
abline(v = d, col = 2, lty = 2)
# es la diferencia estadisticamente diferente de cero?
1 - mean(d.sample > 0)
# 0 ---> la diferencia es estadisticamente diferente de cero
Saludos,
Jorge.-
2013/7/23 Argel Gastélum Arellánez <argel.gastelum@gmail.com>
> Hola compañeros de la lista.
>
> Tengo el análisis que muestro abajo, para la estimación de la Dosis
> Letal Media (DL50) por medio de regresión logística, de dos compuestos
> similares (denominados 1 y 2) aplicados a grupos de individuos similares,
> evaluando el número de individuos vivos y muertos al final del ensayo. Mi
> duda es qué forma me recomiendan para determinar si la diferencia es
> significativa entre las DL50's estimadas para cada compuesto.
>
> De antemano muchas gracias por su ayuda.
>
> ------------------------------**------------------------------**----------
> Código:
>
> datos.1 = data.frame(
> dosis.1 = c(1,10,10,10,50,50,50,100,100,**100,1000,1000,1000),
> vivos.1 = c(20,20,20,20,19,14,15,5,3,2,**0,0,0),
> muertos.1 = c(0,0,0,0,1,6,5,15,17,18,20,**20,20)
> )
>
> datos.2 = data.frame(
> dosis.2 = c(1,10,10,10,50,50,50,100,100,**100,1000,1000,1000),
> vivos.2 = c(20,18,18,18,7,6,6,1,1,2,0,0,**0),
> muertos.2 = c(0,2,2,2,13,14,14,19,19,18,**20,20,20)
> )
>
> attach(datos.1)
>
> attach(datos.2)
>
> y1 = cbind(vivos.1,muertos.1)
>
> y2 = cbind(vivos.2,muertos.2)
>
> modelo.logistico.1 = glm(y1~log(dosis.1),binomial)
>
> modelo.logistico.2 = glm(y2~log(dosis.2),binomial)
>
> library(MASS)
>
> log.LD50.1 <- dose.p(modelo.logistico.1,p=0.**5)
>
> log.LD50.2 <- dose.p(modelo.logistico.2,p=0.**5)
>
> log.LD50.1
>
> log.LD50.2
>
> LD50.1 <- exp(log.LD50.1[1])
>
> LD50.2 <- exp(log.LD50.2[1])
>
> LD50.1
>
> LD50.2
>
> --
>
> Argel.
>
> ______________________________**_________________
> R-help-es mailing list
> R-help-es@r-project.org
>
https://stat.ethz.ch/mailman/**listinfo/r-help-es<https://stat.ethz.ch/mailman/listinfo/r-help-es>
>
[[alternative HTML version deleted]]
Hola Jorge, qué tal.
Wow!... interesante forma de analizarlo por bootstrap. No sé si lo
estoy entendiendo bien, entonces... ¿La última línea se puede
interpretar como si fuera un valor de p? Cuando analizo datos en los que
no debería haber diferencia significativa, por tratarse de dos ensayos
similares pero con el mismo compuesto, me resulta un valor
1 - mean(d.sample > 0) = 0.52
¿Podría decirse que cuando no hay diferencia significativa entre
ambas DL50's el resultado de esta línea debería ser mayor de 0.05? De
antemano muchas gracias por la aclaración.
--
Argel.
El 22/07/13 20:24, Jorge I Velez escribió:> H
> ola Argel,
>
> Muchisimas gracias por los datos y el codigo! ;-)
>
> Una forma es hacer bootstrap. En
> http://www.mayin.org/ajayshah/KB/R/documents/boot.html hay una corta
> introduccion.
>
> Seria algo similar a lo siguiente:
>
> d <- LD50.1 - LD50.2 # diferencia real
> d
> #p = 0.5:
> #37.31248
>
> # ------------
> # bootstrap
> # ------------
> B <- 1000 # numero de muestras bootstrap
> d.sample <- replicate(B, {
> i <- sample(NROW(y1), NROW(y1), TRUE)
> datos.1.i <- datos.1[i, ]
> datos.2.i <- datos.2[i, ]
> y1 = with(datos.1.i, cbind(vivos.1,muertos.1))
> y2 = with(datos.2.i, cbind(vivos.2,muertos.2))
> modelo.logistico.1 = glm(y1 ~ log(dosis.1),binomial, data = datos.1.i)
> modelo.logistico.2 = glm(y2 ~ log(dosis.2),binomial, data = datos.2.i)
> log.LD50.1 <- dose.p(modelo.logistico.1,p = 0.5)
> log.LD50.2 <- dose.p(modelo.logistico.2,p = 0.5)
> LD50.1 <- exp(log.LD50.1[1])
> LD50.2 <- exp(log.LD50.2[1])
> LD50.1 - LD50.2
> })
> d.sample <- as.numeric(d.sample)
> d.sample
>
> hist(d.sample, breaks = 20, las = 1)
> abline(v = d, col = 2, lty = 2)
>
> # es la diferencia estadisticamente diferente de cero?
> 1 - mean(d.sample > 0)
> # 0 ---> la diferencia es estadisticamente diferente de cero
>
> Saludos,
> Jorge.-
>
>
>
> 2013/7/23 Argel Gastélum Arellánez <argel.gastelum@gmail.com
> <mailto:argel.gastelum@gmail.com>>
>
> Hola compañeros de la lista.
>
> Tengo el análisis que muestro abajo, para la estimación de la
> Dosis Letal Media (DL50) por medio de regresión logística, de dos
> compuestos similares (denominados 1 y 2) aplicados a grupos de
> individuos similares, evaluando el número de individuos vivos y
> muertos al final del ensayo. Mi duda es qué forma me recomiendan
> para determinar si la diferencia es significativa entre las DL50's
> estimadas para cada compuesto.
>
> De antemano muchas gracias por su ayuda.
>
> ----------------------------------------------------------------------
> Código:
>
> datos.1 = data.frame(
> dosis.1 = c(1,10,10,10,50,50,50,100,100,100,1000,1000,1000),
> vivos.1 = c(20,20,20,20,19,14,15,5,3,2,0,0,0),
> muertos.1 = c(0,0,0,0,1,6,5,15,17,18,20,20,20)
> )
>
> datos.2 = data.frame(
> dosis.2 = c(1,10,10,10,50,50,50,100,100,100,1000,1000,1000),
> vivos.2 = c(20,18,18,18,7,6,6,1,1,2,0,0,0),
> muertos.2 = c(0,2,2,2,13,14,14,19,19,18,20,20,20)
> )
>
> attach(datos.1)
>
> attach(datos.2)
>
> y1 = cbind(vivos.1,muertos.1)
>
> y2 = cbind(vivos.2,muertos.2)
>
> modelo.logistico.1 = glm(y1~log(dosis.1),binomial)
>
> modelo.logistico.2 = glm(y2~log(dosis.2),binomial)
>
> library(MASS)
>
> log.LD50.1 <- dose.p(modelo.logistico.1,p=0.5)
>
> log.LD50.2 <- dose.p(modelo.logistico.2,p=0.5)
>
> log.LD50.1
>
> log.LD50.2
>
> LD50.1 <- exp(log.LD50.1[1])
>
> LD50.2 <- exp(log.LD50.2[1])
>
> LD50.1
>
> LD50.2
>
> --
>
> Argel.
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org <mailto:R-help-es@r-project.org>
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
[[alternative HTML version deleted]]
Reasonably Related Threads
- Comparación entre dos DL50's
- anova medidas repetidas con lme
- Predicción de valor máximo en superficie de respuesta, con paquete rsm
- Encontrar las variables más importantes en componentes principales
- matrix inversion using solve() and matrices containing large/small values