Comandos R para análises estatísticas

Capítulo 12: Testes de Hipóteses

Exemplo 12.1

Os parafusos têm resistência média de 145kg, com desvio padrão de 12kg para o país A e média de 155kg com desvio padrão de 20kg para o país B:

País Média Desvio Padrão
A 145kg 12kg
B 155kg 20kg

Na amostra temos a média de 25 parafusos e gostaríamos de testar as seguintes hipóteses:

H0: Os parafusos são de origem B
H1: Os parafusos são de origem A

Sob H0, temos que \(\overline{X}\sim N(155,16)\). Logo:

\(\mathbb{P}(\text{Erro I})=\mathbb{P}(\overline{X}\le 150 | \overline{X}\sim N(155,16))=\)pnorm(q=150, mean=155, sd=4)= 0.10565

Se, por outro lado tivermos H1 verdadeira, temos que \(\overline{X}\sim N(145,12^2/25)\). Logo:

\(\mathbb{P}(\text{Erro II})=\mathbb{P}(\overline{X} > 150 | \overline{X}\sim N(145,5.76))=\)1 - pnorm(q=150, mean=145, sd=12/5)= 0.01861

Assim:

Quadro 12.1: Resumo do teste \(H_0: \mu=155,H_1:\mu=145\),com RC=\(]-\infty;150]\).

Origem \ Decisão Decisão:A Decisão: B
Origem: A Sem Erro \(\beta\)=1.88%
Origem: B \(\alpha\)=10.56% Sem Erro

Se calcularmos as mesmas quantidades com \(\overline{x}_c\)=148.75 como sugerido, teremos:

\(\mathbb{P}(\text{Erro I})=\mathbb{P}(\overline{X}\le 148.75 | \overline{X}\sim N(155,16))=\)pnorm(q=148.75, mean=155, sd=4)= 0.05909
\(\mathbb{P}(\text{Erro II})=\mathbb{P}(\overline{X} > 150 | \overline{X}\sim N(145,5.76))=\)1 - pnorm(q=148.75, mean=145, sd=12/5)= 0.05909

Se, por outro lado, quisermos saber qual o valor de \(\overline{x}_c\) de tal maneira a obtermos \(\alpha\)=5%, utilizamos a função qnorm, como já vimos anteriormente:

qnorm(p = 0.05, mean=155, sd =4)
## [1] 148.42

o que resulta em \(\overline{x}_c\)=148.42 e:

\(\beta=\mathbb{P}(\text{Erro II})=\mathbb{P}(\overline{X} > 148.42 | \overline{X}\sim N(145,5.76))=\)1 - pnorm(q=148.42, mean=145, sd=12/5)= 0.07708

x<-seq(125,167,0.1)  # eixo X do gráfico
regiao1=seq(148.42,167,0.01) # Regiao a ser sombreada na figura
cord.x <- c(min(regiao1),regiao1,max(regiao1))  # coordenadas X da regiao
cord.y <- c(0,dnorm(regiao1,mean=145,sd=5.76),0)  # coordenadas Y da regiao
curve(dnorm(x,mean=145,sd=5.76),xlim=c(125,167),ylim=c(0,0.12),xlab="",ylab="",xaxs="i",yaxs="i",col="black",lwd=2, xaxt='n')  # Curva da distribuicao normal
polygon(cord.x,cord.y,col='orange2') # plotando a regiao
lines(x=c(145,145),y=c(0,dnorm(145,145,5.76)),col="gray",lty=2) # linha vertical da media  

par(new=TRUE) # inserindo a segunda curva 
regiao2=seq(125,148.42,0.01) # Regiao a ser sombreada na figura
cord.x <- c(min(regiao2),regiao2,max(regiao2))
cord.y <- c(0,dnorm(regiao2,mean=155,sd=4),0) 
curve(dnorm(x,mean=155,sd=4),xlim=c(125,167),ylim=c(0,0.12),xlab="",ylab="",xaxs="i",yaxs="i",col="black",lwd=2, xaxt='n') 
polygon(cord.x,cord.y,col='lightblue3')
lines(x=c(155,155),y=c(0,dnorm(155,155,4)),col="darkgray",lty=2)
axis(side=1,at = c(145,148.42,155), labels = c("145","148.42","155")) # 'labels' do eixo X
legend("topleft", legend=c("RC=5%", "Poder=7.93%"), pch=c(15,15), col=c("lightblue3","orange2"), cex=2, bty = "n") # legenda

