Dies ist das erste Mal, dass ich in diesem Forum posten, und ich möchte von Anfang an sagen, dass ich kein geschickter Programmierer bin. Also lass es mich wissen, wenn die Frage oder der Code unklar sind!Wie man die Informationen innerhalb des Subjekts bootstrapst?
Ich versuche, das 95% Konfidenzintervall (CI) für eine Interaktion (das ist meine Teststatistik) durch Bootstrapping zu erhalten. Ich benutze das Paket "boot". Mein Problem ist, dass ich für jede Resample die Randomisierung innerhalb von Subjekten möchte, so dass die Beobachtungen von verschiedenen Subjekten nicht gemischt werden. Hier ist der Code, um einen ähnlichen Datenrahmen zu generieren. Wie Sie sehen können, habe ich zwei Faktoren innerhalb Subjekt („Num“ und „Gram“ und ich bin in der Interaktion zwischen den beiden interessiert):
Subject = rep(c("S1","S2","S3","S4"),4)
Num = rep(c("singular","plural"),8)
Gram = rep(c("gram","gram","ungram","ungram"),4)
RT = c(657,775,678,895,887,235,645,916,930,768,890,1016,590,978,450,920)
data = data.frame(Subject,Num,Gram,RT)
Dies ist der Code, den ich verwendet, um die empirische Interaktion Wert zu erhalten :
summary(lm(RT ~ Num*Gram, data=data))
Wie Sie sehen können, ist die Interaktion zwischen meinen beiden Faktoren -348. Ich mag einen Bootstrap-Konfidenzintervall für diese Statistik erhalten, die wir generieren kann das „boot“ Paket mit:
# You need the following packages
install.packages("car")
install.packages("MASS")
install.packages("boot")
library("car")
library("MASS")
library("boot")
#Function to create the statistic to be boostrapped
boot.huber <- function(data, indices) {
data <- data[indices, ] #select obs. in bootstrap sample
mod <- lm(RT ~ Num*Gram, data=data)
coefficients(mod) #return coefficient vector
}
#Generate bootstrap estimate
data.boot <- boot(data, boot.huber, 1999)
#Get confidence interval
boot.ci(data.boot, index=4, type=c("norm", "perc", "bca"),conf=0.95) #4 gets the CI for the interaction
Mein Problem ist, dass ich das Resampling denken soll, ohne das Mischen der einzelnen Fächer Beobachtungen erzeugt werden: dh Um die neuen Resamples zu generieren, sollten die Beobachtungen von Subjekt 1 (S1) innerhalb von Subjekt 1 gemischt werden, nicht mit den Beobachtungen von Subjekt 2, etc ... Ich weiß nicht, wie "boot" das Resampling durchführt (Ich lese die Dokumentation, aber verstehe nicht, wie die Funktion es tut)
Weiß jemand, wie ich sicherstellen konnte, dass das von "boot" verwendete Resampling-Verfahren die Informationen auf der Fachebene berücksichtigt?
Vielen Dank für Ihre Hilfe/Beratung!
+1 für eine sehr schöne erste Frage, aber Sie sollten auch die andere Version löschen, die [von CrossValidated migriert wurde] (http://stackoverflow.com/questions/17473321/how-to-bootstrap-respecting-subject -level-Information). – Thomas
@Thomas. Ups, ich habe es vergessen! Es ist jetzt gelöscht :) – Sol