Inferência Estatística

R

Gilberto Sassi

IME/UFBA - OBEC

A linguagem R

Use o editor de texto certo

Durante o curso

  • Usaremos nas aulas: posit.cloud.
  • Recomendamos instalar e usar R com versão pelo menos 4.1: cran.r-project.org.
  • usaremos o framework (pacote) tidyverse e o pacote statBasics:
    • Instalação: install.packages("tidyverse")
    • Instalação: install.packages("statBasics")

Na sua casa ou trabalho

Parênteses 1: guia de estilo no R

O nome de um objeto precisa ter um significado. O nome deve indicar e deixar claro o que este objeto é ou faz.

  • Use a convenção do R:
    • Use apenas letras minúsculas, números e underscore (comece sempre com letras minúsculas).
    • Nomes de objetos precisam ser substantivos e precisam descrever o que este objeto é ou faz (seja conciso, direto e significativo).
    • Evite ao máximo os nomes que já são usados ( buit-in ) do R. Por exemplo: c.
    • Coloque espaço depois da vírgula.
    • Não coloque espaço antes nem depois de (). Exceção: Coloque um espaço antes e depois de () quando usar if, for ou while.
    • Coloque espaço entre operadores básicos: +, -, *, == e outros. Exceção: ^.

Para mais detalhes, consulte: guia de estilo do tidyverse.

Parênteses 2: estrutura de diretórios

Mantenha uma estrutura (organização) consistente de diretórios em seus projetos.

  • Sugestão de estrutura:
    • dados: diretório para armazenar seus conjuntos de dados.
      • brutos: dados brutos.
      • processados: dados processados.
    • codigo_fonte: código fonte do seu projeto.
    • figuras: figuras criadas no seu projeto.
    • output: outros arquivos que não são figuras.
    • legado: arquivos da versão anterior do projeto.
    • notas: notas de reuniões e afins.
    • relatorio (ou artigos): documento final de seu projeto.
    • documentos: livros, artigos e qualquer coisa que são referências em seu projeto.

Para mais detalhes, consulte esse guia do curso-r: diretórios e .Rproj.

A linguagem R

A linguagem R

A precursora da linguagem R: S.

  • R é uma linguagem derivada do S.
  • S foi desenvolvido em fortran por John Chambers em 1976 no Bell Labs.
  • S foi desenvolvido para ser um ambiente de análise estatística.
  • Filosofia do S: permitir que usuários possam analisar dados usando estatística com pouco conhecimento de programação.

História da linguagem R

  • Em 1991, Ross Ihaka e Robert Gentleman criaram o R na Nova Zelândia.
  • Em 1996, Ross e Robert liberam o R sob a licença “GNU General License”, o que tornou o R um software livre.
  • Em 1997, The Core Group é criado para melhorar e controlar o código fonte do R.

Motivos para usar R

  • Constante melhoramento e atualização.
  • Portabilidade (roda em praticamente todos os sistemas operacionais).
  • Grande comunidade de desenvolvedores que adicionam novas capacidades ao R através de pacotes.
  • Gráficos de maneira relativamente simples.
  • Interatividade.
  • Um grande comunidade de usuários (especialmente útil para resolução de problemas).

Onde estudar fora de aula?

Livros populares

Minha sugestão

Depois desse curso, comece por aqui: R for Data Science.

O que você pode fazer quando estiver em apuros?

  • consultar a documentação do R:
help(mean)
?mean
  • Peça ajuda a um programador mais experiente.
  • Use ferramentas de busca como o google e duckduckgo.com.
log("G")
  • Na ferramenta de busca, pesquise por
    Error in log("G"): non-numeric argument to mathematical function

Operações básicas

Soma

1 + 1
[1] 2

Substração

2 - 1
[1] 1

Multiplicação

3 * 3
[1] 9

Divisão

3 / 2
[1] 1.5

Potenciação

2^3
[1] 8

Operações básicas
Exercício

Qual o resultado das seguintes operações?

  1. \(5,32 + 7,99\)
  2. \(5,55 - 10\)
  3. \(3,33 \cdot 5,12\)
  4. \(\frac{1}{4,55}\)
  5. \(5^{1,23}\)

Pacotes na linguagem R

  • códigos criados pela comunidade
  • disponibilizados principalmente na plataforma cran.r-project.org

Instalação

install.packages(pacman)

Carregando pacotes

Pacotes precisam estar instalados

library(pacman)

Carregando pacotes com pacman

  • Se os pacotes estão instalados: pacman carrega os pacotes
  • Se os pacotes não estão instalados: pacman instala e depois carrega os pacotes
  • Omite mensagens dos pacotes
  • Pacote separados por vírgula
p_load(readxl, writexl, janitor, ggthemes, datacult, statBasics, tidyverse)

Funções na linguagem R

Função: é uma ação e tem os seguinte componentes na ordem:

  • nome da função
  • parênteses
  • argumentos posicionais
  • argumentos nomeados

\[ \texttt{resultado <- } \overbrace{\texttt{nome_funcao}}^{\textit{nome da função}} \overbrace{(}^{\textit{parênteses}} \overbrace{\texttt{valor1},\quad \texttt{valor2}}^{\textit{argumentos posicionais}},\quad \overbrace{\texttt{nome1 = valor3},\quad \texttt{nome2 = valor4}}^{\textit{argumentos nomeados}} \overbrace{)}^{\textit{parênteses}} \]

Exemplo

pnab_capitais <- read_xlsx('dados/brutos/pnab-capitais.xlsx', sheet=1)

Funções na linguagem R
Exercício

  • Obtenha ajuda para mean usando a função help.
  • Calcule o logaritmo de 10 na base 3 usando a função log.
  • Leia o conjunto de dados pnab-capitais.xlsx (está na pasta dados/brutos/) usando a função read_xlsx.

A função read_xlsx faz parte do readxl.

Como os dados estão organizado na R

  • Tipo de dados: caracter ou texto (character), número real (double), número inteiro (integer), número complexo (complex) e lógico (logical).
  • Estrutura de dados: atomic vector (a estrutura de dados mais básica no R), matrix, array, list e data.frame (tibble no tidyverse).
  • Estrutura de dados Homogênea: vector, matrix e array.
  • Estrutura de dados Heterôgenea: list e data.frame (tibble no tidyverse).

Neste curso, vamos usar vetores e dataframes.

O vetor

  • Agrupamento de valores de mesmo tipo em um único objeto.
  • Criação de vetor:
    • c(...)
    • primeiro_numero_inteiro:ultimo_numero_inteiro
    • seq(from = a, to = b, by = c).

Criando um vetor na mão

vetor_nomes  <- c("Gilberto", "Sassi")
vetor_nomes
[1] "Gilberto" "Sassi"   
vetor_num_int <- 1:2
vetor_num_int
[1] 1 2
vetor_num_real <- seq(from = 1, to = 2, by = 0.05)
vetor_num_real
 [1] 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45 1.50 1.55 1.60 1.65 1.70