Figura 12.2: Ilustração de erros do tipo I e II para o Exemplo 12.1.

x<-seq(125,167,0.1)
regiao1=seq(125,148.42,0.01) # Regiao a ser sombreada na figura
cord.x <- c(min(regiao1),regiao1,max(regiao1))
cord.y <- c(0,dnorm(regiao1,mean=155,sd=4),0) 
curve(dnorm(x,mean=155,sd=4),xlim=c(125,167),ylim=c(0,0.15),xlab="",ylab="",xaxs="i",yaxs="i",col="black",lwd=2, xaxt='n') 

polygon(cord.x,cord.y,col='lightblue3')
lines(x=c(155,155),y=c(0,dnorm(155,155,4)),col="darkgray",lty=2)
axis(side=1,at = c(148.42,155), labels = c("148.42","mu=155"))

par(new=TRUE)

# Curva tracejada
curve(dnorm(x,mean=148.42,sd=3),xlim=c(125,167),ylim=c(0,0.15),xlab="",ylab="",xaxs="i",yaxs="i",col="gray",lty=2, lwd=2, xaxt='n') 

par(new=TRUE)
# Curva tracejada
curve(dnorm(x,mean=145,sd=3),xlim=c(125,167),ylim=c(0,0.15),xlab="",ylab="",xaxs="i",yaxs="i",col="gray",lty=2, lwd=2, xaxt='n') 

Figura 12.3: Teste \(H_0: \mu=155\) vs \(H_1:\mu< 155\),com RC=\(]-\infty;148.42]\).

Para calcular regiões críticas bilaterais, basta dividirmos a probabilidade do erro I, \(\alpha\), por 2, para que a RC seja simétrica a média:

\[ 0.05=\mathbb{P}(\text{Erro I})=\mathbb{P}(\overline{X} < \overline{x}_{c1} \text{ ou } \overline{X} > \overline{x}_{c2}| \overline{X}\sim N(155,16)). \] Teremos então:

  • qnorm(p=0.05/2, mean=155, sd=4)= 147.16014
  • qnorm(p=1-0.05/2, mean=155, sd=4)= 162.83986
x<-seq(130,190,0.1)
regiao2=seq(130,147.16,0.01)
regiao1=seq(162.84,190,0.01)
cord.x1 <- c(min(regiao1),regiao1,max(regiao1))
cord.x2 <- c(min(regiao2),regiao2,max(regiao2))
cord.y1 <- c(0,dnorm(regiao1,mean=155,sd=4),0) 
cord.y2 <- c(0,dnorm(regiao2,mean=155,sd=4),0) 
curve(dnorm(x,mean=155,sd=4),xlim=c(125,190),ylim=c(0,0.15),xlab="",ylab="",xaxs="i",yaxs="i",lwd=2, xaxt='n') 
polygon(cord.x1,cord.y1,col='lightblue3')
polygon(cord.x2,cord.y2,col='lightblue3')
lines(x=c(155,155),y=c(0,dnorm(155,155,4)),col="darkgray",lty=2)
axis(side=1,at = c(147.16,155,162.84), 
     labels = c("X_c1","155","X_c2"))

par(new=TRUE)
# Curva tracejada
curve(dnorm(x,mean=145,sd=4.5),xlim=c(130,190),ylim=c(0,0.15),xlab="",ylab="",xaxs="i",yaxs="i",col="gray",lty=2, lwd=2, xaxt='n') 
par(new=TRUE)
# Curva tracejada
curve(dnorm(x,mean=140,sd=3),xlim=c(130,190),ylim=c(0,0.15),xlab="",ylab="",xaxs="i",yaxs="i",col="gray",lty=2, lwd=2, xaxt='n') 
par(new=TRUE)
# Curva tracejada
curve(dnorm(x,mean=170,sd=3),xlim=c(130,190),ylim=c(0,0.15),xlab="",ylab="",xaxs="i",yaxs="i",col="gray",lty=2, lwd=2, xaxt='n') 
par(new=TRUE)
# Curva tracejada
curve(dnorm(x,mean=175,sd=4.5),xlim=c(130,190),ylim=c(0,0.15),xlab="",ylab="",xaxs="i",yaxs="i",col="gray",lty=2, lwd=2, xaxt='n') 

Figura 12.4: Teste \(H_0: \mu=155\) vs \(H_1:\mu \ne 155\).

