Queremos saber se os membros da OPEC tem nível médio de riqueza diferente dos não membros
H0: Os Países membros da OPEC tem a mesma média de riqueza que os não membros.
H1: Os Países membros da OPEC tem nível médio de riqueza diferente dos não membros.
Para responder esta questão nós vamos utilizar o teste t-student para duas populações, tendo em vista que este é o teste mais indicado. No entanto, precisamos que as duas variáveis sejam normalmente distribuídas em ambas as populações.
dt = read.csv("http://rfs.kvasaheim.com/data/gdp.csv")
attach(dt)
Vamos utilizar o teste de Shapiro-Wilk para verificar a normalidade dos dados, bem como plotar o gráfico.
shapiroTest(gdpcap~OPEC)
## $Title
## [1] "Shapiro-Wilk Test"
##
## $adjustment
## [1] "Bonferroni (2)"
##
## $results
## Level p.value
## 1 Member 1.043307e-03
## 2 Non-Member 2.541959e-13
De acordo com o teste de Shapiro-Wilk, nenhuma população é Normal, p-valor < 0.05. Por causa disso, nós vamos realizar o teste de hipóteses usando o teste de Mann-Whitney.
membros <- dt[(OPEC == "Member"),]
attach(membros)
## The following objects are masked from dt:
##
## corruption, democracy, gdpcap, govt, hig, OPEC, region, scode2,
## state
qqnorm(gdpcap)
qqline(gdpcap)
detach(membros)
naomem <- dt[(OPEC == "Non-Member"),]
attach(naomem)
## The following objects are masked from dt:
##
## corruption, democracy, gdpcap, govt, hig, OPEC, region, scode2,
## state
qqnorm(gdpcap)
qqline(gdpcap)
detach(naomem)
attach(dt)
## The following objects are masked from dt (pos = 3):
##
## corruption, democracy, gdpcap, govt, hig, OPEC, region, scode2,
## state
wilcox.test(gdpcap~OPEC, conf.int = TRUE)
##
## Wilcoxon rank sum test with continuity correction
##
## data: gdpcap by OPEC
## W = 1321, p-value = 0.06619
## alternative hypothesis: true location shift is not equal to 0
## 95 percent confidence interval:
## -500 11700
## sample estimates:
## difference in location
## 5134.789
De acordo com o teste de Mann-Whitney, não há evidência significativa de que a filiação à OPEP esteja associada a níveis médios de riqueza mais altos ou mais baixos. Portanto, não rejeitamos a hipótese nula.
boxplot(gdpcap~OPEC, ylab = "GDP per Capita", xlab = "OPEC Membership")
### 2º) Corrupção na OPEC
Queremos saber se os membros da OPEC tem nível médio de corrrupção que os países não membros.
H0: Os membros e não membros da OPEC tem os mesmos níveis médios de corrupção.
H1: Países membros da OPEC tem níveis médios de corrupção diferentes dos não membros.
Para responder essa questão, vamos utilizar o t-test tendo em vista que é o mais adequado. No entanto, precisamos testar a normalidade dos dados
Vamos utilizar o teste de Shapiro-Wilk para verificar a normalidade dos dados, bem como plotar o gráfico.
shapiroTest(corruption~OPEC)
## $Title
## [1] "Shapiro-Wilk Test"
##
## $adjustment
## [1] "Bonferroni (2)"
##
## $results
## Level p.value
## 1 Member 2.778506e-02
## 2 Non-Member 1.309305e-09
De acordo com o teste de Shapiro-Wilk, nenhuma população é normal. O p-value foi menor que o alpha de 5%, rejeitamos a hipótese nula que é a normalidade dos dados. Diante disso, nós vamos utilizar o Mann-Whitney test.
qqnorm(corruption)
qqline(corruption)
wilcox.test(corruption~OPEC, confint=TRUE)
##
## Wilcoxon rank sum test with continuity correction
##
## data: corruption by OPEC
## W = 1309, p-value = 0.07699
## alternative hypothesis: true location shift is not equal to 0
De acordo com o teste de Mann-Whitney, não há evidência significativa de que a filiação à OPEC esteja associada a níveis médios de corrupção mais altos ou mais baixos, portanto não rejeitamos a hipótese nula.
boxplot(corruption~OPEC, ylab = "Corruption Level", xlab = "OPEC Membership")
Desejamos investigar se os membros da OPEC tem um menor nível de democracia do que os não membros.
H0: Países membros e não membros da OPEC tem os mesmos níveis médios de democracia.
H1: Países membros da OPEC tem um menor nível médio de democracia que os não membros.
#### Escolha do teste
Para responder essa questão, vamos utilizar o t-test tendo em vista que é o mais adequado. No entanto, precisamos testar a normalidade dos dados
shapiroTest(democracy~OPEC)
## $Title
## [1] "Shapiro-Wilk Test"
##
## $adjustment
## [1] "Bonferroni (2)"
##
## $results
## Level p.value
## 1 Member 1.881502e-01
## 2 Non-Member 1.005925e-12
De acordo com o teste de Shapiro-Wilk, a população não membro da OPEC não tem distribuição normal. Por isso, achamos mais adequado usar o teste de Mann-Whitney.
qqnorm(democracy)
qqline(democracy)
Como argumentos do teste, informamos o campo democracyseparado por OPEC coluna que classifica membros e não membros, e a hipótese alternativa less.
wilcox.test(democracy~OPEC, alternative = "less", conf.int=TRUE)
##
## Wilcoxon rank sum test with continuity correction
##
## data: democracy by OPEC
## W = 379.5, p-value = 0.0002253
## alternative hypothesis: true location shift is less than 0
## 95 percent confidence interval:
## -Inf -3.999991
## sample estimates:
## difference in location
## -6.999977
De acordo com o teste de Mann-Whitney, há evidências significativas de que a adesão à OPEP está associada a níveis médios de democracia mais baixos. Na verdade, estamos 95% confiantes de que a diferença média é de pelo menos 4 pontos.
#### Boxplot
boxplot(democracy~OPEC, ylab="Democracy Level", xlab="OPEC Membership")
detach(dt)
Gostariamos de determinar se os estados ocidentais têm um nível de democracia MAIOR do que os estados não ocidentais.
H0: Os níveis médios de democracia são iguais entre os estados ocidentais e não ocidentais.
H1: Os estados ocidentais tem um nível médio de democracia maior do que os não ocidentais.
Para responder essa questão, vamos utilizar o t-test tendo em vista que é o mais adequado. No entanto, precisamos testar a normalidade dos dados.
shapiroTest(democracy~(region=="Western"))
## $Title
## [1] "Shapiro-Wilk Test"
##
## $adjustment
## [1] "Bonferroni (2)"
##
## $results
## Level p.value
## 1 FALSE 7.828212e-08
## 2 TRUE 2.615694e-11
De acordo com o teste de Shapiro, p-value < 0.05, tanto a população ocidental quanto a não ocidental, não seguem uma distribuição normal. Devido a isto, vamos usar o teste de hipóteses Mann-Whitney.
western <- dt[(region == "Western"),]
attach(western)
## The following objects are masked from dt:
##
## corruption, democracy, gdpcap, govt, hig, OPEC, region, scode2,
## state
qqnorm(democracy)
qqline(democracy)
detach(western)
attach(dt)
## The following objects are masked from dt (pos = 3):
##
## corruption, democracy, gdpcap, govt, hig, OPEC, region, scode2,
## state
nwestern <- dt[!(region == "Western"),]
attach(nwestern)
## The following objects are masked from dt (pos = 3):
##
## corruption, democracy, gdpcap, govt, hig, OPEC, region, scode2,
## state
## The following objects are masked from dt (pos = 4):
##
## corruption, democracy, gdpcap, govt, hig, OPEC, region, scode2,
## state
qqnorm(democracy)
qqline(democracy)
detach(nwestern)
attach(dt)
## The following objects are masked from dt (pos = 3):
##
## corruption, democracy, gdpcap, govt, hig, OPEC, region, scode2,
## state
##
## The following objects are masked from dt (pos = 4):
##
## corruption, democracy, gdpcap, govt, hig, OPEC, region, scode2,
## state
wilcox.test(democracy~(region=="Western"), alternative="less",conf.int=TRUE)
##
## Wilcoxon rank sum test with continuity correction
##
## data: democracy by region == "Western"
## W = 919, p-value = 4.457e-13
## alternative hypothesis: true location shift is less than 0
## 95 percent confidence interval:
## -Inf -3.999958
## sample estimates:
## difference in location
## -4.999951
boxplot(democracy~(region=="Western"), ylab = "Nível de democracia", xlab = "Estados do Ocidente")
### BOOTSTRAP
A ideia do bootstrap é muito simples, por exemplo: Nós temos uma única amostra de n medições, mas podemos fazer a amostragem de muitas maneiras, desde que permita-se que alguns valores apareçam mais de uma vez e que outras amostras sejam deixadas de fora (ou seja, amostragem com substituição). Calculamos a média da amostra muitas vezes, uma para cada amostragem dos dados e, em seguida, obtemos o intervalo de confiança olhando para os valores máximos e mínimos extremos das médias estimadas usando uma função chamada quantil para extrair o intervalo que desejamos (por exemplo um intervalo de 95% é especificado usando c (0,0275, 0,975) para localizar os limites inferior e superior).
head(dt)
## scode2 state region democracy govt OPEC hig
## 1 af Afghanistan Islamic -10 Autocracy Non-Member 1.3
## 2 al Albania Western 7 Democracy Non-Member 3.2
## 3 dz Algeria Islamic 2 Anocracy Member 2.8
## 4 ao Angola Africa -2 Anocracy Member 1.9
## 5 ar Argentina Latin America 8 Democracy Non-Member 2.9
## 6 am Armenia Other 5 Anocracy Non-Member 2.7
## corruption gdpcap
## 1 8.7 800
## 2 6.8 6300
## 3 7.2 7000
## 4 8.1 8900
## 5 7.1 13800
## 6 7.3 5900
# Primeiro vamos extrair uma amostra de 60 elementos da renda per capta. (Então vamos supor que só temos 60 observações)
set.seed(3232)
rendapc <- dt[sample(1:179,30),9]
sort(rendapc)
## [1] 800 900 1100 1600 1900 2300 2300 2400 2400 2600 2800 3200
## [13] 3800 4100 4400 8100 8200 10400 12900 13900 17200 18700 19400 21800
## [25] 23100 23900 25100 29800 36000 54100
rendapc
## [1] 29800 2300 18700 23900 12900 54100 36000 8200 1100 900 23100 1600
## [13] 800 4400 2400 2600 17200 2400 1900 19400 3200 21800 10400 3800
## [25] 8100 25100 2800 2300 13900 4100
Devemos simular tamanhos de amostra (k) entre 5 e 30, e para cada tamanho de amostra devemos tomar 10.000 amostras independentes de nossos dados (o vetor chamado de valores), usando a função chamada amostra com substituição.
plot(c(0,30), c(0,30000), type = "p",xlab = "Tamanho da amostra", ylab = "Intervalo de confiança")
for(k in seq(5,30,3)){
a <- numeric(10000)
for (i in 1:10000) {
a[i] <- mean(sample(rendapc,k,replace = T))
}
points(c(k,k),quantile(a,c(0.25,0.975)),type = "b",pch=21,bg="red")
}
# Linha azul no gráfico do IC calculado a partir da normal
xv <- seq(5,30,3)
yv <- mean(rendapc)+1.96*sqrt(var(rendapc)/xv)
lines(xv,yv,col="blue")
yv <- mean(rendapc)-1.96*sqrt(var(rendapc)/xv)
lines(xv,yv,col="blue")
# Linha pontilhada do IC calculado t.student
yv <- mean(rendapc)-qt(.975,xv-1)*sqrt(var(rendapc)/xv)
lines(xv,yv,lty=2,col="green")
yv <- mean(rendapc)+qt(.975,xv-1)*sqrt(var(rendapc)/xv)
lines(xv,yv,lty=2,col="green")
quantile(a,c(0.025,0.975))
## 2.5% 97.5%
## 7682.672 16813.966
media <- mean(rendapc)
desv <- sd(rendapc)
# Cálculo do intervalo de confiança
minimo <- media - 1.96*(desv/sqrt(60))
maximo <- media + 1.96*(desv/sqrt(60))
minimo
## [1] 8735.291
maximo
## [1] 15211.38
Para o intervalo superior, observamos que os intervalos bootstrap (linhas verticais e símbolos vermelhos) ficam entre o normal (a linha azul inferior) e a distribuição t de Student (a linha verde pontilhada maior). Para o intervalo inferior, no entanto, os intervalos de bootstrap são bastante diferentes.
Isso ocorre devido à distorção exibida por esses dados. Valores muito pequenos da resposta são substancialmente menos prováveis do que o previsto pelas distribuições simétricas normal (linha azul) ou t de Student (linha verde pontilhada).
Para intervalos de confiança de pequenas amostras usando a distribuição t de Student, o tamanho da amostra, n, entra na equação duas vezes: uma vez como denominador na fórmula para o erro padrão da média, e novamente como um determinante do quantil de t distribuição qt (0,975, n-1). É por isso que a diferença entre os intervalos de confiança normal e t de Student aumenta à medida que o tamanho da amostra diminui.