[16] 1.75 1.80 1.85 1.90 1.95 2.00

Operações com vetores

  • Slicing: extrair parte de um vetor
  • Operações com vetores númericos (double, integer e complex): Operações básicas (operação, substração, multiplicação e divisão ) realizada em cada elemento do vetor.

Slicing

Selecionando todos os elementos entre o primeiro e o quinto.

letras <- c("a", "b", "c", "d", "e", "f", "g", "h", "i")
letras[1:5]
[1] "a" "b" "c" "d" "e"
letras[9]
[1] "i"

Operações numéricas com vetores numéricos

Adição (vetores númericos)

vetor_1 <- 1:5
vetor_2 <- 6:10
vetor_1 - vetor_2
[1] -5 -5 -5 -5 -5

Substração (vetores numéricos)

vetor_1 <- 1:5
vetor_2 <- 6:10
vetor_1 - vetor_2
[1] -5 -5 -5 -5 -5

Multiplicação (vetores numéricos)

vetor_1 <- 1:5
vetor_2 <- 6:10
vetor_1 * vetor_2
[1]  6 14 24 36 50

Divisão (vetores numéricos)

vetor_1 <- 1:5
vetor_2 <- 6:10
vetor_1 / vetor_2
[1] 0.1666667 0.2857143 0.3750000 0.4444444 0.5000000

Operações com vetoresExercício

Realize as seguintes operações envolvendo vetores:

  1. \(\begin{pmatrix} 1 & 2 & 3 \end{pmatrix} + \begin{pmatrix} 0,1 & 0,05 & 0,33 \end{pmatrix}\)
  2. \(\begin{pmatrix} 1 & 2 & 3 \end{pmatrix} - \begin{pmatrix} 0,1 & 0,05 & 0,33 \end{pmatrix}\)
  3. \(\begin{pmatrix} 1 & 2 & 3 \end{pmatrix} \cdot \begin{pmatrix} 0,1 & 0,05 & 0,33 \end{pmatrix}\)
  4. \(\begin{pmatrix} 1 & 2 & 3 \end{pmatrix} / \begin{pmatrix} 0,1 & 0,05 & 0,33 \end{pmatrix}\)

data frame (tibble)
A planilha da linguagem R

  • Implementação de Planilha Eletrônica na linguagem R
  • Cada coluna é uma variável e é um vetor
  • cada linha é uma observação
  • Suposição desse curso - a tabela está tidy:
    • Cada variável em uma única coluna
    • Cada unidade observacional em uma única linha
  • Criação de planilha eletrônica a mão tibble: tibble(...) e tribble(....).

As funçõestibble e tribble fazem parte do pacote tidyverse.

Construção um dataframe a mão

df <- tibble(
  nome = c("João", "Josué", "Joaquim", "José"),
  idade = c(20L, 21L, 23L, 32L),
  salario = c(1000.10,2000.20, 3000.30, 4000.40)
)
glimpse(df)
Rows: 4
Columns: 3
$ nome    <chr> "João", "Josué", "Joaquim", "José"
$ idade   <int> 20, 21, 23, 32
$ salario <dbl> 1000.1, 2000.2, 3000.3, 4000.4

Operações em data frame

Operações em um tibble

Algumas funções úteis para dataframe.
Código em R Descrição
head() Mostra as primeiras linhas de um tibble
tail() Mostra as últimas linhas de um tibble
glimpse() Impressão de informações básicas dos dados
operador $ Recupera uma coluna de dataframe
head(df, n = 2)
# A tibble: 2 × 3
  nome  idade salario
  <chr> <int>   <dbl>
1 João     20   1000.
2 Josué    21   2000.
tail(df, n = 2)
# A tibble: 2 × 3
  nome    idade salario
  <chr>   <int>   <dbl>
1 Joaquim    23   3000.
2 José       32   4000.
df$salario
[1] 1000.1 2000.2 3000.3 4000.4

Dataframe
Exercício

Realize as seguintes operações no dataset iris:

  • imprima um resumo sobre o dataset iris
  • pegue as 5 primeiras linhas de iris
  • pegue as 5 últimas linhas de iris
  • recupere a coluna Sepal.Length de iris

iris é toy dataset da linguagem: você pode usá-lo diretamente.

Valores especiais em R

Valor Descrição O que é Função para identificar
NA Not Available Valor faltante. is.na()
NaN Not a Number Resultado do cálculo indefinido. is.nan()
Inf Infinito Valor que excede o valor máximo que sua máquina aguenta. is.inf()
NULL Nulo Valor indefinido de expressões e funções (diferente de NaN e NA) is.null()

Importação e exportação de dados

Importação de planilha eletrônica: xlsx ou xls

  • Pacote: readxl
  • Funções:
    • read_xls: importação de arquivos .xls
    • read_xlsx: importação de arquivos .xlsx
  • Parêmetros:
    • path: caminho até o arquivo.
    • sheet: especifica a planilha do arquivo que será lida.

Para mais detalhes, consulte a documentação: documentação de read_xl.

Importação de planilha eletrônica: xlsx ou xls

Exemplo

personagens_starwars <- read_xlsx("dados/brutos/starwars.xlsx")
glimpse(personagens_starwars)
Rows: 87
Columns: 14
$ nome            <chr> "Luke Skywalker", "C-3PO", "R2-D2", "Darth Vader", "Le…
$ altura          <dbl> 172, 167, 96, 202, 150, 178, 165, 97, 183, 182, 188, 1…
$ massa           <dbl> 77.0, 75.0, 32.0, 136.0, 49.0, 120.0, 75.0, 32.0, 84.0…
$ cor_do_cabelo   <chr> "Loiro", NA, NA, "Nenhum", "Castanho", "Castanho, Cinz…
$ cor_da_pele     <chr> "Branca clara", "Ouro", "Branca, Azul", "Branca", "Cla…
$ cor_dos_olhos   <chr> "Azul", "Amarelo", "Vermelho", "Amarelo", "Castanho", …
$ ano_nascimento  <dbl> 19.0, 112.0, 33.0, 41.9, 19.0, 52.0, 47.0, NA, 24.0, 5…
$ sexo_biologico  <chr> "Macho", "Nenhum", "Nenhum", "Macho", "Fêmea", "Macho"…
$ genero          <chr> "Masculino", "Masculino", "Masculino", "Masculino", "F…
$ planeta_natal   <chr> "Tatooine", "Tatooine", "Naboo", "Tatooine", "Alderaan…
$ especie         <chr> "Humano", "Droide", "Droide", "Humano", "Humano", "Hum…
$ filmes          <chr> "A New Hope; The Empire Strikes Back; Return of the Je…
$ veiculos        <chr> "Snowspeeder; Imperial Speeder Bike", NA, NA, NA, "Imp…
$ naves_espaciais <chr> "X-wing; Imperial shuttle", NA, NA, "TIE Advanced x1",…