Exemplo 12.2

Neste exemplo, temos \(\mu=500g\) e \(\sigma^2=400g^2\). com uma amostra de 16 pacotes e $]overline{x}=492g. Queremos testar \(H_0:\mu=500g\) vs \(H_1:\mu\ne 500g\). Logo, sob \(H_0\), temos que \(\overline{X}\sim N(500,400/16)\). Então, ao nível $=$1%:

  • qnorm(p=0.01/2, mean=500, sd=5)= 487.12085
  • qnorm(p=1-0.01/2, mean=500, sd=5)= 512.87915

A esta altura, o leitor pode facilmente escrever uma função para calcular as regiões críticas e imprimir os gráficos:

RC<-function(tipo="bilateral",x_min=NA,x_max=NA, media, desvpad, alpha, grafico=TRUE){
  # 'x_min' e 'x_max' são os valores maximo e mínimo do grafico
  # 'tipo' é o tipo de teste. Pode ser 'bilateral', 'superior' ou 'inferior'
  # 'media' e 'desvpad' são a média e desvio padrao sob H0
  # alpha é o nível de significancia
  # Se grafico == TRUE plota o grafico, caso contrario apenas retorna o valor de Xc.
  if (grafico == TRUE){
    x<-seq(x_min,x_max,0.1)
    
    if (tipo == "bilateral"){
      regiao1=seq(x_min,qnorm(p=alpha/2, mean=media, sd=desvpad),0.001)
      regiao2=seq(qnorm(p=1-alpha/2, mean=media, sd=desvpad),x_max,0.001)
      cord.x1 <- c(min(regiao1),regiao1,max(regiao1))
      cord.x2 <- c(min(regiao2),regiao2,max(regiao2))
      cord.y1 <- c(0,dnorm(regiao1,mean=media,sd=desvpad),0) 
      cord.y2 <- c(0,dnorm(regiao2,mean=media,sd=desvpad),0) 
      curve(dnorm(x,mean=media,sd=desvpad),xlim=c(x_min,x_max),xlab="",ylab="",xaxs="i",yaxs="i",lwd=2, xaxt='n') 
    polygon(cord.x1,cord.y1,col='lightblue3')
    polygon(cord.x2,cord.y2,col='lightblue3')
    lines(x=c(media,media),y=c(0,dnorm(media,media,desvpad)),col="darkgray",lty=2)
    axis(side=1,at = c(qnorm(p=1-alpha/2, mean=media, sd=desvpad), media, qnorm(p=alpha/2, mean=media, sd=desvpad)), 
         labels = round(c(qnorm(p=1-alpha/2, mean=media, sd=desvpad), media, qnorm(p=alpha/2, mean=media, sd=desvpad)),3))
    writeLines(paste("RC:(-infinito; ",round(qnorm(p=alpha/2, mean=media, sd=desvpad),3),"] + [",round(qnorm(p=1-alpha/2, mean=media, sd=desvpad),3),"; +infinito)",sep=""))
    return(c(qnorm(p=alpha/2, mean=media, sd=desvpad),qnorm(p=1-alpha/2, mean=media, sd=desvpad)))
    }
    else if (tipo == "superior"){
      regiao2=seq(qnorm(p=1-alpha, mean=media, sd=desvpad),x_max,0.001)
      cord.x2 <- c(min(regiao2),regiao2,max(regiao2))
      cord.y2 <- c(0,dnorm(regiao2,mean=media,sd=desvpad),0) 
      curve(dnorm(x,mean=media,sd=desvpad),xlim=c(x_min,x_max),xlab="",ylab="",xaxs="i",yaxs="i",lwd=2, xaxt='n') 
    polygon(cord.x2,cord.y2,col='lightblue3')
    lines(x=c(media,media),y=c(0,dnorm(media,media,desvpad)),col="darkgray",lty=2)
    axis(side=1,at = c(qnorm(p=1-alpha, mean=media, sd=desvpad),media), 
         labels = round(c(qnorm(p=1-alpha, mean=media, sd=desvpad),media),3))
    writeLines(paste("RC:[",round(qnorm(p=1-alpha, mean=media, sd=desvpad),3),"; +infinito)",sep=""))
    return(qnorm(p=1-alpha, mean=media, sd=desvpad))
    }
    else if (tipo == "inferior"){
      regiao1=seq(x_min,qnorm(p=alpha, mean=media, sd=desvpad),0.001)
      cord.x1 <- c(min(regiao1),regiao1,max(regiao1))
      cord.y1 <- c(0,dnorm(regiao1,mean=media,sd=desvpad),0) 
      curve(dnorm(x,mean=media,sd=desvpad),xlim=c(x_min,x_max),xlab="",ylab="",xaxs="i",yaxs="i",lwd=2, xaxt='n') 
    polygon(cord.x1,cord.y1,col='lightblue3')
    lines(x=c(media,media),y=c(0,dnorm(media,media,desvpad)),col="darkgray",lty=2)
        axis(side=1,at = c(media,qnorm(p=alpha, mean=media, sd=desvpad)), 
         labels = round(c(media,qnorm(p=alpha, mean=media, sd=desvpad)),3))
    writeLines(paste("RC:(-infinito; ",round(qnorm(p=alpha, mean=media, sd=desvpad),3),"]",sep=""))
    return(qnorm(p=alpha, mean=media, sd=desvpad))
    }
    else {
      writeLines("'tipo' deve ser 'bilateral', 'superior' ou 'inferior'.")
      return(0)
    }
  }
  else{
    if (tipo == "bilateral"){
      writeLines(paste("RC:(-infinito; ",round(qnorm(p=alpha/2, mean=media, sd=desvpad),3),"] + [",round(qnorm(p=1-alpha/2, mean=media, sd=desvpad),3),"; +infinito)",sep=""))
      return(c(qnorm(p=alpha/2, mean=media, sd=desvpad),qnorm(p=1-alpha/2, mean=media, sd=desvpad)))
    }
    else if (tipo == "superior"){
      writeLines(paste("RC:[",round(qnorm(p=1-alpha, mean=media, sd=desvpad),3),"; +infinito)",sep=""))
      return(qnorm(p=1-alpha, mean=media, sd=desvpad))
    }
    else if (tipo == "inferior"){
      writeLines(paste("RC:(-infinito; ",round(qnorm(p=alpha, mean=media, sd=desvpad),3),"]",sep=""))
      return(qnorm(p=alpha, mean=media, sd=desvpad))
    }
    else {
      writeLines("'tipo' deve ser 'bilateral', 'superior' ou 'inferior'.")
      return(0)
    }
  }
}

