Você está na página 1de 55

Re-amostragem

Disciplina: Teoria do Aprendizado Estatístico

Professora Mestra Camila Gonçalves Costa


Curso: Ciência de Dados – FATEC Adamantina
4° Semestre
Reamostragem
• A reamostragem é o nome que se dá a um conjunto de técnicas ou

métodos que se baseiam em calcular estimativas a partir de repetidas

amostragens dentro da mesma amostra (única).

• Estas técnicas se propõem a avaliar as incertezas relacionadas a

obtenção de estatísticas.

FATEC Adamantina, profa Camila Gonçalves 2


Reamostragem
• Exemplos de técnicas de reamostragem:
• Testes de Aleatorização (Testes de Permutação)
• Jackknife
• Bootstrap
• Validação Cruzada

• Envolvem a extração repetida de amostras de um conjunto de treinamento

e o reajuste de um modelo de interesse em cada amostra para obter

informações adicionais sobre o modelo ajustado.


FATEC Adamantina, profa Camila Gonçalves 3
• Os métodos de reamostragem são uma ferramenta indispensável
nas estatísticas modernas.
• Exemplo: para estimar a variabilidade de um ajuste de regressão
linear, extraímos repetidamente amostras diferentes dos dados de
treinamento, ajustando uma regressão linear a cada nova amostra
e, em seguida, examinamos até que ponto os ajustes resultantes
diferem.
• Tal abordagem pode nos permitir obter informações que não
estariam disponíveis ajustando o modelo apenas uma vez (usando
a amostra de treinamento original).

FATEC Adamantina, profa Camila Gonçalves 4


Métodos de Reamostragem
• Validação Cruzada
• Usado para avaliação de modelo para evitar o teste de um modelo
no mesmo conjunto de dados no qual ele foi treinado.
• Pode ser usada para estimar o erro de teste associado a um
determinado método de aprendizado estatístico, para avaliar seu
desempenho (avaliação do modelo) ou para selecionar o nível
apropriado de flexibilidade (seleção do modelo).
• Bootstrap
• É usado em vários contextos, mais comumente para fornecer uma
medida de precisão de uma estimativa de parâmetro ou de um
determinado método de aprendizado estatístico.
FATEC Adamantina, profa Camila Gonçalves 5
Validação Cruzada k-Fold
• Existem vários tipos de métodos de validação cruzada (LOOCV – validação
cruzada de saída única, o método holdout, validação cruzada k-
fold). Aqui, vamos discutir o método de validação cruzada K-Fold.
O método K-Fold consiste basicamente nas etapas abaixo:
• Divida aleatoriamente os dados em k subconjuntos (dobras).
• Ajuste o modelo nos dados de treinamento (ou k-1 dobras).
• Use a parte restante dos dados como conjunto de testes para validar o
modelo. (Normalmente, nesta etapa, a precisão ou o erro de teste do
modelo é medido).
• Repita o procedimento k vezes.

FATEC Adamantina, profa Camila Gonçalves 6


Treinamento Validação
Ajuste do Avaliação
método do método
Exemplo: 5 - Fold

Um conjunto de n observações é
dividido aleatoriamente em cinco
grupos não sobrepostos. Cada um
desses 5 grupos atua como um
conjunto de validação e o restante
como um conjunto de treinamento.
FATEC Adamantina, profa Camila Gonçalves 7
FATEC Adamantina, profa Camila Gonçalves 8
O método é aplicado em cada etapa – calcula-se o erro de
validação (EQM de validação) em cada etapa e depois a média
desses erros.

FATEC Adamantina, profa Camila Gonçalves 9


Na prática,
recomenda-se usar
k = 5 ou k = 10

𝑘
1
Erro de 𝐶𝑉(𝑘) = ෍ 𝐸𝑄𝑀𝑖
validação 𝑘
𝑖=𝑖
1
= 𝐸𝑄𝑀1 + 𝐸𝑄𝑀2 + 𝐸𝑄𝑀3 + ⋯ . +𝐸𝑄𝑀𝑘
𝑘

Estimada pelos dados de treinamento


