Rozdział 2 - Testy permutacyjne

Idź do spisu treści

Menu główne:

Rozdział 2


Kod. 2.1. Podziały zbioru o n = 7 elementach na zbiory o liczebnościach n1 = 4 i n2 = 3

library(combinat)
numer=1:7; n1=4; n2=3; n=n1+n2
p1=matrix(unlist(combn(n,n1)),nrow=35, byrow=TRUE)
p2=t(apply(p1,1,function(x){numer[-x]}))
perm=cbind(p1,p2)
perm

Kod 2.2. Test permutacyjny dla losowych zbiorów o liczebnościach n1=11 oraz n2=16

x1=rnorm(11); x2=rnorm(16,1);x=c(x1,x2); N=1000
T0=abs(mean(x1)-mean(x2))
T=c()
for (i in 1:N)
{x=sample(x); T[i]=abs(mean(x[1:11])-mean(x[12:27]))}
if (T0>=quantile(T,0.95)) 'odrzucić H0' else 'brak podstaw do odrzucenia H0'

Kod 2.3. Realizacja testu permutacyjnego - biblioteka resample

library(resample)
x1=c(3,4,4,5,5,6,8); x2= c(7,8,8,9,11,11,13)
wynik=permutationTest2(data =x1, statistic = sum, data2 = x2, alternative = "less")
wynik

Kod 2.4. Realizacja testu permutacyjnego - biblioteka coin

library(coin)
dane <- c(3,4,4,5,5,6,8,7,8,8,9,11,11,13)
grupa = factor(c(rep("A", 7), rep("B", 7)))
dane_f=data.frame(grupa,dane)
oneway_test(dane ~ grupa, data = dane_f)

Źródło: opracowanie własne na podstawie Kabacoff (2011)

Kod 2.5. Realizacja testu permutacyjnego - biblioteka boot

library(boot)
x1=c(3,4,4,5,5,6,8); x2= c(7,8,8,9,11,11,13)
x=cbind(x1,x2)
perm.fun <- function(data,i) cor(data[,1],data[i,2])
x.perm <- boot(x, perm.fun, R=999, sim="permutation")
(sum(x.perm$t>x.perm$t0)+1)/(x.perm$R+1)

Źródło: opracowanie własne na podstawie Davison i Hinkley (1997)

Kod 2.6. Test permutacyjny dla wartości oczekiwanej – biblioteka EnvStats

library(EnvStats)
x=c(3,4,4,5,5,6,8)
wynik=oneSamplePermutationTest(x, mu = 4,
    alternative = "greater", exact = TRUE)
plot(wynik)
 
 
Wróć do spisu treści | Wróć do menu głównego