Skip to content

Commit 1e328f5

Browse files
committed
materiais novos
1 parent c00aa1c commit 1e328f5

File tree

6 files changed

+306
-0
lines changed

6 files changed

+306
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
2+
# Na ultima eleição a candidata recebeu 53% dos votos
3+
4+
# 4 anos depois, fizemos uma pesquisa e em uma amostra de tamanho 10000
5+
# ela recebeu 51% das intenções de voto. Essa queda
6+
# é motivo pra preocupação ou pode ser um "acaso"
7+
8+
prop.test(
9+
n = 10000,
10+
x = 5100,
11+
p = 0.53)
12+
13+
x_barra = 5100/10000
14+
desv_pad_x_barra = sqrt(x_barra*(1-x_barra))/sqrt(10000)
15+
16+
# valor p deu muito pequeno, o que quer dizer que não tinha muito espaço
17+
# pra ser pior o resultado do que foi. é motivo pra se preocupar o 53 caiu sim...
18+
19+
library(infer)
20+
library(tidyverse)
21+
22+
tabela_exemplo <- tibble(
23+
voto = c(rep("candidata A", 5100), rep("candidato B", 4900))
24+
)
25+
26+
prop_test(
27+
tabela_exemplo,
28+
voto ~ NULL,
29+
p = 0.53
30+
)
31+
32+
dados_brutos <- tabela_exemplo |>
33+
specify(response = voto, success = "candidata A")
34+
35+
sampling_dist <- tabela_exemplo |>
36+
specify(response = voto, success = "candidata A") |>
37+
assume("z")
38+
39+
estatistica_do_teste <- dados_brutos |>
40+
hypothesise(null = "point", p = 0.52) |>
41+
calculate(stat = "z")
42+
43+
sampling_dist |>
44+
visualise() +
45+
shade_p_value(estatistica_do_teste, direction = "left")