Importação de planilha eletrônica: xlsx ou xls

Exercício

  1. Importe a planilha pnab-capitais.xlsx na linguagem R sob o nome pnab_capitais.
  2. Importe a planilha pnab-estados.xlsx na linguagem R sob o nome pnab_estados.

comma separated value - csv

  • Planilha eletrônica sem formatação salva em arquivo de texto.
  • Usado para distribuição de dados públicos: IPEA, INEP, IBGE e outros.

Planilha eletrônica em formato .csv

Atenção nas diferenças nas unidades de medidas entre países

As unidades de medidas usadas no Brasil e EUA são diferentes.

BR EUA
separador decimal . ,
agrupador de milhar . ,
separador de colunas em arquivos .csv ; ,

  • Salário de João usando no BR: 10.000,33
  • Salário de João usando no EUA: 10,000.33

Importação de planilhas eletrônicas: csv

  • Pacote: tidyverse
  • Funções:
    • read_csv: importação de arquivos .csv - sistema imperial (EUA)
    • read_csv2: importação de arquivos .csv - sistema métrico (BR)
  • Parêmetros:
    • path: caminho até o arquivo.

Para mais detalhes, consulte a documentação: documentação.

Importação de planilha eletrônica: csv

Exemplo - sistema métrico

personagens_starwars <- read_csv2("dados/brutos/starwars_padrao_metrico.csv")
glimpse(personagens_starwars)
Rows: 87
Columns: 14
$ nome            <chr> "Luke Skywalker", "C-3PO", "R2-D2", "Darth Vader", "Le…
$ altura          <dbl> 172, 167, 96, 202, 150, 178, 165, 97, 183, 182, 188, 1…
$ massa           <dbl> 77.0, 75.0, 32.0, 136.0, 49.0, 120.0, 75.0, 32.0, 84.0…
$ cor_do_cabelo   <chr> "Loiro", NA, NA, "Nenhum", "Castanho", "Castanho, Cinz…
$ cor_da_pele     <chr> "Branca clara", "Ouro", "Branca, Azul", "Branca", "Cla…
$ cor_dos_olhos   <chr> "Azul", "Amarelo", "Vermelho", "Amarelo", "Castanho", …
$ ano_nascimento  <dbl> 19.0, 112.0, 33.0, 41.9, 19.0, 52.0, 47.0, NA, 24.0, 5…
$ sexo_biologico  <chr> "Macho", "Nenhum", "Nenhum", "Macho", "Fêmea", "Macho"…
$ genero          <chr> "Masculino", "Masculino", "Masculino", "Masculino", "F…
$ planeta_natal   <chr> "Tatooine", "Tatooine", "Naboo", "Tatooine", "Alderaan…
$ especie         <chr> "Humano", "Droide", "Droide", "Humano", "Humano", "Hum…
$ filmes          <chr> "A New Hope; The Empire Strikes Back; Return of the Je…
$ veiculos        <chr> "Snowspeeder; Imperial Speeder Bike", NA, NA, NA, "Imp…
$ naves_espaciais <chr> "X-wing; Imperial shuttle", NA, NA, "TIE Advanced x1",…

Exemplo - sistema imperial

personagens_starwars <- read_csv("dados/brutos/starwars_padrao_imperial.csv")
glimpse(personagens_starwars)
Rows: 87
Columns: 14
$ nome            <chr> "Luke Skywalker", "C-3PO", "R2-D2", "Darth Vader", "Le…
$ altura          <dbl> 172, 167, 96, 202, 150, 178, 165, 97, 183, 182, 188, 1…
$ massa           <dbl> 77.0, 75.0, 32.0, 136.0, 49.0, 120.0, 75.0, 32.0, 84.0…
$ cor_do_cabelo   <chr> "Loiro", NA, NA, "Nenhum", "Castanho", "Castanho, Cinz…
$ cor_da_pele     <chr> "Branca clara", "Ouro", "Branca, Azul", "Branca", "Cla…
$ cor_dos_olhos   <chr> "Azul", "Amarelo", "Vermelho", "Amarelo", "Castanho", …
$ ano_nascimento  <dbl> 19.0, 112.0, 33.0, 41.9, 19.0, 52.0, 47.0, NA, 24.0, 5…
$ sexo_biologico  <chr> "Macho", "Nenhum", "Nenhum", "Macho", "Fêmea", "Macho"…
$ genero          <chr> "Masculino", "Masculino", "Masculino", "Masculino", "F…
$ planeta_natal   <chr> "Tatooine", "Tatooine", "Naboo", "Tatooine", "Alderaan…
$ especie         <chr> "Humano", "Droide", "Droide", "Humano", "Humano", "Hum…
$ filmes          <chr> "A New Hope; The Empire Strikes Back; Return of the Je…
$ veiculos        <chr> "Snowspeeder; Imperial Speeder Bike", NA, NA, NA, "Imp…
$ naves_espaciais <chr> "X-wing; Imperial shuttle", NA, NA, "TIE Advanced x1",…

Importação de planilha eletrônica: csv

Exercício

  1. Importe a planilha editais-proprios-capitais-separador-virgula.csv na linguagem R sob o nome editais_proprios_capitais.
  2. Importe a planilha editais-proprios-estados.csv na linguagem R sob o nome editais_proprios_estados.

Exportação para planilha eletrônica

Salvar no formato .csv (sistema métrico)

write_csv2 é parte do pacote tidyverse.

write_csv2(dados_dentes, "dados/processados/nome.csv")

Salvar no formato .xlsx

write_xlsx é parte do pacote writexl.

write_xlsx(dados_dentes, "dados/processados/nome.xlsx")

Exportação para planilha eletrônica

Exercício

  1. Salvar o dataframe iris como uma planilha eletrônica em formato .csv sob o nome iris_novo.
  2. Salvar o dataframe cars como uma planilha eletrônica em formato .xlsx sob o nome carros.

cars é toy dataset da linguagem: você pode usá-lo diretamente.

O operador pipe
|>

O operador pipe
|>

Extensamente usado!

  • O valor do lado esquerdo vira primeiro argumento da função do lado direito.
  • Principal vantagem: simplifica a leitura e a documentação de funções compostas.


Executar

f(x, y)

é exatamente a mesma coisa que executar

x |> f(y)
log(sqrt(sum(x^2)))

é exatamente a mesma coisa que executar

x^2 |> sum() |> sqrt() |> log()

Leia a codificação como se fosse um texto literário

  • Operações são realizadas exatamente como lemos em português:
    • da esquerda para direita
    • de cima para baixo

Inferência Estatística

Inferência

Inferência Dedutiva

Argumentação e lógica para desenhar conclusões e predições.

Exemplo

  • Premissa: todas pessoas nascidas em território nacional tem direito a cidadania Brasileira.
  • Conclusão: a filha de Francisco nasceu em Salvador, logo ela tem direito a cidade Brasileira.