Portanto, a Figura 12.5 fica:

RC(tipo = "bilateral",480,520,500,5,0.01)

## RC:(-infinito; 487.121] + [512.879; +infinito)
## [1] 487.12 512.88

Figura 12.5: Região crítica para o teste \(H_0:\mu=500\) vs \(H_1:\mu\ne 500\) do Exemplo 12.2.

Exemplo 12.3

Queremos testar as hipóteses:

  • \(H_0:p=0.60\)
  • \(H_1:p<0.60\)

Temos que, sob \(H_0\), \(\hat{p}\sim N(0.6,0.24/200)\). Logo:

pc<-RC(tipo = "inferior", x_min = 0.45,x_max = 0.75, media = 0.60, desvpad = sqrt(0.24/200), alpha = 0.05)

## RC:(-infinito; 0.543]

Figura 12.7: Região crítica para o teste \(H_0:p=0.60\) vs \(H_1:p < 0.60\) do Exemplo 12.3.

Poder de um Teste

Para calcular o poder, precisamos primeiro calcular os limites da região crítica. A região complementar a região crítica é a região de aceitação (RA). No Exemplo 12.2 a RC era dada por:

limites<-RC(tipo="bilateral", alpha=0.01, media=500, desvpad=5, grafico = FALSE)
## RC:(-infinito; 487.121] + [512.879; +infinito)

De posse dos valores que compõem os limites das regiões crítica e de aceitação, usando \(\overline{X}\sim N(505,25)\), temos agora que calcular \(\pi(\mu)=1-\beta(\mu)\) para esta região. Para isto, basta calcular os a área da distribuição Normal com o valor \(\mu\) desejado, dentro da RA:

\(\pi(\mu)=\mathbb{P}(\text{rejeitar }H_0 | \mu=505)=\mathbb{P}(\overline{X}<487.1\text{ ou }\overline{X}> 512.9 | \mu=505)=\)pnorm(512.9,505,5)-pnorm(487.1,505,5)= 0.94277

Dessa forma, a Tabela 12.1 será calculada com os comandos a seguir:

