Revision

library(rlang)

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.