Simulación de novo de datos de un marco de datos de diseño experimental.
Con un enfoque en R (aunque otra solución de lenguaje sería genial).
Al diseñar un experimento o una encuesta, simular datos y realizar un análisis de estos datos simulados puede proporcionar una excelente visión de las ventajas y debilidades del diseño.
Tal enfoque también puede ser esencial para la comprensión y el uso adecuado de las pruebas estadísticas.
Sin embargo, este proceso tiende a ser algo tedioso y muchos se ven obligados a saltarse este importante paso en un experimento o encuesta.
Los modelos estadísticos y las pruebas contienen la mayor parte de la información requerida para simular los datos (incluyendo una suposición o una declaración explícita de la distribución).
Dado un modelo de análisis (y sus supuestos asociados, por ejemplo, normalidad y equilibrio), los niveles de un factor y una medida de significación (como el valor p), me gustaría obtener datos simulados (idealmente con una función generalizada similar a print (), predic (), simulate ()).
¿Es posible un marco de simulación tan generalizado?
Si es así, ¿está disponible actualmente ese marco?
Ejemplo, me gustaría una función, como:
sim(aov(response~factor1+factor2*factor3),
p.values=list(factor1=0.05,
factor2=0.05,
factor3=0.50,
factor2:factor3=0.05),
levels=list(factor1=1:10,
factor2=c("A", "B", "C"),
factor3=c("A", "B", "C")))
es decir, una versión generalizada de:
sim.lm<-function(){
library(DoE.base)
design<-fac.design(nlevels=c(10,3,3),
factor.names=c("factor1", "factor2", "factor3"),
replications=3,
randomize=F)
response<-with(design, as.numeric(factor1)+
as.numeric(factor2)+
as.numeric(factor3)+
as.numeric(factor2)*as.numeric(factor3)+
rnorm(length(factor1)))
simulation<-data.frame(design, response)}
O
sim(glm(response~factor1+factor2*factor3, family=poisson),
p.values=list(factor1=0.05,
factor2=0.05,
factor3=0.50,
factor2:factor3=0.05),
levels=list(factor1=1:10,
factor2=c("A", "B", "C"),
factor3=c("A", "B", "C")))
O
library(lme4)
sim(lmer(response~factor1+factor2 + (factor2|factor3)),
F_value=list(factor1=50,
factor2=50),
levels=list(factor1=1:10,
factor2=c("A", "B", "C"),
factor3=c("A", "B", "C")))
eso crearía un completo data.frame correspondiente
ejemplos potenciales de funciones específicas (edite a voluntad)
- arima.sim
La función existe para crear un marco de datos de los niveles de factores, sin la respuesta modelada:
por ejemplo. conf.design
http://cran.r-project.org/web/views/ExperimentalDesign.html