De-novo-Simulation von Daten aus einem experimentellen Entwurfsdatenrahmen.
Mit einem Fokus auf R (obwohl eine andere Sprachlösung großartig wäre).
Wenn Sie ein Experiment oder eine Umfrage entwerfen, können Sie Daten simulieren und eine Analyse dieser simulierten Daten durchführen, um einen hervorragenden Einblick in die Vor- und Nachteile des Designs zu erhalten.
Ein solcher Ansatz kann auch für das Verständnis und die ordnungsgemäße Verwendung statistischer Tests von entscheidender Bedeutung sein.
Dieser Prozess ist jedoch in der Regel etwas langwierig und viele müssen diesen wichtigen Schritt in einem Experiment oder einer Umfrage überspringen.
Statistische Modelle und Tests enthalten die meisten Informationen, die zur Simulation der Daten erforderlich sind (einschließlich einer Annahme oder einer expliziten Erklärung der Verteilung).
Anhand eines Analysemodells (und der damit verbundenen Annahmen, z. B. Normalität und Gleichgewicht), der Niveaus eines Faktors und eines Maßes für die Signifikanz (z. B. p-Wert) möchte ich simulierte Daten erhalten (im Idealfall mit einer verallgemeinerten Funktion ähnlich wie print (), predict (), simulate ()).
Ist solch ein verallgemeinertes Simulationsframework möglich?
Wenn ja, ist ein solches Framework derzeit verfügbar?
Zum Beispiel möchte ich eine Funktion, wie zum Beispiel:
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")))
dh eine verallgemeinerte Version von:
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)}
ODER
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")))
ODER
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")))
das würde einen vollständigen entsprechenden data.frame erzeugen
mögliche Beispiele für bestimmte Funktionen (bitte nach Belieben bearbeiten)
- arima.sim
Funktion existiert, um ein data.frame der Faktorebenen zu erstellen, ohne die modellierte Antwort:
zB. conf.design
http://cran.r-project.org/web/views/ExperimentalDesign.html