mu_abaixo=c(500,498,495,492,490,487,485,480,475)
mu_acima=c(500,502,505,508,510,513,515,520,525)
tab12_1<-data.frame(mu_abaixo,mu_acima,
pi_mu=(1-sapply(mu_acima,function(mu){return(pnorm(limites[2],mean=mu,sd=5)-pnorm(limites[1],mean=mu,sd=5))}))*100,
beta_mu=sapply(mu_acima,function(mu){return(pnorm(limites[2],mean=mu,sd=5)-pnorm(limites[1],mean=mu,sd=5))})*100)
print(kable(tab12_1,col.names = c("À esquerda de 500", "À direita de 500", "pi(mu) (em %)","beta(mu) (em %)"),digits = 1))
À esquerda de 500 À direita de 500 pi(mu) (em %) beta(mu) (em %)
500 500 1.0 99.0
498 502 1.6 98.4
495 505 5.8 94.2
492 508 16.5 83.5
490 510 28.2 71.8
487 513 51.0 49.0
485 515 66.4 33.6
480 520 92.3 7.7
475 525 99.2 0.8

Tabela 12.1: Valores de \(\beta(\mu)\) e \(\pi(\mu)\) usando a regra de decisão RC=\(\{\overline{x}\in\mathbb{R}|\overline{x}\le 487.1\text{ ou } \overline{x}\ge 512.9\}\).

Figura 12.8

Para construir a Figura 12.8, basta fixar na função RC o valor 500 para a média apenas nos parâmetros de região e executar cada um dos gráficos modificando o valor do parâmetro média para o valor desejado:

RC_<-function(tipo="bilateral",x_min=NA,x_max=NA, media, desvpad, alpha,media_){
  x<-seq(x_min,x_max,0.1)
  if (tipo == "bilateral"){
    regiao1=seq(x_min,qnorm(p=alpha/2, mean=media_, sd=desvpad),0.001)
    regiao2=seq(qnorm(p=1-alpha/2, mean=media_, sd=desvpad),x_max,0.001)
    cord.x1 <- c(min(regiao1),regiao1,max(regiao1))
    cord.x2 <- c(min(regiao2),regiao2,max(regiao2))
    cord.y1 <- c(0,dnorm(regiao1,mean=media,sd=desvpad),0) 
    cord.y2 <- c(0,dnorm(regiao2,mean=media,sd=desvpad),0) 
    curve(dnorm(x,mean=media,sd=desvpad),xlim=c(x_min,x_max),xlab="",ylab="",xaxs="i",yaxs="i",lwd=2, xaxt='n') 
  polygon(cord.x1,cord.y1,col='lightblue3')
  polygon(cord.x2,cord.y2,col='lightblue3')
  lines(x=c(media,media),y=c(0,dnorm(media,media,desvpad)),col="darkgray",lty=2)
  axis(side=1,at = c(qnorm(p=1-alpha/2, mean=media_, sd=desvpad), media_, qnorm(p=alpha/2, mean=media_, sd=desvpad)), 
       labels = round(c(qnorm(p=1-alpha/2, mean=media_, sd=desvpad), media_, qnorm(p=alpha/2, mean=media_, sd=desvpad)),3))
  }
  else if (tipo == "superior"){
    regiao2=seq(qnorm(p=1-alpha, mean=media_, sd=desvpad),x_max,0.001)
    cord.x2 <- c(min(regiao2),regiao2,max(regiao2))
    cord.y2 <- c(0,dnorm(regiao2,mean=media,sd=desvpad),0) 
    curve(dnorm(x,mean=media,sd=desvpad),xlim=c(x_min,x_max),xlab="",ylab="",xaxs="i",yaxs="i",lwd=2, xaxt='n') 
  polygon(cord.x2,cord.y2,col='lightblue3')
  lines(x=c(media,media),y=c(0,dnorm(media,media,desvpad)),col="darkgray",lty=2)
  axis(side=1,at = c(qnorm(p=1-alpha, mean=media_, sd=desvpad),media), 
       labels = round(c(qnorm(p=1-alpha, mean=media_, sd=desvpad),media),3))
  }
  else if (tipo == "inferior"){
    regiao1=seq(x_min,qnorm(p=alpha, mean=media_, sd=desvpad),0.001)
    cord.x1 <- c(min(regiao1),regiao1,max(regiao1))
    cord.y1 <- c(0,dnorm(regiao1,mean=media,sd=desvpad),0) 
    curve(dnorm(x,mean=media,sd=desvpad),xlim=c(x_min,x_max),xlab="",ylab="",xaxs="i",yaxs="i",lwd=2, xaxt='n') 
  polygon(cord.x1,cord.y1,col='lightblue3')
  lines(x=c(media,media),y=c(0,dnorm(media,media,desvpad)),col="darkgray",lty=2)
      axis(side=1,at = c(media,qnorm(p=alpha, mean=media_, sd=desvpad)), 
       labels = round(c(media,qnorm(p=alpha, mean=media_, sd=desvpad)),3))
  }
}

