2016-04-29 4 views
2

Betrachten Sie die folgende Dummy-Daten:Klappmesser gepaart t-Test in R

x <- rnorm(15,mean = 3,sd = 1) 
y <- rnorm(15,mean = 3,sd = 1) 
xy <- c(x,y) 
factor <- c(rep('A',15),rep('B',15)) 

df1 <- data.frame(xy,factor) 
df1$PAIR_IDENTIFIER <- 1:15 

Nun wollen wir testen, ob die Mittel unterschiedlich sind zwischen dem factor==A und factor==B. So implementieren wir einen gepaarten t-Test

paired_t_test <- t.test(xy ~ factor, df1, paired = T) 
paired_t_test$p.value 

Jetzt sind wir auf diese erweitern wollen, indem ein Klappmesser resample

Dass wir ein Paar wird verlassen (PAIR_IDENTIFIER) und starten Sie den t-Test . Wir wollen den Test 15-1 mal wiederholen.

habe ich versucht, die jackknife Funktion aus der Bibliothek bootstrap

library(bootstrap) 

n <- length(df1$xy) 

theta <- function(x,df1){ t.test(xy ~ factor, df1, paired = T)} 
results <- jackknife(1:n,theta,df1) 

Aber ich bin nicht sicher, zu implementieren, wie die Funktion zu schreiben, um ein PAIR_IDENTIFIER für jede Iteration zu entfernen.

Antwort

2

Sie waren in der Nähe. Es gibt keine Notwendigkeit, diese Variable zu entfernen, t-test verwendet nur, was in der Formel angegeben ist.

theta.fun <- function(x, mydata) { 
    t.test(xy ~ factor, 
      data = mydata[mydata$PAIR_IDENTIFIER %in% x, ], 
      paired = T)$p.value 
} 

jackknife(x = 1:15, theta = theta.fun, mydata = df1) 

$jack.se 
[1] 0.5257458 

$jack.bias 
[1] 0.4501173 

$jack.values 
[1] 0.4064047 0.1164558 0.6187378 0.2853089 0.5913767 0.3906702 0.3528575 0.5142996 0.2430837 0.5590809 0.5015720 0.6029110 0.3881225 
[14] 0.5223167 0.3734025 

$call 
jackknife(x = 1:15, theta = theta.fun, mydata = df1)