Você está na página 1de 3

Roteiro da Aula Prática/Lista de Exercício 4

Marcos Vinícius Silva

Aula 04/04/2019

Para criar no R uma função THPermut(machos,femeas), que receba os dados das duas populações, machos
e femeas, e retorne o valor P do teste de permutações, use os comandos:

1. calcule a diferença entre as médias de machos e fêmeas repeticoes<-5000 para i de 1 até repeticoes
2. realoque aleatoriamente 10 observações ao grupo dos machos e as 10 restantes ao das fêmeas
3. calcule a diferença D entre as médias de machos e fêmeas fim para
4. calcule valorp return(valorp)

machos<-c(120,107,110,116,114,111,113,117,114,112)
femeas<-c(110,111,107,108,110,105,107,106,111,111)

THPermut <- function(machos, femeas) {


difobs <- mean(machos) - mean(femeas)
todos <- c(machos, femeas)
set.seed(13579)
repeticoes <- 5000
dif <- numeric(repeticoes)
tamanhoMachos <- length(machos)
tamanhoFemeas <- length(femeas)
for(i in 1:repeticoes) {
permuta <- sample(todos, replace = F)
grupo1 <- permuta[1:tamanhoMachos]
grupo2 <- permuta[(tamanhoMachos+1):(tamanhoMachos+tamanhoFemeas)]
dif[i] <- mean(grupo1) - mean(grupo2)
}
valorp <- length(dif[dif>difobs]) / repeticoes
return(valorp)
}

THPermut(machos, femeas)

## [1] 0.0012

L <- mean(machos) - mean(femeas)


for(i in 1:40) {
L <- L-0.1
valorp <- THPermut(machos-L, femeas)
cat("L=", L, "valor_p=", valorp, "\n")
}

## L= 4.7 valor_p= 0.4744


## L= 4.6 valor_p= 0.4342
## L= 4.5 valor_p= 0.4072
## L= 4.4 valor_p= 0.3834
## L= 4.3 valor_p= 0.3674

1
## L= 4.2 valor_p= 0.3362
## L= 4.1 valor_p= 0.3182
## L= 4 valor_p= 0.268
## L= 3.9 valor_p= 0.268
## L= 3.8 valor_p= 0.2382
## L= 3.7 valor_p= 0.2214
## L= 3.6 valor_p= 0.1926
## L= 3.5 valor_p= 0.1696
## L= 3.4 valor_p= 0.156
## L= 3.3 valor_p= 0.1474
## L= 3.2 valor_p= 0.123
## L= 3.1 valor_p= 0.1194
## L= 3 valor_p= 0.0926
## L= 2.9 valor_p= 0.0926
## L= 2.8 valor_p= 0.0806
## L= 2.7 valor_p= 0.073
## L= 2.6 valor_p= 0.0618
## L= 2.5 valor_p= 0.0512
## L= 2.4 valor_p= 0.0472
## L= 2.3 valor_p= 0.0428
## L= 2.2 valor_p= 0.0334
## L= 2.1 valor_p= 0.0324
## L= 2 valor_p= 0.0228
## L= 1.9 valor_p= 0.0228
## L= 1.8 valor_p= 0.0202
## L= 1.7 valor_p= 0.0166
## L= 1.6 valor_p= 0.0128
## L= 1.5 valor_p= 0.01
## L= 1.4 valor_p= 0.0096
## L= 1.3 valor_p= 0.0084
## L= 1.2 valor_p= 0.007
## L= 1.1 valor_p= 0.007
## L= 1 valor_p= 0.004
## L= 0.9 valor_p= 0.004
## L= 0.8 valor_p= 0.0038

U <- mean(machos) - mean(femeas)


for (i in 1:40) {
U<-U+0.1
valorp<-THPermut(machos-U,femeas)
cat("U=",U,"valor P=",valorp,"\n")
}

## U= 4.9 valor P= 0.5262


## U= 5 valor P= 0.5262
## U= 5.1 valor P= 0.5846
## U= 5.2 valor P= 0.6058
## U= 5.3 valor P= 0.6448
## U= 5.4 valor P= 0.6572
## U= 5.5 valor P= 0.678
## U= 5.6 valor P= 0.7046
## U= 5.7 valor P= 0.7364
## U= 5.8 valor P= 0.7484
## U= 5.9 valor P= 0.7736

2
## U= 6 valor P= 0.7736
## U= 6.1 valor P= 0.8144
## U= 6.2 valor P= 0.8228
## U= 6.3 valor P= 0.8464
## U= 6.4 valor P= 0.8586
## U= 6.5 valor P= 0.8722
## U= 6.6 valor P= 0.889
## U= 6.7 valor P= 0.9066
## U= 6.8 valor P= 0.917
## U= 6.9 valor P= 0.928
## U= 7 valor P= 0.928
## U= 7.1 valor P= 0.9474
## U= 7.2 valor P= 0.9492
## U= 7.3 valor P= 0.9588
## U= 7.4 valor P= 0.963
## U= 7.5 valor P= 0.9664
## U= 7.6 valor P= 0.972
## U= 7.7 valor P= 0.9784
## U= 7.8 valor P= 0.9816
## U= 7.9 valor P= 0.9838
## U= 8 valor P= 0.9838
## U= 8.1 valor P= 0.9896
## U= 8.2 valor P= 0.9896
## U= 8.3 valor P= 0.9922
## U= 8.4 valor P= 0.9928
## U= 8.5 valor P= 0.9932
## U= 8.6 valor P= 0.9946
## U= 8.7 valor P= 0.995
## U= 8.8 valor P= 0.9954

f <- function(x, machos, femeas, valorp) {


THPermut(machos - x, femeas)-valorp
}

L <- uniroot(f, interval = c(4.8, -10), machos, femeas, valorp=0.025, tol=0.01)$root


U <- uniroot(f, interval = c(4.8, 10), machos, femeas, valorp=0.975, tol=0.01)$root

list("L=", L, "U=", U)

## [[1]]
## [1] "L="
##
## [[2]]
## [1] 1.997315
##
## [[3]]
## [1] "U="
##
## [[4]]
## [1] 7.604584

Você também pode gostar