exemplos_de_aula/10.teste_t.R

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
library(tidyverse)
2+
3+
dados <- readxl::read_excel("exemplos_de_aula//BD_CIS0684.xlsx")
4+
5+
dados |>
6+
filter(
7+
sexo == "Feminino"
8+
) |>
9+
t_test(idade1 ~ NULL, mu = 41)
10+
11+
# teste de comparacao de grupos -------------------------------------------
12+
13+
# H_0: os homens e mulheres tem a mesma idade
14+
# M, H. M-H = 0
15+
16+
# media amostral das mulheres - media amostral dos homens
17+
# eu faco medias dos desvio padrao das populações e
18+
# minha "estatistica" fica:
19+
20+
# (media amostral das mulheres - media amostral dos homens)
21+
# / (sobre)
22+
# raiz(desvio padrao das mulheres + desvio padrao dos homens)/raiz(2)
23+
24+
dados |>
25+
t_test(idade1 ~ sexo, alternative = "less")
26+
27+
# nao temos evidência para rejeitar a hipotese de que as idades sao iguais
28+
29+
dados |>
30+
prop_test(p32c ~ sexo, success = "Sim")
31+
32+
dados |>
33+
t_test(p32c ~ sexo)
34+
# isso aqui dá erro porque eu preciso de um desvio padrao no teste t, que é estimado
35+
36+
# fazendo graficos --------------------------------------------------------
37+
38+
dados_brutos <- dados |>
39+
group_by(sexo) |>
40+
sample_n(4) |>
41+
specify(idade1 ~ sexo)
42+
43+
estatistica <- dados_brutos |>
44+
calculate(stat = "t")
45+
46+
dados_brutos |>
47+
assume("t") |>
48+
visualise() +
49+
shade_p_value(estatistica, direction = "right")
50+
51+
52+
# -------------------------------------------------------------------------
53+
54+
# Teste chi quadrado de independência
55+
56+
dados_brutos <- dados |>
57+
filter(idade1 < 45) |>
58+
specify(p32c ~ idade, success = "Sim") |>
59+
hypothesise(null = "independence")
60+
61+
dados |> count(idade)
62+
63+
dados |>
64+
count(idade, p32c) |>
65+
spread(p32c, n)
66+
67+
glm(factor(p32c) ~ idade, data = dados, family = "binomial") |>
68+
summary()
69+
70+
estatistica_chi_quadrado <- dados_brutos |>
71+
calculate(stat = "Chisq")
72+
73+
dados_brutos |>
74+
assume("Chisq") |>
75+
visualise() +
76+
shade_p_value(estatistica_chi_quadrado, direction = "right")
77+
78+
dados |>
79+
prop_test(p32c ~ idade, success = "Sim")
80+
81+
chisq_test(dados, p32c ~ idade)
82+
83+
# mais testes -------------------------------------------------------------
84+
85+
# prop_test
86+
# sempre vai ser para comparar proporcoes entre grupos ou proporcoes
87+
# em proporcoes de uma coluna com um valor fixo
88+
89+
# t_test
90+
# sempre vai ser para comparar valores numeros entr grupos ou
91+
# a media/sd/mediana de uma coluna com um valor fixo
92+
93+
# pra outros casos:
94+
# hypothetize pra definir a hipótese nula +
95+
# assume pra definir a estatistica (algumas hipoteses só funcionam com certas 'assume') +
96+
# calculate da estatistica e plota o gráfico
97+
98+
99+
dados |>
100+
specify(p32c ~ idade*sexo, success = "Sim") |>
101+
hypothesise(null = "independence")
102+
103+
dados |>
104+
prop_test(p32c ~ NULL, z = 0, p = 0.1)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Untitled"
3+
output: html_document
4+
date: "2024-09-23"
5+
---
6+
7+
$$\text{Percentual da pesquisa} \sim \text{(dist amostral)} Normal\left(p, \sqrt{\frac{p(1-p)}{n}}\right)$$
8+
O intervalo sempre vai ser:
9+
$$\left[p - 2\sqrt{\frac{p(1-p)}{n}}, p + 2\sqrt{\frac{p(1-p)}{n}}\right]$$
10+
Como p*(1-p) é menor que 1/4 sempre o MAIOR intervalo possivel, pra qualquer p (um intervalo que vai conter todos os outros) é:
11+
12+
$$\left[\bar{x} - 2\sqrt{\frac{1/4}{n}}, \bar{x} + 2\sqrt{\frac{1/4}{n}}\right] = \left[\bar{x} - 2\frac{1/2}{\sqrt{n}}, \bar{x} + 2\frac{1/2}{\sqrt{n}}\right] = $$
13+
14+
$$\left[\bar{x}-\frac{1}{\sqrt{n}}, \bar{x}+\frac{1}{\sqrt{n}}\right]$$
15+
16+
Digamos que eu queira que o "erro" do intervalo, pra mais ou pra menos, seja 1 por cento. Eu posso escolher um tamanho de amostra fazendo:
17+
18+
$$\frac{1}{\sqrt{n}} = 1\% \implies \frac{1}{\sqrt{n}} = \frac{1}{100} \implies \sqrt{n} = 100 = 10^2 \implies n = 10^4 = 10000$$
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
library(infer)
2+
3+
sample_mean <- dados %>%
4+
specify(response = p32c, success = "Sim") %>%
5+
calculate(stat = "prop")
6+
# esse aqui ^ você consegue ler o código
7+
# ele diz o que tá fazendo
8+
9+
#mean(dados$p32c == "Sim")
10+
#sum(dados$p32c == "Sim")/2079
11+
# esse aqui vc tem que interpretar o código ^
12+
13+
# define a sampling distribution
14+
sampling_dist <- dados %>%
15+
specify(response = p32c, success = "Sim") %>%
16+
assume("z")
17+
# assume 'z' eu tô mandando o R entender
18+
# que pra tudo que seguir eu quero que seja
19+
# considerada uma distribuição teórica normal
20+
21+
# get the confidence interval---note that the
22+
# point estimate is required here
23+
ci <- get_confidence_interval(
24+
sampling_dist,
25+
level = .95,
26+
point_estimate = sample_mean
27+
)
28+
29+
sqrt(sample_mean*(1-sample_mean))/sqrt(2079)
30+
31+
sampling_dist |>
32+
visualise() +
33+
shade_confidence_interval(ci)
34+
35+
# distribuição t ----------------------------------------------------------
36+
37+
library(infer)
38+
39+
sample_mean <- dados %>%
40+
specify(response = idade1) %>%
41+
calculate(stat = "mean")
42+
43+
# define a sampling distribution
44+
sampling_dist <- dados %>%
45+
specify(response = idade1) %>%
46+
assume("t")
47+
48+
# get the confidence interval---note that the
49+
# point estimate is required here
50+
ci <- get_confidence_interval(
51+
sampling_dist,
52+
level = .95,
53+
point_estimate = sample_mean
54+
)
55+
56+
sampling_dist |>
57+
visualise() +
58+
shade_confidence_interval(ci)
59+
60+
# distribuicao t amostra pequena ------------------------------------------
61+
62+
library(infer)
63+
64+
sample_mean <- dados %>%
65+
sample_n(5) |>
66+
specify(response = idade1) %>%
67+
calculate(stat = "mean")
68+
69+
# define a sampling distribution
70+
sampling_dist <- dados %>%
71+
sample_n(5) |>
72+
specify(response = idade1) %>%
73+
assume("t")
74+
75+
# get the confidence interval---note that the
76+
# point estimate is required here
77+
ci <- get_confidence_interval(
78+
sampling_dist,
79+
level = .95,
80+
point_estimate = sample_mean
81+
)
82+
83+
sampling_dist |>
84+
visualise() +
85+
shade_confidence_interval(ci)
86+

exemplos_de_aula/t_test.R

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
library(tidyverse)
2+
3+
dados <- readxl::read_excel("script/BD_CIS0684.xlsx")
4+
5+
dados |>
6+
filter(
7+
sexo == "Feminino"
8+
) |>
9+
prop_test(p32c ~ NULL, p = 0.3, success = "Sim")
10+
11+
dados |>
12+
filter(
13+
sexo == "Feminino"
14+
) |>
15+
t_test(idade1 ~ NULL, mu = 42)
16+
17+
# a diferença entre esses dois testes é que
18+
# o teste t calcula o valor-p (compara a média observada
19+
# com o que esperaria de outras amostras) a partir
20+
# de uma distribuição t de student, com mais
21+
# dispersão do que a normal
22+
23+
dados |>
24+
filter(
25+
sexo == "Feminino"
26+
) |>
27+
t_test(idade1 ~ NULL, mu = 41)
28+
29+
30+
# plotar o teste-t --------------------------------------------------------
31+
32+
modelo <- dados |>
33+
filter(sexo == "Feminino") |>
34+
specify(response = idade1)
35+
36+
estatistica <- modelo |>
37+
hypothesize(null = "point", mu = 41) |>
38+
calculate(stat = "t")
39+
40+
modelo |>
41+
assume("t") |>
42+
visualise() +
43+
shade_p_value(obs_stat = estatistica, direction = "both")
44+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# duas amostras -----------------------------------------------------------
2+
3+
prop_test(dados,
4+
p32c ~ sexo,
5+
order = c("Masculino", "Feminino"))
6+
7+
t_test(dados,
8+
idade1 ~ sexo,
9+
order = c("Masculino", "Feminino"))

0 commit comments

Comments
 (0)