São dados de validação FATEC Adamantina, profa Camila Gonçalves 10
𝑘
1
Erro de 𝐶𝑉(𝑘) = ෍ 𝐸𝑄𝑀𝑖
validação 𝑘
𝑖=𝑖
1
= 𝐸𝑄𝑀1 + 𝐸𝑄𝑀2 + 𝐸𝑄𝑀3 + ⋯ . +𝐸𝑄𝑀𝑘
𝑘

FATEC Adamantina, profa Camila Gonçalves 11


𝑘
1
Erro de 𝐶𝑉(𝑘) = ෍ 𝐸𝑄𝑀𝑖
validação 𝑘
𝑖=𝑖
1
= 𝐸𝑄𝑀1 + 𝐸𝑄𝑀2 + 𝐸𝑄𝑀3 + ⋯ . +𝐸𝑄𝑀𝑘
𝑘

FATEC Adamantina, profa Camila Gonçalves 12


𝑘
1
Erro de 𝐶𝑉(𝑘) = ෍ 𝐸𝑄𝑀𝑖
validação 𝑘
𝑖=𝑖
1
= 𝐸𝑄𝑀1 + 𝐸𝑄𝑀2 + 𝐸𝑄𝑀3 + ⋯ . +𝐸𝑄𝑀𝑘
𝑘

FATEC Adamantina, profa Camila Gonçalves 13


Bootstrap
• Baseia-se na geração de uma nova amostra de mesmo tamanho da amostra
original, a partir do sorteio aleatório com reposição de seus elementos.

• É muito usado para estimar a variância e a tendência de um


estimador/parâmetro qualquer.

• Métodos de bootstrap são utilizados quando a distribuição da população


alvo não é especificada (ou conhecida), e a amostra é a única informação
disponível.
FATEC Adamantina, profa Camila Gonçalves 14
FATEC Adamantina, profa Camila Gonçalves 15
• O bootstrap pode ser facilmente aplicado a uma ampla gama de
métodos de aprendizado estatístico, incluindo alguns para os quais
uma medida de variabilidade é difícil de obter e não é gerada
automaticamente por software estatístico.

FATEC Adamantina, profa Camila Gonçalves 16


Criando uma amostra aleatória no R Studio
• Função set.seed()
• Função que define uma semente para o gerador de números
aleatórios do R, de forma que sempre possa-se obter exatamente os
mesmos resultados aleatórios.
• Função sample()
• Função que gera uma amostra aleatória de n elementos um vetor x
[sample(x, n)]. Se x for um número, será considerado uma sequência
de 1 a x como vetor. Caso n for omitido, a função apenas reordena a
sequência de forma aleatória. Pode-se escolher se a amostra é com
(True) ou sem (False) substituição [sample(x, n, replace=‘T’)].
• Digite ?sample para mais detalhes
FATEC Adamantina, profa Camila Gonçalves 17
Criando uma amostra aleatória no R Studio
• Exemplo: Tomar 196 elementos de uma lista de 1 a 392
• set.seed (1) #cria a mesma amostra em pcs diferentes
• teste <- sample (392 , 196, replace='T')

FATEC Adamantina, profa Camila Gonçalves 18