Inferência Indutiva

A partir de alguns casos, desenham-se conclusões e predições.

Inferência indutiva ou inferência estatística

Exemplo

Estudo de 96 entes federativos para análise do fomento às artes para todos os mais de 5 mil entes federativos do Brasil.

O que vamos ver nesse curso?

  • Probabilidade
  • Variável aleatória
  • Distribuições Binomial e Distribuição Normal
  • Uma população:
    • Intervalo de confiança \(z\) para proporção de sucesso
    • Teste de hipóteses \(t\) para a média
  • Duas populações:
    • Intervalo de confiança \(z\) para a diferença das proporções de sucesso
    • Teste de confinaç \(t\) para a diferença de médias

Probabilidade

Alguns conceitos

Controlamos o erro da generalização usando probabilidade.


  • Fenômeno ou Experimento aleatório: situações ou acontecimentos que não ser previstos antecipadamente e com certeza.
  • Espaço amostral: conjunto de todos os resultados de um fenômeno aleatório.
    • Notação matemática: \(\Omega\).
  • Ponto amostral: um elemento do espaço amostral.
    • Notação matemática: \(\omega\).
  • Evento: parte (subconjunto) do espaço amostral.
    • Notação matemática: letra maiúscula do alfabeto pt-BR.
  • Probabilidade de um evento \(A\): número entre 0 e 1 que representa a chance/plausabilidade/crença que um ponto amostral de \(A\) seja resultado do Experimento Aleatório.
    • Notação matemática: \(P(A)\).

Alguns conceitos
Exemplo

  • Fenômeno ou Experimento aleatório: lançamento de um dado de seis faces.
  • Espaço amostral: \(\Omega=\{\) face 1, face 2, face 3, face 4, face 5, face 6 \(\}\).
  • Ponto amostral: face 1.
  • Evento: \(A =\{\) face par \(\}\) = \(\{\) face 2, face 4, face 6 \(\}\).
  • Probabilidade de um evento A - \(P(A)\): 0,5.

  • Fenômeno determinístico: soltar pedra da mão.
  • Resultado: pela leis da gravidade, a pedra irá em direção ao chão.

Variável aleatória

Função

  • Pontos de \(A\) são conectado a um, e apenas um, ponto de B.
  • Notação matemática:
    • Função de \(A\) a \(B\): \(f: A \rightarrow B\).
      • \(A\): domínio
      • \(B\): contradomínio
    • Conjunto de todos números reais: \(\mathbb{R}\).
    • Conjunto de todos números inteiros: \(\mathbb{Z}\).

\(f:A \rightarrow B\)

O que é uma variável aleatória?

  • Variável aleatória é uma função \(X: \Omega \rightarrow \mathbb{R}\) com:
    • Domínio: espaço amostra
    • Contradomínio: números
    • Suporte: conjunto de números do contradomínio associados a um ponto amostral do domínio.
      • Notação matemática: \(\chi\)
      • Na prática, \(\chi\) é o conjunto de valores possíveis para uma variável aleatória

Ideia: associar números (ou intervalo de números) a probabilidade.

Variável aleatória.

Classificação de variável aleatória

Variável aleatória discreta

  • Suporte tem apenas números inteiros.
  • Geralmente, é resultado de contagem.
  • Calculamos probabilidade para números individuais.

Exemplo: número de propostas previstas no edital.

Variável aleatório contínua

  • Suporte é um intervalo de números reais.
  • Calculamos probabilidade para intervalo de números reais.

Exemplo: montante do edital.

Exemplo ingênio para fixação

  • Fenômeno aleatório: lançamento de um dado de seis faces.
  • Espaço amostral: \(\Omega = \{\) face 1, face 2, face 3, face 4, face 5, face 6 \(\}\).
  • Variável aleatória: \(X\)(face 1) = 1; \(X\)(face 2) = 2; \(X\)(face 3) = 3; \(X\)(face 4) = 4; \(X\)(face 5) = 5; \(X\)(face 6) = 6.
  • Suporte: \(\chi=\{\) 1, 2, 3, 4, 5, 6 \(\}\).
  • Variável aleatória discreta: \(P(X=1)=\frac{1}{6}\); \(P(X=2)=\frac{1}{6}\); \(P(X=3)=\frac{1}{6}\); \(P(X=4)=\frac{1}{6}\); \(P(X=5)=\frac{1}{6}\); \(P(X=6)=\frac{1}{6}\).

Como usar variável aleatória?

Existem diversas variáveis aleatórias (livros inteiros).

  1. Entenda os padrões e tendências da sua variável (coluna da planilha).
  2. Faça o match: escolha a melhor variável aleatória para os padrões e tendências descobertos.
  3. Estime os parâmetros da variável aleatória e faça as inferência indutivas.

No nosso curso

80% dos problemas na Estatística e Ciência de Dados são resolvidos com:

  • Distribuição Binomial: variávela aleatória discreta
  • Distribuição Normal: variável aleatória contínua

Distribuição Binomial

Calculando probabilidades
Variável aleatória discreta

  • Probabilidade de um número:
    • Função de probabilidade (fp): \(f(a) = P(X = a)\).
  • Probabilidade para o intervalo \((-\infty, a]\):
    • Função de distribuição acumulada (fda): \(F(a) = P(X \leq a)\).
  • Quantil de ordem proba: Q(proba)
    • Quantil populacional de ordem proba.

Distribuição Binomial

Quando usar

  • Temos \(n\) casos em análise.
  • Cada caso pode ser sucesso ou fracasso.
  • Probabilidade de sucesso \(p\).
  • \(X\): número de sucessos em \(n\) casos.
  • Sucesso: foco da análise.
  • Suporte: \(\chi = \{1, 2, 3, \cdots, n\}\).

Parâmetro

Probabilidade sucesso: \(p\).

Na liguagem R

fp e fda

Função de Probabilidade (fp):

dbinom(x, n, p)

Função de Distribuição Acumulada (fda):

pbinom(x, n, p)
  • x: valor do suporte
  • n: número de casos
  • p: probabilidade sucesso

Quantil de ordem prob

qbinom(prob, n, p)
  • n: número de casos
  • p: probabilidade sucesso
  • prob: limiar de probabilidade desejado

Distribuição Binomial

Exemplo:

  • Casos: cidades do Recôncavo Baiano - 20 cidades.
  • Sucesso: cidade tem cinema.
  • Probabilidade de sucesso: 75%.
  • \(X\): número de sucessos.
  • \(X\): número de cidades do Recôncavo Baiano com cinema.
  • Suporte: \(\chi = \{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20\}\).

Probabilidade de 11 cidades do Recôncavo Baiano ter cinema:

dbinom(11, 20, 75/100)
[1] 0.02706075

Probabilidade de até 11 cidades terem cinema:

pbinom(11, 20, 75/100)
[1] 0.04092517

Quantil de ordem 90%:

qbinom(0.9, 20, 0.75)
[1] 17