par(mfrow=c(6,1))
RC_(tipo="bilateral", alpha=0.01, media=500, desvpad=5, x_min=460,x_max=540,media_=500)
RC_(tipo="superior" , alpha=0.005, media=502, desvpad=5, x_min=460,x_max=540,media_=500)
RC_(tipo="superior" , alpha=0.005, media=510, desvpad=5, x_min=460,x_max=540,media_=500)
RC_(tipo="superior" , alpha=0.005, media=515, desvpad=5, x_min=460,x_max=540,media_=500)
RC_(tipo="inferior" , alpha=0.005, media=495, desvpad=5, x_min=460,x_max=540,media_=500)
RC_(tipo="inferior" , alpha=0.005, media=487, desvpad=5, x_min=460,x_max=540,media_=500) 

x=c(475,480,485,487,490,492,495,498,500,502,505,508,510,513,515,520,525)
plot(x,(1-sapply(x,function(mu){return(pnorm(limites[2],mean=mu,sd=sqrt(400/16))-pnorm(limites[1],mean=mu,sd=sqrt(400/16)))}))*100,type="b", ylab="", xlim=c(475,525),ylim=c(0,100))
par(new=T)
limites_100<-RC(tipo="bilateral", alpha=0.01, media=500, desvpad=sqrt(400/100), grafico = FALSE)
## RC:(-infinito; 494.848] + [505.152; +infinito)
plot(x,(1-sapply(x,function(mu){return(pnorm(limites_100[2],mean=mu,sd=sqrt(400/100))-pnorm(limites_100[1],mean=mu,sd=sqrt(400/100)))}))*100,type="l", ylab="", lty=2, xlim=c(475,525), ylim=c(0,100))

Figura 12.9: Curva de poder para o Exemplo 12.2.

Exemplo 12.4

Note que, para a curva tracejada, que representa o poder para amostras de tamanho 100, os limites da RC precisam ser recalculados e seus novos valores são 494.8 e 505.2, pois a variância da média amostral também mudou.

limites_100<-RC(tipo="bilateral", alpha=0.01, media=500, desvpad=sqrt(400/100), grafico = FALSE)
## RC:(-infinito; 494.848] + [505.152; +infinito)

Exemplo 12.5

Sob \(H_0\), temos \(\hat{p}\sim N(0.6,0.24/200)\). Assim, o que precisamos fazer para encontrar o valor-p é utilizar a função pnorm para calcular o valor da probabilidade para um determinado valor \(\hat{p}_c\) desejado:

val_p=pnorm(0.52, 0.6,sqrt(0.24/200))

e com o valor-p calculado, basta utilizar a função RC para construir a Figura 12.11:

RC(tipo = "inferior", x_min = 0.5,x_max=0.7,media = 0.6,desvpad = sqrt(0.24/200),alpha = val_p)

## RC:(-infinito; 0.52]
## [1] 0.52

Figura 12.11: Determinação do valor-p para o Exemplo 12.5

Exemplo 12.7:

Queremos testar \(H_0:\mu=300\) vs \(H_1:\mu\ne 300\):
Sob \(H_0\), temos que \(\overline{X}\sim N(300,30^2/10)\), com \(\overline{x}=314\).
Dessa forma, basta calcular o valor da probabilidade acima de 314 minutos e multiplicar por dois, dado que distribuição é normal, supondo \(H_0\) verdadeira:

(1-pnorm(314,300,30/sqrt(10)))*2
## [1] 0.14002

Exemplo 12.8

No teste para a variância, utilizamos a distribuição de Qui-quadrado. Queremos testar:

  • \(H_0:\sigma^2=100\)
  • \(H_1:\sigma^2\ne 100\)

