Simulação de novo de dados a partir de um quadro de dados de projeto experimental.
Com foco em R (embora outra solução de idioma seja ótima).
Ao projetar um experimento ou uma pesquisa, a simulação de dados e a realização de uma análise desses dados simulados podem fornecer informações excelentes sobre as vantagens e fraquezas do projeto.
Essa abordagem também pode ser essencial para a compreensão e uso adequado dos testes estatísticos.
No entanto, esse processo tende a ser um pouco tedioso e muitos são levados a pular essa importante etapa de um experimento ou pesquisa.
Os modelos e testes estatísticos contêm a maioria das informações necessárias para simular os dados (incluindo uma suposição ou uma declaração explícita da distribuição).
Dado um modelo de análise (e suas suposições associadas, por exemplo, normalidade e equilíbrio), os níveis de um fator e uma medida de significância (como valor-p), eu gostaria de obter dados simulados (idealmente com uma função generalizada semelhante a imprimir (), prever (), simular ()).
É possível uma estrutura de simulação tão generalizada?
Em caso afirmativo, essa estrutura está disponível atualmente?
Exemplo, eu gostaria de uma função, 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")))
ou seja, uma versão 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)}
OU
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")))
OU
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")))
que criaria um data.frame correspondente completo
exemplos potenciais de funções específicas (edite à vontade)
- arima.sim
existe uma função para criar um quadro de dados dos níveis dos fatores, sem a resposta modelada:
por exemplo, conf.design
http://cran.r-project.org/web/views/ExperimentalDesign.html