library(rlang)Revision
EX83
ex83 <-function(p_hat, n, conf.level, d){
alpha <- 1 - conf.level
s <- sqrt(p_hat*(1-p_hat)) #desvio padrão amostral
z_star <- qnorm(alpha/2+conf.level)
ME <- z_star*s/sqrt(n)
p_inf <- p_hat - ME
p_sup <- p_hat + ME
#d <- #item d
ifelse(d >= p_inf & d <= p_sup, res<-1, res<-0)
output <- c(p_inf, p_sup, ME*100, as.integer(res))
return(output)
}
tolerancia1 <-.0015 #itens a e b
tolerancia2 <- .015 #item c
tolerancia3 <- 0 #item d
## Entradas: tentativas disponíveis
input1 <- c(.57, 627, .99, .52)
input2 <- c(.63, 724, .90, .66)
input3 <- c(.42, 904, .90, .39)
input4 <- c(.53, 729, .99, .58)
input5 <- c(.27, 638, .90, .24)
## Respostas: gabarito oferecido
answer1 <- c(0.518989733653633,0.621010266346367,5.10102663463667,0)
answer2 <- c(0.600157949893725, 0.659842050106276,2.98420501062755, 0)
answer3 <- c(0.393078560703311,0.446921439296689, 2.6921439296689, 1)
answer4 <- c(0.482308299761857, 0.577691700238144, 4.76917002381435, 0)
answer5 <- c(0.241174501883007, 0.298825498116993, 2.88254981169934, 0)
## Respostas encontradas pelo R:
output1<- ex83(.57, 627, .99, .52)
output2<- ex83(.63, 724, .90, .66)
output3<- ex83(.42, 904, .90, .39)
output4<- ex83(.53, 729, .99, .58)
output5<- ex83(.27, 638, .90, .24)
#######################################################
input <- c(input1, input2, input3, input4, input5)
answer <- c(answer1, answer2, answer3, answer4, answer5)
output <- c(output1, output2, output3, output4, output5)
#######################################################
## Diferença para teste de precisão ou tolerância
diff1 <- abs(output1-answer1)
diff2 <-abs(output2-answer2)
diff3 <-abs(output3-answer3)
diff4 <-abs(output4-answer4)
diff5 <-abs(output5-answer5)
test<- function(answer, output){
dif <-abs(answer-output)
ifelse(dif[1] < tolerancia1, print("a: passed"), print("a: reproved"))
ifelse(dif[2] < tolerancia1, print("b: passed"), print("b: reproved"))
ifelse(dif[3] < tolerancia2, print("c: passed"), print("c: reproved"))
ifelse(dif[4] == tolerancia3, print("d: passed"), print("d: reproved"))
return(NULL)
}1° Entrada
test(answer1, output1)[1] "a: passed"
[1] "b: passed"
[1] "c: passed"
[1] "d: reproved"
NULL
#falha na questão 1, item d
#entrada
input1[1] 0.57 627.00 0.99 0.52
#resposta
answer1[1] 0.5189897 0.6210103 5.1010266 0.0000000
#saída do R
output1[1] 0.5190722 0.6209278 5.0927806 1.0000000
#diferença absoluta
diff1[1] 8.24606e-05 8.24606e-05 8.24606e-03 1.00000e+00
Justificativa
O valor de entrada esta dentro do intervalo e a resposta diz fora.
\(52\% \in \mathbb{IC}\%(57\%,99\%)=[51.90\%, 62.10\%]\)
2° Entrada
test(answer2, output2)[1] "a: passed"
[1] "b: passed"
[1] "c: reproved"
[1] "d: passed"
NULL
#falha na questão 2, item c
#entrada
input2[1] 0.63 724.00 0.90 0.66
#resposta
answer2[1] 0.6001579 0.6598421 2.9842050 0.0000000
#saída do R
output2[1] 0.6004859 0.6595141 2.9514071 0.0000000
Justificativa
motivo: precisão
diff2[3][1] 0.03279796
3° Entrada
test(answer1, output1)[1] "a: passed"
[1] "b: passed"
[1] "c: passed"
[1] "d: reproved"
NULL
#falha na questão 3, item d
#entrada
input3[1] 0.42 904.00 0.90 0.39
#resposta
answer3[1] 0.3930786 0.4469214 2.6921439 1.0000000
#saída do R
output3[1] 0.3929989 0.4470011 2.7001114 0.0000000
#diferença absoluta
diff3[1] 7.967477e-05 7.967477e-05 7.967477e-03 1.000000e+00
Justificativa
O valor de entrada esta fora do intervalo e a resposta diz dentro.
\[39\% \notin \mathbb{IC}\%(42\%,90\%)=[39.30\%, 44.69\%]\]
4°Entrada
test(answer4, output4)[1] "a: passed"
[1] "b: passed"
[1] "c: passed"
[1] "d: passed"
NULL
Passou em todos.
5°Entrada
test(answer5, output5)[1] "a: passed"
[1] "b: passed"
[1] "c: passed"
[1] "d: passed"
NULL
Passou em todos.