Criando uma Reamostragem
• Criar uma amostra de 8 elementos e reamostrar sem e com reposição
• set.seed (10) #cria a mesma amostra
• teste <- sample (392 , 8, replace='T)
• teste.baguncado <- sample(teste)
• teste.baguncado.repeticao <- sample(teste, replace='T')

FATEC Adamantina, profa Camila Gonçalves 19


Funções úteis no R Studio
• rnorm(): rnorm(n, mean = m, sd = d). Função de distribuição de
densidade que cria um vetor de n dados randômicos (aleatórios) com
distribuição normal e média (mean) e desvio padrão (sd). Caso não sejam
informados, o padrão é mean = 0 e sd = 1.
• Ex. rnorm(100, mean = 20, sd = 2)
• data.frame(): x = data.frame(x1 = vetor1, x2 = vetor2). Função que cria
quadros de dados, coleções de variáveis que compartilham muitas das
propriedades de matrizes e listas, usadas como a estrutura de dados.
• Para acessar um vetor do data.frame, usamos x$x1
• hist(): hist(x). Histograma simples de um vetor x
• ?nome_função ou ??nome_função para detalhes da função
FATEC Adamantina, profa Camila Gonçalves 20
• ggplot(): ggplot(aes(x, y)). É usado para construir o objeto plot inicial e
geralmente é seguido por + para adicionar componentes ao plot.
• geo_histogram(): geom_histogram(col = "blue“, ...). Esboça o histograma, a
distribuição de frequência de uma variável.
• Ex. geom_histogram(alpha = 0.3, fill = "blue") → alpha indica a intensidade do
preenchimento fill
• + indica a complementação da função por outra função
• Ex. ggplot(aes(x = x1)) + geom_histogram(alpha = 0.3, col = "yellow", fill = "blue") +
ylab("Frequência de x1")
• function(): function(x, a) {x^a}. Cria a função escolhida, no exemplo, f é uma
função de 2 variáveis f(x,a) = 𝑥 𝑎
• poly(): poly(x, n) Estima um polinômio de grau n (por regressão, dentro de
lm()) dos dados do vetor x – As estimativas dos coeficientes são diferentes –
Use predict
FATEC Adamantina, profa Camila Gonçalves 21
• glm(): glm(método, dados = Nome_objeto) Função que ajusta
modelos lineares generalizados (regressão linear).
• cv.glm(): cv.glm(Nome_objeto, função_ajustada, k = num) $delta[N]
Calcula o erro estimado de previsão de validação cruzada K-fold para
modelos lineares generalizados -> N = 1 calcula o EQM.
• Predict(): preditc(método) Escreve o vetor de respostas do método

FATEC Adamantina, profa Camila Gonçalves 22


Exemplo Validação Cruzada: Autonomia (mpg) e Potência
de automóveis (horsepower) – Comparando Métodos
• Usaremos o data.frame Auto, base de dados do pacote ISLR2 (versão
do R: 4.2.3) sobre dados de 392 automóveis.

FATEC Adamantina, profa Camila Gonçalves 23


• Começaremos dividindo o conjunto de dados em 50% para treino e os
outros 50% para teste.

• Em seguida, usamos a opção de subconjunto em lm() para ajustar uma


regressão linear usando apenas as observações correspondentes ao
conjunto de treinamento.

FATEC Adamantina, profa Camila Gonçalves 24


• Modelo linear: 𝑚𝑝𝑔 = −0,151329 ∗ ℎ𝑜𝑟𝑠𝑒𝑝𝑜𝑤𝑒𝑟 + 39,08044
• Decrescente: maior potência, menor autonomia

FATEC Adamantina, profa Camila Gonçalves 25


• Agora usamos a função predict() para estimar a resposta para todas as 392
observações e usamos a função mean() para calcular o EQM (MSE) das 196
observações no conjunto de validação. O índice -train abaixo seleciona
apenas as observações que não estão no conjunto de treinamento.

EQM de teste estimado para


o ajuste de regressão linear

FATEC Adamantina, profa Camila Gonçalves 26


• Podemos usar a função poly() para estimar o erro de teste para as
regressões quadráticas e cúbicas.

Não compensa usar o


modelo cúbico, pois o
EQM não é muito menor
que o quadrático. O
melhor dos três métodos
é o quadrático (menor
EQM)
FATEC Adamantina, profa Camila Gonçalves 27
Exercício
• Se escolhermos um conjunto de treinamento diferente, obteremos
erros um pouco diferentes no conjunto de validação.
• Vamos avaliar os erros para outro conjunto de treinamento.
• O menor erro permaneceu sendo do método quadrático?

FATEC Adamantina, profa Camila Gonçalves 28


Exemplo usando Validação cruzada com k
grupos (k-Folds) – Comparando Métodos
• Cálculo do EQM para regressão polinomial de graus de 1 a 10 usando
Validação Cruzada

Para cada função, há k = 10


repetições (100 repetições
no total)

FATEC Adamantina, profa Camila Gonçalves 29


O menor EQM ocorre para o
método que estima a função
polinomial de grau 6, porém a
diferença é muito pequena.

FATEC Adamantina, profa Camila Gonçalves 30


• Vemos uma queda acentuada no MSE de teste estimado entre
os ajustes linear e quadrático, mas quase nenhuma melhoria
clara com o uso de polinômios de ordem superior.
• Ainda existem poucas evidências de que usar termos polinomiais
cúbicos ou de ordem superior leva a um erro de teste menor do
que simplesmente usar um ajuste quadrático.

FATEC Adamantina, profa Camila Gonçalves 31


Exemplo: Acurácia de um modelo de Regressão
linear – Cálculo do Erro Padrão com Bootstrap
• Vamos usar a abordagem bootstrap para avaliar a variabilidade das
estimativas para 𝛽መ0 e 𝛽መ1 em 𝑦 = 𝛽መ0 + 𝛽መ1 𝑥 , com o modelo de
regressão linear que usa potência (horsepower) para prever a
autonomia (mpg) no conjunto de dados Auto do pacote ISLR2.
• Vamos comparar as estimativas obtidas pelo bootstrap com aquelas
obtidas pelas fórmulas do erro padrão 𝜎𝑥 :
𝜎
𝜎𝑥 (𝜇) = Lembrando
𝑛 fórmulas
então
1 𝑥ҧ 2 𝜎
𝜎𝑥 𝛽መ0 = 𝜎 + 𝑛 , 𝜎𝑥
መ1 =
𝛽
𝑛 σ𝑖=1 𝑥𝑖 − 𝑥ҧ 2 σ𝑛𝑖=1 𝑥𝑖 − 𝑥ҧ 2
FATEC Adamantina, profa Camila Gonçalves 32
• Primeiro criamos uma função simples, boot.fn(), que recebe o conjunto
de dados Auto e um conjunto de índices para as observações, e retorna
as estimativas de interceptação e inclinação para o modelo de regressão
linear – os coeficientes da reta.
• Em seguida, aplicamos essa função ao conjunto completo de 392
observações para calcular as estimativas de 𝛽0 e 𝛽1 em todo o conjunto
de dados usando as fórmulas usuais de estimativa de coeficiente de
regressão linear

FATEC Adamantina, profa Camila Gonçalves 33


• A função boot.fn() também pode ser usada para criar estimativas
bootstrap para os termos de interceptação e inclinação por amostragem
aleatória entre as observações com substituição. Exemplos com e sem
semente:

FATEC Adamantina, profa Camila Gonçalves 34


Estimativa do parâmetro Erro Padrão por Bootstrap
• Vamos agora usar a função boot() para calcular os erros padrão de 1.000
estimativas bootstrap para 𝛽0 e 𝛽1 .
1000 é o número de réplicas
de bootstrap

Caso linear

• Isso indica que a estimativa bootstrap para 𝜎𝑥 (𝛽መ0 ) é 0,84, e que a


estimativa bootstrap para 𝜎𝑥 (𝛽መ1 ) é 0,0073.
FATEC Adamantina, profa Camila Gonçalves 35
• As fórmulas padrão podem ser usadas para calcular os erros padrão dos
coeficientes de regressão em um modelo linear. Estes podem ser obtidos
usando a função summary().

• As estimativas de erro padrão para 𝛽መ0 e 𝛽መ1 obtidas usando as fórmulas são
0,717 para o intercepto (𝛽መ0 ) e 0,0064 para a inclinação (𝛽መ1 ).
• São um pouco diferentes das estimativas obtidas usando o bootstrap. Isso
indica um problema com o bootstrap? Na verdade, sugere o contrário. As
fórmulas padrão dependem de certas suposições. Por exemplo, eles
dependem do parâmetro desconhecido 𝜎 2 , a variância do ruído.
• A abordagem bootstrap não depende de nenhuma dessas suposições e,
portanto, provavelmente fornece uma estimativa mais precisa dos erros
padrão de 𝛽መ0 e 𝛽መ1 do que a função summary().
FATEC Adamantina, profa Camila Gonçalves 36
• Observe na
figura que os
dados indicam
algum tipo de
relação não
linear, o que
insere mais
algum tipo de
erro quando
usando
regressão
linear.

FATEC Adamantina, profa Camila Gonçalves 37


• Agora vamos calcular as estimativas de erro padrão bootstrap e as
estimativas de regressão linear padrão que resultam do ajuste do modelo
quadrático aos dados.
• Uma vez que este modelo fornece um bom ajuste aos dados (Figura do
slide anterior), existe agora uma melhor correspondência entre as
estimativas bootstrap e as estimativas padrão de 𝜎(𝛽መ0 ), 𝜎(𝛽መ1 ) e 𝜎(𝛽መ2 ) .

Caso
quadrático

FATEC Adamantina, profa Camila Gonçalves 38


FATEC Adamantina, profa Camila Gonçalves 39
Exemplo Boostrap: Plantação de Árvores
• Suponha que existe uma fazenda onde o proprietário decidiu plantar
árvores para futura colheita dessa madeira para venda.
• O proprietário tem recursos financeiros para realizar um inventário
100%, que significa realizar as medidas de todas as árvores dessa
floresta (censo) e registrar os diâmetros dessas árvores. Essa métrica é
importante pois com árvores de maior diâmetro o proprietário poderá
vender mais madeira (por valor maior também) e decidir se está na
hora de cortar essas árvores ou não.
• Para simular essa plantação completa, simula-se os dados
populacionais. Considere que a floresta tenha 10.000 árvores, cuja
média de diâmetro seja 50 cm e com um desvio padrão de 10 cm.
FATEC Adamantina, profa Camila Gonçalves 40
Poderia usar somente o comando hist(população$diametros)

FATEC Adamantina, profa Camila Gonçalves 41


FATEC Adamantina, profa Camila Gonçalves 42
• Suponha agora que o proprietário não tem tempo ou recursos financeiros para
realizar esse inventário 100%.
• Uma alternativa é realizar uma amostragem aleatória de 100 árvores, medir os
diâmetros e estimar a média e o intervalo de confiança para a média para se
ter uma ideia do quão precisa é a sua estimativa para o diâmetro da população.

FATEC Adamantina, profa Camila Gonçalves 43


FATEC Adamantina, profa Camila Gonçalves 44
• Nesse caso, usando o método padrão, pode-se calcular o intervalo de
confiança para essa amostra:

Amostra de 100
árvores

FATEC Adamantina, profa Camila Gonçalves 45


Reamostragem com Bootstrap
• Vamos realizar a mesma análise da amostra, mas utilizando bootstrap.
• É possível realizar múltiplas reamostragens com reposição da nossa amostra
para se criar uma amostra bootstrap da média e calcular o intervalo de
confiança utilizando os percentis 2.5% e 97.5% dessa distribuição criada por
reamostragem. 95% de confiança Replica NA (não
disponível/sem valores),
10000 vezes
(poderia ser zero)

FATEC Adamantina, profa Camila Gonçalves 46


FATEC Adamantina, profa Camila Gonçalves 47
• Vamos calcular o intervalo de confiança através dos percentis 2.5% e
97.5%:

• Note que o intervalo de confiança da reamostra por bootstrap é bem


semelhante ao intervalo de confiança da amostra simples.

Amostra
FATEC Adamantina, profa Camila Gonçalves 48
Uso do comando boot para a média
• boot(data = nome_vetor, statistic = nome_funcao, R = num_repeticoes)

100 amostras do vetor


diâmetros

FATEC Adamantina, profa Camila Gonçalves 49


Uma estimativa do quanto o
valor de uma estatística do
teste varia de amostra para
amostra
É o de desvio sistemático do • Comparando
valor real. É desvio por não
coincidir com o valor real e é
sistemático por acontecer
consistentemente, em média.

Observe que a média das médias das


reamostras está contida no intervalo
centrado em 49.87548 e erro igual ao
bias FATEC Adamantina, profa Camila Gonçalves 50
Intervalo de confiança com boot

• Comparando

FATEC Adamantina, profa Camila Gonçalves 51


Bootstrap com a mediada

FATEC Adamantina, profa Camila Gonçalves 52


FATEC Adamantina, profa Camila Gonçalves 53
FATEC Adamantina, profa Camila Gonçalves 54
Esse exemplo foi apenas para ilustrar o funcionamento desta
metodologia. A grande riqueza em se utilizar o bootstrap é em
situações como:
• Não se tem certeza ou uma premissa forte sobre a distribuição normal
da população.
• Deseja-se estimar intervalos de confiança para métricas mais
complexas que não possuem distribuição de probabilidade conhecidas
ou facilmente definidas.
Desta forma, pode-se ampliar muito as aplicações do bootstrap e ter
uma abordagem mais probabilística para problemas complexos.

FATEC Adamantina, profa Camila Gonçalves 55

Você também pode gostar