Resultado: até 17 cidades têm cinema.

Distribuição Bernoulli

Distribuição binomial quando \(n=1\) (apenas um caso).


Exemplo

  • Caso: uma cidade.
  • Sucesso: cidade tem plano de cultura.
  • Probabilidade de sucesso: 95%.
  • Suporte: \(\chi=\{0, 1\}\).

Probabilidade da cidade tem plano de cultura:

dbinom(1, 1, 0.95)
[1] 0.95

Probabilidade de fracasso:

dbinom(0, 1, 0.95)
[1] 0.05

Distribuição Normal

Calculando probabilidades
Variável aleatória contínua

  • Probabilidade para o intervalo \((-\infty, a]\):
    • Função de distribuição acumulada (fda): \(F(a) = P(X \leq a)\).
  • Probabilidade de um intervalo:
    • \(P(a < X < b) = F(b) - F(a)\).
  • Quantil de ordem proba: Q(proba)
    • Quantil populacional de ordem proba.

Distribuição Normal

Quando usar

  • Suporte: \(\chi=\mathbb{R}\).
  • Valores ficam em torno de um valor (média).
  • Valores longe desse valor (média) são raros.
  • Probabilidade é área sob a Curva Gaussiana.

Curva Gaussiana.

\(P(a < X < b)\)

Parâmetros

  • média (populacional): centro da Curva Gaussiana.
  • desvio padrão (populacional): abertura da Curva Gaussiana.

Na linguagem R

fda

pnorm(x, média, desvio padrão)
  • x: valor do suporte
  • media: média (populacional)
  • desvio padrão: desvio padrão (populacional)

Quantil de ordem proba

qnorm(proba, média, desvio padrão)
  • prob: limiar de probabilidade desejado
  • media: média (populacional)
  • desvio padrão: desvio padrão (populacional)

Distribuição normal

Exemplo:

  • Variável: montante dos editais com recursos próprios de um ente.
  • Média: um milhão de reais.
  • Desvio padrão: 100 mil reais.

Na linguagem R

Probabilidade de um edital do ente ter montante entre 800 mil e 900 mil reais:

pnorm(9e+5,1e+6,1e+5) - pnorm(8e+5,1e+6,1e+5)
[1] 0.1359051

Quantil de ordem 99%:

qnorm(0.99, 1e+6, 1e+5)
[1] 1232635

Inferência Estatística

Intervalo de Confiança

Intervalo de Confiança
proporção de sucesso \(p\)

Ideia: Encontrar \(LI\) e \(LS\) tal que

\[ LI \leq p \leq LS \]

\((LI, LS)\) é chamado de Intervalo de Confiança (IC).


Interpretação

Impossível sempre produzir um resultado correto!

  • Às vezes, o IC está correto.
  • Às vezes, o IC está errado.
x1 x2 x3 x4 x5 li ls média populacional
1.087.275,5 1.096.954,5 1.038.384,7 814.844,4 994.600,3 864.030,4 1.106.399,8 1.000.000
1.106.477,3 1.081.319,5 980.918,3 730.007,0 1.006.096,7 795.298,8 1.111.347,7 1.000.000
1.057.375,2 1.004.580,4 1.015.741,2 1.043.156,5 960.345,0 969.462,3 1.049.089,2 1.000.000
992.654,2 861.297,3 869.332,4 923.160,5 947.289,2 850.628,5 966.583,0 1.000.000
915.118,4 891.148,0 951.570,9 966.368,9 984.664,2 894.436,0 975.017,4 1.000.000
929.756,1 968.857,0 833.684,3 924.946,7 922.264,8 854.197,8 959.233,6 1.000.000

Interpretação
Intervalo de Confiança

  • \(\gamma\) dos Intervalos de Confiança estarão corretos.
  • \(\gamma\): coeficiente de confiança. Geralmente, \(\gamma=95\)%.

\(\gamma\)% dos Intervalos de Confianças estarão corretos.

Intervalo de Confiança \(t\)

Intervalo de Confiança para média populacional.
  • \(\epsilon\): margem de erro.
  • \(\bar{x}\): média da amostra.
  • \(\mu\): média da população.

Na linguagem R

ci_1pop_norm(vetor, conf_level = coeficiente de confiança)

Intervalo de confiança \(t\) – Exemplo

Na linguagem R

respostas <- read_xlsx("dados/brutos/resposta.xlsx")
p_load(statBasics)
respostas_cidades <- respostas |>
  filter(tipo_ente == "Cidade") |>
  filter(resposta_completa == "Resposta completa")
ic = ci_1pop_norm(respostas_cidades$valor_complementar_lab_numero, conf_level = 0.95, na.rm = T)
write_xlsx(ic, "output/ic_media_exemplo.xlsx")
ic
1
ci_1pop_mean é uma função do pacote statBasics.
2
filter filtra observações de forma semelhante a função FILTER do Google Planilha, apenas substituímos = por ==.
3
O argumento na.rm = TRUE retira os valores faltantes antes de realizar os cálcullos.
4
write_xlsx (do pacote write_xl) salvará o dataframe ic como uma planilha eletrônica .xlsx.
# A tibble: 1 × 3
   lower_ci upper_ci conf_level
      <dbl>    <dbl>      <dbl>
1 -1192140. 8017389.       0.95

Interpretação

O valor total complementado nos editais LAB pelas cidades esteve entre -R$ 1.192.140,42 e R$ 8.017.388,84 com coeficiente de confiança 95%.

Intervalo de confiança \(t\)
Exercício

Em todos intervalos de confiança abaixo, use \(\gamma=99\%\).

  1. Construa o Intervalo de Confiança para o montante (v_1_5) médio nos editais com recursos próprios das capitais.
  2. Construa o Intervalo de Confiança para o número médio de propostas previstas (v_1_7) nos editais com recursos próprios das capitais.
  3. Construa o Intervalo de Confiança para o número médio de páginas (n_page) nos editais com recursos próprios das capitais.
  4. Construa o Intervalo de Confiança para o valor médio de complementação nos editais LPG (valor_complementar_lpg_numero) nos municípios brasileiros.

Intervalo de Confiança \(z\) para proporção

Intervalo de Confiança para a proporção populacional de sucesso
  • \(\epsilon\): margem de erro.
  • \(\hat{p}\): proporção amostral de sucesso.
  • \(p\): proporção de sucesso na população.

Na linguagem R

ci_1pop_bern(vetor == sucesso, conf_level = coeficiente de confiança)
  • sucesso: categoria que indica o sucesso
  • vetor: vetor de texto

Exemplo

IC para a proporção de cidades com plano de cultura com coeficiente de confiança 99%.

ic = ci_1pop_bern(respostas_cidades$plano_cultura == "Checked", conf_level = 0.99)
ic
# A tibble: 1 × 3
  lower_ci upper_ci conf_level
     <dbl>    <dbl>      <dbl>
1        0    0.155       0.99