Apesar de termos uma outra distribuição associada ao teste, o procedimento é o mesmo, isto é, basta utilizar a função qchisq para calcular a região crítica e decidir de acordo com o valor amostral observado:

#Calculo da estatistica observada:  
q_obs=15*169/100
q_obs
## [1] 25.35
#Calculo da RC: 
alpha=0.05 # nivel de significancia desejado
n=16 # numero de pacotes

qc_inf=qchisq(p = alpha/2,df=n-1) #valor critico da regiao inferior
qc_sup=qchisq(p = 1- alpha/2,df=n-1) #valor critico da regiao superior

#Valores críticos: 
c(qc_inf,qc_sup)
## [1]  6.2621 27.4884
# Plotando o gráfico:
x_min=0
x_max=35
x<-seq(x_min,x_max,0.1)
regiao1=seq(0,qchisq(p=alpha/2, df=n-1),0.001)
regiao2=seq(qchisq(p=1-alpha/2, df=n-1),x_max,0.001)
cord.x1 <- c(min(regiao1),regiao1,max(regiao1))
cord.x2 <- c(min(regiao2),regiao2,max(regiao2))
cord.y1 <- c(0,dchisq(regiao1,df=n-1),0) 
cord.y2 <- c(0,dchisq(regiao2,df=n-1),0) 
curve(dchisq(x,df=n-1),xlim=c(x_min,x_max),xlab="",ylab="",xaxs="i",yaxs="i",lwd=2, xaxt='n') 
polygon(cord.x1,cord.y1,col='orange2')
polygon(cord.x2,cord.y2,col='orange2')
axis(side=1,at = c(qchisq(p=alpha/2,df=n-1), qchisq(p=1-alpha/2,df=n-1)), 
labels = round(c(qchisq(p=alpha/2,df=n-1), qchisq(p=1-alpha/2,df=n-1)),3))

Figura 12.12: Região crítica para o teste do Exemplo 12.8.

Exemplo 12.9

Como vimos no capítulo anterior, para calcular o intervalo de confiança, basta fazermos a conta dos seus limites utilizando as funções da distribuição desejada:

x<-c(253,187,96,450,320,105)
s_o<-var(x)
#Variancia observada:
s_o
## [1] 18460
alpha=0.1 # nivel de significancia desejado
n=6

qc_inf=qchisq(p = alpha/2,df=n-1) #valor critico da regiao inferior
qc_sup=qchisq(p = 1- alpha/2,df=n-1) #valor critico da regiao superior

#Valores críticos: 
c(qc_inf,qc_sup)
## [1]  1.1455 11.0705
pchisq(qc_sup,df=n-1)-pchisq(qc_inf,df=n-1)
## [1] 0.9

Assim, utilizando a desigualdade (12.7):
\[ \frac{(n-1)S^2}{\chi^2_2}\le \sigma^2 \le \frac{(n-1)S^2}{\chi^2_1} \]

os limites são calculados no R com : 8337, 8.057710^{4}

IC(\(\sigma^2\),90%)=[8337 , 8.057710^{4}]

Exemplo 12.10

Neste caso, queremos testar :

  • \(H_0:\mu=30\)
  • \(H_0:\mu > 30\)

e como \(\sigma\) é desconhecido, então \(\overline{X}\sim t\)

Temos que \(\overline{x}=31.5mg\), com n=25 e desvio padrão de 3mg. Para calcular o valor crítico \(t_c\), utilizamos a função qt:

t_c=qt(p=1-0.05,df=24)
t_c
## [1] 1.7109
# Valor observado da estatística t:
T=sqrt(25)*(31.5-30)/3
T
## [1] 2.5

Logo, como a região crítica é (1.71088,\(+\infty\)) e T pertence a esta região, então rejeitamos \(H_0\).
O valor-p pode ser calculado da seguinte forma:

1-pt(T,df=24)
## [1] 0.0098271

Finalmente, o IC para \(\mu\) é calculado da mesma forma como anteriormente:

alpha=0.05
n=25
lim_inf=31.5+qt(alpha/2,df=n-1)*(3/sqrt(n))
lim_sup=31.5+qt(1-alpha/2,df=n-1)*(3/sqrt(n))
print(paste("IC(mu;",1-alpha,")=[",round(lim_inf,2),";",round(lim_sup,2),"]"))
## [1] "IC(mu; 0.95 )=[ 30.26 ; 32.74 ]"

Capítulo Anterior | Introdução | Próximo Capítulo