A proporção de cidades com plano de cultura no Brasil está entre 0% e 15,5%, com coeficiente de confiança 99%.

Intervalo de Confiança \(z\)

Exercício

  • Construa o Intervalo de Confiança para a proporção de editais com apoio continuado (v_2_3__1) para os chamamentos públicos com recursos próprios das capitais. Use \(\gamma=95\)%.
  • Construa o Intervalo de Confiança para a proporção de editais com apoio continuado (v_2_3__1) para os chamamentos públicos com recursos próprios dos estados. Use \(\gamma=90\)%.

Teste de Hipóteses

Definindo o contexto

Objetivo:

Decidir entre \(H_0\) (hipótese nula) e \(H_1\) (hipótese alternativa) usando as evidências da amostra.


  • \(H_0\) é a negação de \(H_1\) e vice-versa
  • \(H_1\) é aquilo que desejamos provar que é verdade
    • a hipótese alternativa é afirmação extraordinária que precisa de evidências para acreditarmos
  • \(H_0\) é o padrão, senso comum ou benchmark
    • a hipótese nula é afirmação ordinária que assumimos como verdade na ausência de evidências

Decisão usando amostra

Decisão usando evidência na amostra:

  • Decisão embasada com evidência \(\Longrightarrow\) hipótese alternativa \(H_1\)
  • Decisão sem evidência ou na dúvida \(\Longrightarrow\) hipótese nula \(H_0\)

Como temos uma tendência de continuar em \(H_0\) na ausência de evidências,escrevemos:

  • Decisão por \(H_0\): Não rejeitamos \(H_0\);
  • Decisão por \(H_1\): Rrejeitamos \(H_0\).

Erros

Podemos cometer dois erros ao decidir:

  • Falso positivo (ou Erro Tipo I): Rejeitamos \(H_0\), mas \(H_0\) é a verdade. Erro mais grave!
    • \(\alpha\): proporção de amostras no qual o Falso Positivo ocorreu
  • Falso negativo: Não rejeitamos \(H_0\), mas \(H_1\) é a verdade
    • \(\beta\): proporção de amostras no qual o Falso Negativo ocorreu

Não existe uma regra (estratégia) de decisão que minimiza \(\alpha\) e \(\beta\) simultaneamente.


Escândalo falso positivo na Colômbia

\(\alpha\) e \(\beta\) são erros concorrentes.

Tradeoff entre \(\alpha\) e \(\beta\).


Encontrar regra de decisão satisfazendo:

  • \(\alpha\) fixo em um valor pequeno (geralmente 5%)
  • menor valor possível para \(\beta\)

\(\alpha\) é chamado de nível de significância.

Como decidir?

  • \(H_0\): o montante médio dos editais é menor or igual que um milhão de reais
    • \(H_0: \mu - \mu_0 \leq 0\), com \(\mu_0 = 1.000.000\)
  • \(H_1\): o montante médio dos editais é maior que um milhão de reais
    • \(H_1: \mu - \mu_0 > 0\), com \(\mu_0 = 1.000.000\)

Amostras com 10 editais.

  • Primeira amostra
    • \(\bar{x}\)=R$ 100.000,00 \(\Longrightarrow\) Não rejeito \(H_0\)
  • Segunda amostra
    • \(\bar{x}\)=R$ 10.000.000,00 \(\Longrightarrow\) Rejeito \(H_0\)
  • Terceira amostra
    • \(\bar{x}\)=R$ 500.000,00 \(\Longrightarrow\) Não rejeito \(H_0\)
  • Quarta amostra
    • \(\bar{x}\)=R$ 3.000.000,00 \(\Longrightarrow\) Rejeito \(H_0\)

Calculamos uma distância entre a média amostral e \(\mu_0\):

  • Se a distância for extrema \(\Longrightarrow\) rejeitamos \(H_0\)
  • Se a distância não for extra \(\Longrightarrow\) não rejeitamos \(H_0\)

Esta distância é chamada de estatística de teste.


Valor-p

\(p\): proporção de amostras com estatística de teste mais extrema que a estatística de teste observada.

  • \(p < \alpha\): rejeito \(H_0\)
  • \(p \geq \alpha\): não rejeito \(H_0\)

Teste t

Estatística de teste

Equação matemática

\[ t_0 = \frac{(\bar{x}-\mu_0) \cdot \sqrt{n}}{s} \]

Valor-p

Equação matemática

\(H_1: \mu - \mu_0<0\) \(H_1: \mu - \mu_0>0\) \(H_1: \mu - \mu_0\neq 0\)
Equação \(P(t_{n-1}<t_0 )\) \(P(t_{n-1}>t_0 )\) \(2 \cdot (1 - P(t_{n-1} < \lvert t_0 \rvert))\)
alternative "less" "greater" "two.sided"

Na linguagem R

ht_1pop_mean(vetor, mu = 1e+5, alternative = "two.sided", sig_level = 0.05, na.rm = TRUE)
  • vetor: coluna do dataframe
  • mu: número que compõe as hipóteses.
  • alternative: um dos valores: “less”, “greater”, e “two_sided”.
  • sig_level: nível de significância
  • na.rm: retirar os valores faltantes para fazer os cálculos? Por padrão, TRUE.

Teste \(t\)

Exemplo

Existe evidência que o valor complementado pelos municípios nos editais LAB ultrapassou 500 mil reais, em média, ao nível de significância 5%?

th <- ht_1pop_mean(
  respostas_cidades$valor_complementar_lab_numero,
  mu = 5e+5, alternative = "greater",
  sig_level = 0.05
)
write_xlsx(th, "output/th_ex_media.xlsx")
th
# A tibble: 1 × 7
  statistic p_value critical_value critical_region alternative     mu sig_level
      <dbl>   <dbl>          <dbl> <chr>           <chr>        <dbl>     <dbl>
1      1.39  0.0957           1.80 (1.796, Inf)    greater     500000      0.05

Não podemos afirmar que o valor complementado nos municípios nos editais LAB ultrapassou 500 mil reais em média, ao nível de significância 5%.

Teste \(t\)
Exercício

  • Existe evidência que o montante dos editais com recursos próprios das capitais é superior a 1 milhões de reais, em média, ao nível significância 1%?
  • Existe evidência que o número de propostas previstas dos editais com recursos próprios das capitais é inferior a 10, em média, ao nível significância 5%?

Teste \(z\) para proporção de sucesso

Estatística de teste

Equação matemática

\[ z_0 = \frac{(\hat{p}-p_0) \cdot \sqrt{n}}{p_0 - p_0^2} \]

Valor-p

Equação matemática

\(H_1: p - p_0<0\) \(H_1: p - p_0>0\) \(H_1: p - p_0\neq 0\)
Equação \(P(Z<z_0 )\) \(P(Z>z_0 )\) \(2 \cdot (1 - P(Z < \lvert z_0 \rvert))\)
alternative "less" "greater" "two.sided"

Na linguagem R

ht_1pop_prop(vetor == sucesso, proportion = 0.5, alternative = "two.sided", sig_level = 0.05)
  • vetor: coluna do dataframe.
  • proportion: número que compõe as hipóteses
  • sucesso: categoria que indica o sucesso
  • alternative: um dos valores: “less”, “greater”, e “two.sided”
  • sig_level: nível de significância

Teste \(z\) para proporção
Exemplo

Existe evidência que mais de 50% dos municípios brasileiros têm Plano de Cultura ao nível de significância 5%?

ht_prop <- ht_1pop_prop(
  respostas_cidades$plano_cultura == "Sim",
  proportion = 0.5, alternative = "greater",
  sig_level = 0.05
)
ht_prop
# A tibble: 1 × 7
  statistic p_value critical_value critical_region alternative proportion
      <dbl>   <dbl>          <dbl> <chr>           <chr>            <dbl>
1     0.602   0.274           1.64 (1.645, Inf)    greater            0.5
# ℹ 1 more variable: sig_level <dbl>

Não temos evidência para afirmar que mais de 50% dos munícipios brasileiros têm Plano de Cultura, ao nível de singificância 5%.

Teste \(z\) para proporção
Exercício

  • Existe evidência para afirmamos que mais de 10% dos municípios têm Planos Setoriais (planos_setoriais) para as artes? Use \(\alpha=5\%\).
  • Existe evidência para afirmarmos que mais de 10% editais com recursos próprios publicados pelas capitais são para apoio continuado por mais de um ano (v_2_3__2)? Use \(\alpha=1\%\).

Duas populações

Duas populações

  • Dois grupos (chamados de populações) complementamente independentes.
  • Experimento complementamente aleatório.
  • Se decidirmos por \(H_1\), dizemos que temos uma relação de causa e efeito.

Neste curso

  • Intervalo de confiança para a diferença de médias (populacionais).
  • Intervalo de confiança para a diferença de proporções de sucesso (populacionais).
  • Teste de Hipóteses para a diferença de médias (populacionais).
  • Teste de Hipóteses para a diferença de proporções de sucesso (populacionais).

Intervalo de Confiança \(t\) para diferença das médias

Intervalo de Confiança para a diferença de médias.

  • \(\mu_1\): média da população 1
  • \(\mu_2\): média da população 2
  • \(\bar{x}_1\): média da amostra da população 1
  • \(\bar{x}_2\): média da amostra da população 2
  • \(\epsilon\): margem de erro

No Google Planilha

ci_2pop_norm(vetor1, vetor2, conf_level = coeficiente de confiança)
  • vetor1: coluna do dataframe com os dados da população 1
  • vetor2: coluna do dataframe com os dados da população 2
  • conf_level: coeficiente de confiança.

Intervalo de Confiança \(t\) para \(\mu_1-\mu_2\)

Exemplo

ic <- ci_2pop_norm(
  respostas_cidades$valor_complementar_lab_numero,
  respostas_cidades$valor_complementar_lpg_numero,
  conf_level = 0.95,
  na.rm = T
)
ic
# A tibble: 1 × 3
   lower_ci upper_ci conf_level
      <dbl>    <dbl>      <dbl>
1 -3353130. 6131894.       0.95

A diferença entre a complementação realizada pelas cidades nos editais LAB e LPG está entre -R$ 3.365.059,51 e R$ 6.143.824,10, com coeficiente de confiança 95%.

Intervalo de Confiança \(t\) para \(\mu_1-\mu_2\)
Exercício

  • Construa um intervalo de confiança para a diferença entre o montante (v_1_5) médio dos editais PNAB das capitais das regiões Norte, Norte e Centro-Oeste e montante médio dos PNAB das capitais das regiões Sul e Suldeste. Use \(\gamma=99\%\).
  • Construa um intervalo de confiança para a diferença entre o número médio de propostas previstas (v_1_7) dos editais PNAB das capitais das regiões Norte, Norte e Centro-Oeste e número médio de propostas previstas dos PNAB das capitais das regiões Sul e Suldeste. Use \(\gamma=95\%\).

Intervalo de Confiança \(Z\) para a diferença de proporções

Intervalo de Confiança para a diferença de proporções populacionais de sucesso.

  • \(p_1\): proporção de sucesso da população 1
  • \(p_2\): proporção de sucesso população 2
  • \(\hat{p}_1\): média da amostra da população 1
  • \(\hat{p}_2\): média da amostra da população 2
  • \(\epsilon\): margem de erro

Na linguagem R

ht_2pop_prop(vetor1 == sucesso, vetor2 == sucesso, conf_level = coeficiente de confiança)
  • vetor1: coluna do dataframe com os dados da população 1
  • vetor2: coluna do dataframe com os dados da população 1
  • sucesso: categoria que indica sucesso
  • conf: coeficiente de confiança

Intervalo de Confiança \(Z\) para \(p_1-p_2\)

IC para a diferença entre a proporção de entes que apoiam Circo (linguagens_orgao__3) entre cidades de pequeno porte (menos de 100 mil habitantes) e cidades de grande porte (mais de 100 mil habitantes).

respostas_cidades_pequeno_porte <- respostas_cidades |>
  filter(populacao < 1e+5)
respostas_cidades_grande_porte <- respostas_cidades |>
  filter(populacao >= 1e+5)
ic <- ci_2pop_bern(
  respostas_cidades_pequeno_porte$linguagens_orgao___3 == "checked",
  respostas_cidades_grande_porte$linguagens_orgao___3 == "checked",
  conf_level = 0.99
)
ic
# A tibble: 1 × 3
  lower_ci upper_ci conf_level
     <dbl>    <dbl>      <dbl>
1   -0.367    0.367       0.99

A diferença na porcentagem de entes que apoiam circo entre cidades de grande porte e cidades de pequento está entre -36,7% e 36,7% com coeficiente de confiança 99%.

Intervalo de Confiança \(Z\) para \(p_1 - p2\)

Exercício

  • Construa um Intervalo de Confiança para a diferença entre a proporção de editais que preveem apoio ao circo (v_3_2__3) entre as capitais das regiões Norte, Nordeste e Centro-Oeste e as capitais das regiões Sul e Sudeste. Use \(\gamma=95\%\).
  • Construa um Intervalo de Confiança para a diferente entre a proporção de entes que apoiam literatura (linguagens_orgao__4) entre cidades de pequeno porte (menos de 100 mil habitantes) e grande porte (mais de 100 mil habitantes). Use \(\gamma=99\%\).

Teste \(t\) para \(\mu_1-\mu_2\)

Estatística de teste

Equação matemática

\[ t_0 = \frac{\bar{x}_1 - \bar{x_2}}{\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}} \]

  • \(\bar{x_1}\) e \(s_1\): média e desvio padrão da amostra da população 1;
  • \(\bar{x_2}\) e \(s_2\): média e desvio padrão da amostra da população 2.

Valor-p

Equação matemática

\(H_1: \mu_1 - \mu_2<\Delta_0\) \(H_1: \mu_1 - \mu_2>\Delta_0\) \(H_1: \mu_1 - \mu_2\neq \Delta_0\)
Equação \(P(t_\nu<t_0 )\) \(P(t_\nu>t_0 )\) \(2 \cdot (1 - P(t_\nu < \lvert t_0 \rvert))\)
alternative "less" "greater" "two.sided"

\(\mu_1\) é a média populacional da população 1, \(\mu_2\) é a média populacional da população 2, e \(\nu\) é grau de liberdade pela correção de Welch.

Na linguagem R

ht_2pop_mean(vetor1, vetor2, delta = 0, alternative = "two.sided", sig_lvel = 0.05)
  • vetor1: coluna do dataframe com os dados da população 1
  • vetor2: coluna do dataframe com os dados da população 2
  • alternative: um dos valores: “less”, “greater”, e “two.sided”
  • delta: número que compõe as hipóteses
  • sig_level: nível de significância

Teste \(t\) para \(\mu_1 - \mu_2\)

Exemplo

Existe diferença entre o valor complementado nos editais LAB e LPG para as cidades brasileiras? Use \(\alpha=5\%\).

  • População 1: valores complementados - LAB.
  • população 2: valores complementados - LPG.

\[ \begin{split} H_0 &: \mu_1 - \mu_2 = 0\\ H_1 &: \mu_1 - \mu_2 \neq 0 \end{split} \]

ht <- ht_2pop_mean(
  respostas_cidades$valor_complementar_lab_numero,
  respostas_cidades$valor_complementar_lpg_numero,
  delta = 0,
  alternative = "two.sided",
  sig_level = 0.05, na_rm = TRUE
)
ht
# A tibble: 1 × 7
  statistic p_value critical_value critical_region   delta alternative sig_level
      <dbl>   <dbl>          <dbl> <chr>             <dbl> <chr>           <dbl>
1     0.631   0.539           2.15 (-Inf,-2.155)U(2…     0 two.sided        0.05

Em média, as complementações nos editais LAB e LPG realizadas pelas cidades brasileiras são iguais, ao nível de significância 5%.

Teste \(t\) para \(\mu_1-\mu_2\)
Exercício

  • Ao nível de significância 1%, existe evidência que o montante os chamamentos públicos das capitais das regiões Sul e Sudeste é maior que o valor total dos editais das capitais das regiões Norte, Nordeste e Centro-Oeste?
  • Ao nível de significância 5%, existe evidência que o número de propostas previsto no editais nas capitais das regiões Sul e Sudeste é menor que o total de propostas previstas nos chamamentos públicos das regiões Sul, Sudeste e Centro-Oeste?

Teste \(Z\) para \(p_1-p_2\)

Estatística de teste

Equação matemática

\[ z_0 = \frac{\hat{p}_1 - \hat{p}_2}{\sqrt{ \frac{\hat{p}(1-\hat{p})}{n_1} + \frac{\hat{p}(1-\hat{p})}{n_2} }} \]

  • \(\hat{p}_1\) é a proporção de sucesso na população 1 e \(n_1\) é o tamanho da amosta da população 1;
  • \(\hat{p}_2\) é a proporção de sucesso na população 2 e \(n_2\) é o tamanho da amosta da população 2;
  • \(\hat{p}\) é a proporção de sucesso nas duas populações.

Equação matemática

\(H_1: p_1 - p_2<0\) \(H_1: p_1 - p_2>0\) \(H_1: p_1 - p_2\neq 0\)
Equação \(P(Z<t_0 )\) \(1-P(Z<t_0 )\) \(2 \cdot (1 - P(Z < \lvert t_0 \rvert))\)
alternative "less" "greater" "two.sided"
  • \(p_1\) é a proporção populacional de sucesso da população 1
  • \(p_2\) é a proporção populacional de sucesso da população 2

Na linguagem R

ht_2pop_prop(vetor1 == sucesso, vetor2 == sucesso, delta =0, alternative = "two.sided", sig_level = 0.05)
  • vetor1: coluna com dados da população 1
  • vetor2: coluna com dados da população 1
  • sucesso: categoria que indica sucesso
  • alternative: um dos valores: “less”, “greater”, e “two.sided”
  • delta: número que compõe as hipóteses
  • sig_level: nível de significância

Teste \(Z\) para \(p_1 - p_2\)

Exemplo

Ao nível de significância 5%, existe evidência que as cidades de grande porte (mais de 100 mil habitantes) apoiam, proporcionalmente, mais o circo (linguagens_orgao__3) do que cidade de pequeno porte (100 mil habitantes ou menos)?

  • População 1: cidades de grande porte.
  • População 2: cidades de pequeno porte

\[ \begin{split} H_0 &: p_1 - p_2 \leq 0\\ H_1 &: p_1 - p_2 > 0 \end{split} \]

Estatística de teste

respostas <- read_xlsx("dados/brutos/resposta.xlsx")
respostas_cidades <- respostas |>
  filter(tipo_ente == "Cidade") |>
  filter(resposta_completa == "Resposta completa") |>
  mutate(populacao = as.numeric(populacao))
cidades_grandes <- respostas_cidades |>
  filter(populacao >= 1e+5)
cidades_pequenas <- respostas_cidades |>
  filter(populacao < 1e+5)
ht <- ht_2pop_prop(
  cidades_grandes$linguagens_orgao___3 == "Checked",
  cidades_pequenas$linguagens_orgao___3 == "Checked",
  delta = 0, alternative = "greater", sig_level = 0.05
)
ht
1
A função mutate cria uma nova coluna ou modifica uma coluna existente. Neste caso, estamos transformando uma coluna de texto em uma coluna numérica usando as.numeric. A função mutate faz parte do tidyverse.
# A tibble: 1 × 7
  statistic   p_value critical_value critical_region delta alternative sig_level
      <dbl>     <dbl>          <dbl> <chr>           <dbl> <chr>           <dbl>
1      4.68   1.41e-6           1.64 (1.645, Inf)        0 greater          0.05

Ao nível de significância 5%, não podemos afirmar que cidades de grande apoiam proporcionalmente mais o circo do que cidades de pequeno porte.

Teste \(Z\) para \(p_1 - p_2\)

Exercício

  • Existe evidência de que as capitais das regiões Sul e Sudeste apoiam, proporcionalmente, mais o Circo (v_3_2__3) com recursos próprios do que as capitais das regiões Norte, Nordeste e Centro-Oeste? Use \(\alpha=5\%\) e utilize o conjunto de dados pnab-capitais.xlsx.
  • Existe evidência de cidades de grande porte apoiam, proporcionalmente, mais a Literatura (linguagens_orgao__4) do que as cidades de pequeno porte. Use \(\alpha=1\%\) e utilize o conjunto de dados respostas.xlsx.