Eu meio que entendo o que significa "sobreajustar", mas preciso de ajuda para descobrir um exemplo do mundo real que se aplique à sobreajuste.
Eu meio que entendo o que significa "sobreajustar", mas preciso de ajuda para descobrir um exemplo do mundo real que se aplique à sobreajuste.
Respostas:
Aqui está um bom exemplo de modelos de séries temporais de eleições presidenciais da xkcd:
Houve apenas 56 eleições presidenciais e 43 presidentes. Não há muitos dados para aprender. Quando o espaço do preditor se expande para incluir itens como dentes falsos e o valor dos nomes em Scrabble, é muito fácil para o modelo deixar de ajustar os recursos generalizáveis dos dados (o sinal) e começar a combinar o ruído. Quando isso acontece, o ajuste nos dados históricos pode melhorar, mas o modelo falhará miseravelmente quando usado para fazer inferências sobre futuras eleições presidenciais.
Meu favorito era o exemplo do Matlab de população do censo dos EUA em relação ao tempo:
(Pelo menos, sinceramente, espero que este seja um exemplo de sobreajuste)
http://www.mathworks.com/help/curvefit/examples/polynomial-curve-fitting.html#zmw57dd0e115
O estudo de Chen et al. (2013) encaixa dois cúbicos em uma suposta descontinuidade na expectativa de vida em função da latitude.
Chen Y., Ebenstein, A., Greenstone, M. e Li, H. 2013. Evidências sobre o impacto da exposição sustentada à poluição do ar na expectativa de vida da política do rio Huai na China. Anais da Academia Nacional de Ciências 110: 12936–12941. abstrato
Apesar de ter sido publicado em um excelente periódico, etc., de seu apoio tácito por pessoas ilustres, etc., eu ainda o apresentaria como um exemplo prima facie de ajuste excessivo.
Um sinal revelador é a implausibilidade dos cúbicos. A instalação de um cúbico implica implicitamente que há alguma razão pela qual a expectativa de vida varia como um polinômio de terceiro grau da latitude em que você mora. Isso parece bastante implausível: não é fácil imaginar um mecanismo físico plausível que cause esse efeito.
Veja também a seguinte postagem no blog para uma análise mais detalhada deste artigo: Evidências sobre o impacto do uso sustentado da regressão polinomial na inferência causal (uma alegação de que o aquecimento do carvão está reduzindo a vida útil em 5 anos para meio bilhão de pessoas) .
Em um artigo de 14 de março de 2014 na Science , David Lazer, Ryan Kennedy, Gary King e Alessandro Vespignani identificaram problemas no Google Tendências da Gripe que eles atribuem ao sobreajuste.
Aqui está como eles contam a história, incluindo a explicação da natureza do ajuste excessivo e por que causou a falha do algoritmo:
Em fevereiro de 2013, ... A Nature informou que a TFG previa mais que o dobro da proporção de consultas médicas por doenças semelhantes à influenza (ILI) do que os Centros de Controle e Prevenção de Doenças (CDC) ... Isso aconteceu apesar do fato de a GFT ter sido construída para prever relatórios do CDC. ...
Essencialmente, a metodologia foi encontrar as melhores correspondências entre 50 milhões de termos de pesquisa para ajustar 1152 pontos de dados. As chances de encontrar termos de pesquisa que correspondam à propensão da gripe, mas não são estruturalmente relacionadas e, portanto, não prevêem o futuro, eram bastante altas. Os desenvolvedores de GFT, de fato, relatam eliminar termos de pesquisa sazonais não relacionados à gripe, mas fortemente correlacionados com os dados do CDC, como os referentes ao basquete do ensino médio. Isso deveria ter sido um aviso de que o big data estava superando o pequeno número de casos - uma preocupação padrão na análise de dados. Esse método ad hoc de descartar termos de pesquisa peculiares falhou quando a GFT perdeu completamente a pandemia não sazonal de influenza A – H1N1 de 2009.
[Enfase adicionada.]
Vi essa imagem há algumas semanas e achei que era bastante relevante para a questão em questão.
Em vez de ajustar linearmente a sequência, ela foi ajustada com um polinômio quártico, que tinha um ajuste perfeito, mas resultou em uma resposta claramente ridícula.
Para mim, o melhor exemplo é o sistema ptolemaico em astronomia. Ptolomeu assumiu que a Terra está no centro do universo e criou um sistema sofisticado de órbitas circulares aninhadas, o que explicaria muito bem os movimentos de objetos no céu. Os astrônomos tiveram que continuar adicionando círculos para explicar o desvio, até que um dia ficou tão complicado que as pessoas começaram a duvidar. Foi quando Copernicus apresentou um modelo mais realista.
Este é o melhor exemplo de sobreajuste para mim. Você não pode ajustar o processo de geração de dados (DGP) aos dados. Você pode ajustar demais o modelo mal especificado. Quase todos os nossos modelos em ciências sociais são mal especificados, portanto a chave é lembrar disso e mantê-los parcimoniosos. Não tente capturar todos os aspectos do conjunto de dados, mas tente capturar os recursos essenciais através da simplificação.
Digamos que você tenha 100 pontos em um gráfico.
Você poderia dizer: hmm, eu quero prever o próximo.
Aqui você pode ver uma ilustração simplificada para este exemplo:
Quanto maior a ordem polinomial, melhor será o ajuste dos pontos existentes.
No entanto, os polinômios de alta ordem, apesar de parecerem melhores modelos para os pontos, estão na verdade os superando. Ele modela o ruído e não a verdadeira distribuição de dados.
Como conseqüência, se você adicionar um novo ponto ao gráfico com sua curva perfeitamente ajustada, provavelmente estará mais distante da curva do que se você usasse um polinômio de ordem mais simples e mais simples.
A análise que pode ter contribuído para o desastre de Fukushima é um exemplo de ajuste excessivo. Existe uma relação bem conhecida na Ciência da Terra que descreve a probabilidade de terremotos de um certo tamanho, dada a frequência observada de terremotos "menores". Isso é conhecido como o relacionamento Gutenberg-Richter e fornece um ajuste de log linear por muitas décadas. A análise do risco de terremoto nas proximidades do reator (este diagrama do excelente livro de Nate Silver "The Signal and the Noise") mostra uma "torção" nos dados. Ignorar a torção leva a uma estimativa do risco anualizado de um terremoto de magnitude 9 como cerca de 1 em 300 - definitivamente algo para se preparar. Contudo, o ajuste excessivo de uma linha de dupla inclinação (como aparentemente foi feito durante a avaliação de risco inicial para os reatores) reduz a previsão de risco para cerca de 1 em 13.000 anos. Não se poderia culpar os engenheiros por não projetarem os reatores para resistir a um evento tão improvável - mas definitivamente se deve culpar os estatísticos que superestimularam (e depois extrapolaram) os dados ...
"Agh! Pat está saindo da empresa. Como vamos encontrar um substituto?"
Anúncio de emprego:
Procura-se: Engenheiro Eletricista. Pessoa andrógina de 42 anos, formada em Engenharia Elétrica, matemática e pecuária. Deve ter 68 cm de altura, com cabelos castanhos, uma toupeira sobre o olho esquerdo e propenso a diatribes prolongadas contra gansos e uso indevido da palavra "conselho".
Em um sentido matemático, o ajuste excessivo geralmente se refere à criação de um modelo com mais parâmetros do que o necessário, resultando em um melhor ajuste para um conjunto de dados específico, mas sem capturar detalhes relevantes necessários para ajustar outros conjuntos de dados da classe de interesse.
No exemplo acima, o pôster não consegue diferenciar as características relevantes das irrelevantes. É provável que as qualificações resultantes sejam atendidas apenas pela pessoa que eles já sabem que é adequada para o trabalho (mas não o deseja mais).
Este é inventado, mas espero que ilustre o caso.
Exemplo 1
Primeiro, vamos criar alguns dados aleatórios. Aqui você tem variáveis, cada uma extraída de uma distribuição normal padrão, com casos:
set.seed(123)
k <- 100
data <- replicate(k, rnorm(100))
colnames(data) <- make.names(1:k)
data <- as.data.frame(data)
Agora, vamos ajustar uma regressão linear a ela:
fit <- lm(X1 ~ ., data=data)
E aqui está um resumo dos dez primeiros preditores:
> summary(fit)
Call:
lm(formula = X1 ~ ., data = data)
Residuals:
ALL 100 residuals are 0: no residual degrees of freedom!
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.502e-01 NA NA NA
X2 3.153e-02 NA NA NA
X3 -6.200e-01 NA NA NA
X4 7.087e-01 NA NA NA
X5 4.392e-01 NA NA NA
X6 2.979e-01 NA NA NA
X7 -9.092e-02 NA NA NA
X8 -5.783e-01 NA NA NA
X9 5.965e-01 NA NA NA
X10 -8.289e-01 NA NA NA
...
Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: NaN
F-statistic: NaN on 99 and 0 DF, p-value: NA
os resultados parecem bem estranhos, mas vamos traçar isso.
Isso é ótimo, os valores ajustados se encaixam perfeitamente nos valores . A variação do erro é literalmente zero. Mas, não nos convença, vamos verificar qual é a soma das diferenças absolutas entre e os valores ajustados:
> sum(abs(data$X1-fitted(fit)))
[1] 0
É zero, então as parcelas não estavam mentindo para nós: o modelo se encaixa perfeitamente. E qual é a precisão na classificação?
> sum(data$X1==fitted(fit))
[1] 100
Obtemos 100 dos 100 valores ajustados que são idênticos a . E conseguimos isso com números totalmente aleatórios ajustados a outros números totalmente aleatórios.
Exemplo 2
Mais um exemplo. Vamos criar mais alguns dados:
data2 <- cbind(1:10, diag(10))
colnames(data2) <- make.names(1:11)
data2 <- as.data.frame(data2)
então fica assim:
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
1 1 1 0 0 0 0 0 0 0 0 0
2 2 0 1 0 0 0 0 0 0 0 0
3 3 0 0 1 0 0 0 0 0 0 0
4 4 0 0 0 1 0 0 0 0 0 0
5 5 0 0 0 0 1 0 0 0 0 0
6 6 0 0 0 0 0 1 0 0 0 0
7 7 0 0 0 0 0 0 1 0 0 0
8 8 0 0 0 0 0 0 0 1 0 0
9 9 0 0 0 0 0 0 0 0 1 0
10 10 0 0 0 0 0 0 0 0 0 1
e agora vamos ajustar uma regressão linear a isso:
fit2 <- lm(X1~., data2)
então temos as seguintes estimativas:
> summary(fit2)
Call:
lm(formula = X1 ~ ., data = data2)
Residuals:
ALL 10 residuals are 0: no residual degrees of freedom!
Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 10 NA NA NA
X2 -9 NA NA NA
X3 -8 NA NA NA
X4 -7 NA NA NA
X5 -6 NA NA NA
X6 -5 NA NA NA
X7 -4 NA NA NA
X8 -3 NA NA NA
X9 -2 NA NA NA
X10 -1 NA NA NA
X11 NA NA NA NA
Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: NaN
F-statistic: NaN on 9 and 0 DF, p-value: NA
como você pode ver, temos , ou seja, "100% de variação explicada". A regressão linear nem precisou usar o 10º preditor. A partir dessa regressão, vemos que pode ser previsto usando a função:
então é:
É bastante auto-explicativo. Você pode pensar no Exemplo 1 como semelhante ao Exemplo 2, mas com algum "ruído" adicionado. Se você possui dados grandes o suficiente e os utiliza para "prever" algo, às vezes um único "recurso" pode convencê-lo de que você tem um "padrão" que descreve bem sua variável dependente, embora possa ser apenas uma coincidência. No Exemplo 2, nada é realmente previsto, mas exatamente o mesmo aconteceu no Exemplo 1, apenas os valores das variáveis foram diferentes.
Exemplos da vida real
O exemplo real disso é prever ataques terroristas em 11 de setembro de 2001, observando "padrões" em números sorteados aleatoriamente por geradores de números pseudoaleatórios por computador pelo Global Consciousness Project ou "mensagens secretas" em "Moby Dick" que revelam fatos sobre assassinatos de pessoas famosas (inspirado por achados semelhantes na Bíblia ).
Conclusão
Se você se esforçar bastante, encontrará "padrões" para qualquer coisa. No entanto, esses padrões não permitem que você aprenda nada sobre o universo e não ajudam a chegar a conclusões gerais. Eles se encaixam perfeitamente aos seus dados, mas seriam inúteis, pois não se encaixam em nada além dos dados em si. Eles não permitem que você faça previsões razoáveis fora da amostra, porque o que eles fariam é que eles preferem imitar a descrever os dados.
Um problema comum que resulta em super adaptação na vida real é que, além dos termos para um modelo especificado corretamente, podemos ter acrescentado algo estranho: poderes irrelevantes (ou outras transformações) dos termos corretos, variáveis irrelevantes ou interações irrelevantes.
Isso acontece na regressão múltipla se você adicionar uma variável que não deve aparecer no modelo especificado corretamente, mas não deseja descartá-la porque tem medo de induzir o viés de variável omitida . Obviamente, você não tem como saber que a incluiu de maneira errada, pois não pode ver toda a população, apenas sua amostra, portanto não pode ter certeza de qual é a especificação correta. (Como o @Scortchi aponta nos comentários, pode não haver uma especificação de modelo "correta" - nesse sentido, o objetivo da modelagem é encontrar uma especificação "suficientemente boa"; para evitar ajustes excessivos, é necessário evitar a complexidade do modelo. maior do que pode ser sustentado a partir dos dados disponíveis.) Se você quiser um exemplo real de sobreajuste, isso acontece semprevocê joga todos os preditores em potencial em um modelo de regressão, se algum deles, de fato, não tiver relação com a resposta, uma vez que os efeitos de outros sejam eliminados.
Com esse tipo de sobreajuste, a boa notícia é que a inclusão desses termos irrelevantes não apresenta viés para seus estimadores e, em amostras muito grandes, os coeficientes dos termos irrelevantes devem ser próximos de zero. Mas também há más notícias: como as informações limitadas de sua amostra agora estão sendo usadas para estimar mais parâmetros, elas só podem ser feitas com menos precisão - aumentando os erros padrão nos termos genuinamente relevantes. Isso também significa que eles provavelmente estarão mais longe dos valores verdadeiros do que as estimativas de uma regressão especificada corretamente, o que, por sua vez, significa que, se dados novos valores de suas variáveis explicativas, as previsões do modelo com excesso de ajustes tenderão a ser menos precisas do que para o modelo especificado corretamente.
Aqui está um gráfico do PIB logarítmico em relação à população logarítmica de 50 estados dos EUA em 2010. Uma amostra aleatória de 10 estados foi selecionada (destacada em vermelho) e, para essa amostra, ajustamos um modelo linear simples e um polinômio de grau 5. Para a amostra pontos, o polinômio possui graus extras de liberdade que permitem "contornar" os dados observados mais próximos do que a linha reta. Mas os 50 estados como um todo obedecem a uma relação quase linear, portanto, o desempenho preditivo do modelo polinomial nos 40 pontos fora da amostra é muito ruim se comparado ao modelo menos complexo, principalmente ao extrapolar. O polinômio estava efetivamente ajustando parte da estrutura aleatória (ruído) da amostra, que não se generalizou para a população em geral. Foi particularmente pobre em extrapolar além do intervalo observado da amostra.esta revisão desta resposta.)
Problemas semelhantes afetam a regressão em relação a múltiplos preditores. Para observar alguns dados reais, é mais fácil com a simulação do que com amostras do mundo real, pois dessa forma você controla o processo de geração de dados (efetivamente, você vê a "população" e o verdadeiro relacionamento). Nesse R
código, o modelo verdadeiro é mas também são fornecidos dados sobre variáveis irrelevantes e. Eu projetei a simulação para que as variáveis preditoras sejam correlacionadas, o que seria uma ocorrência comum em dados da vida real. Ajustamos os modelos corretamente especificados e com excesso de ajustes (inclui os preditores irrelevantes e suas interações) em uma parte dos dados gerados e, em seguida, comparamos o desempenho preditivo em um conjunto de validação. A multicolinearidade dos preditores torna a vida ainda mais difícil para o modelo com excesso de ajuste, pois fica mais difícil separar os efeitos de , e , mas observe que isso não influencia nenhum dos estimadores de coeficiente.
require(MASS) #for multivariate normal simulation
nsample <- 25 #sample to regress
nholdout <- 1e6 #to check model predictions
Sigma <- matrix(c(1, 0.5, 0.4, 0.5, 1, 0.3, 0.4, 0.3, 1), nrow=3)
df <- as.data.frame(mvrnorm(n=(nsample+nholdout), mu=c(5,5,5), Sigma=Sigma))
colnames(df) <- c("x1", "x2", "x3")
df$y <- 5 + 2 * df$x1 + rnorm(n=nrow(df)) #y = 5 + *x1 + e
holdout.df <- df[1:nholdout,]
regress.df <- df[(nholdout+1):(nholdout+nsample),]
overfit.lm <- lm(y ~ x1*x2*x3, regress.df)
correctspec.lm <- lm(y ~ x1, regress.df)
summary(overfit.lm)
summary(correctspec.lm)
holdout.df$overfitPred <- predict.lm(overfit.lm, newdata=holdout.df)
holdout.df$correctSpecPred <- predict.lm(correctspec.lm, newdata=holdout.df)
with(holdout.df, sum((y - overfitPred)^2)) #SSE
with(holdout.df, sum((y - correctSpecPred)^2))
require(ggplot2)
errors.df <- data.frame(
Model = rep(c("Overfitted", "Correctly specified"), each=nholdout),
Error = with(holdout.df, c(y - overfitPred, y - correctSpecPred)))
ggplot(errors.df, aes(x=Error, color=Model)) + geom_density(size=1) +
theme(legend.position="bottom")
Aqui estão meus resultados de uma execução, mas é melhor executar a simulação várias vezes para ver o efeito de diferentes amostras geradas.
> summary(overfit.lm)
Call:
lm(formula = y ~ x1 * x2 * x3, data = regress.df)
Residuals:
Min 1Q Median 3Q Max
-2.22294 -0.63142 -0.09491 0.51983 2.24193
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 18.85992 65.00775 0.290 0.775
x1 -2.40912 11.90433 -0.202 0.842
x2 -2.13777 12.48892 -0.171 0.866
x3 -1.13941 12.94670 -0.088 0.931
x1:x2 0.78280 2.25867 0.347 0.733
x1:x3 0.53616 2.30834 0.232 0.819
x2:x3 0.08019 2.49028 0.032 0.975
x1:x2:x3 -0.08584 0.43891 -0.196 0.847
Residual standard error: 1.101 on 17 degrees of freedom
Multiple R-squared: 0.8297, Adjusted R-squared: 0.7596
F-statistic: 11.84 on 7 and 17 DF, p-value: 1.942e-05
Essas estimativas de coeficiente para o modelo com excesso de ajustes são terríveis - devem ser cerca de 5 para a interceptação, 2 para e 0 para o restante. Mas os erros padrão também são grandes. Os valores corretos para esses parâmetros estão bem dentro dos intervalos de confiança de 95% em cada caso. O é 0,8297 que sugere um ajuste razoável.R 2
> summary(correctspec.lm)
Call:
lm(formula = y ~ x1, data = regress.df)
Residuals:
Min 1Q Median 3Q Max
-2.4951 -0.4112 -0.2000 0.7876 2.1706
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.7844 1.1272 4.244 0.000306 ***
x1 1.9974 0.2108 9.476 2.09e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.036 on 23 degrees of freedom
Multiple R-squared: 0.7961, Adjusted R-squared: 0.7872
F-statistic: 89.8 on 1 and 23 DF, p-value: 2.089e-09
As estimativas do coeficiente são muito melhores para o modelo especificado corretamente. Mas observe que o é menor, em 0,7961, pois o modelo menos complexo tem menos flexibilidade para ajustar as respostas observadas. é mais perigoso do que útil neste caso !R 2
> with(holdout.df, sum((y - overfitPred)^2)) #SSE
[1] 1271557
> with(holdout.df, sum((y - correctSpecPred)^2))
[1] 1052217
O mais alto na amostra em que regredimos mostrou como o modelo com excesso de ajuste produziu previsões, , mais próximas do observado do que o modelo especificado corretamente. Mas isso é porque estava adaptando a esses dadosy y(e tinha mais graus de liberdade para fazê-lo do que o modelo especificado corretamente, portanto, poderia produzir um ajuste "melhor"). Observe a Soma dos erros quadráticos para as previsões no conjunto de validação, das quais não usamos para estimar os coeficientes de regressão, e podemos ver o quão pior o desempenho do modelo com excesso de ajustes. Na realidade, o modelo corretamente especificado é aquele que faz as melhores previsões. Não devemos basear nossa avaliação do desempenho preditivo nos resultados do conjunto de dados que usamos para estimar os modelos. Aqui está um gráfico de densidade dos erros, com a especificação correta do modelo produzindo mais erros próximos de 0:
A simulação representa claramente muitas situações relevantes da vida real (imagine qualquer resposta da vida real que dependa de um único preditor e imagine incluir "preditores" estranhos no modelo), mas tem o benefício de poder jogar com o processo de geração de dados , os tamanhos das amostras, a natureza do modelo com excesso de equipamento e assim por diante. Essa é a melhor maneira de examinar os efeitos do sobreajuste, pois para os dados observados geralmente não há acesso ao DGP, e ainda são dados "reais" no sentido em que você pode examiná-los e usá-los. Aqui estão algumas idéias que vale a pena experimentar:
n <- 1e6
então o modelo com excesso de equipamento eventualmente estima coeficientes razoáveis (cerca de 5 para interceptação, cerca de 2 para , cerca de 0 para todo o resto) e seu desempenho preditivo, medido pelo SSE, não segue o modelo corretamente especificado. . Por outro lado, tente ajustar uma amostra muito pequena (lembre-se de que você precisa deixar graus de liberdade suficientes para estimar todos os coeficientes) e verá que o modelo com excesso de ajuste tem um desempenho terrível, tanto para estimar coeficientes quanto para prever novos dados.Sigma
. Lembre-se de mantê-lo positivo semi-definido (o que inclui ser simétrico). Você deve descobrir que, se reduzir a multicolinearidade, o modelo com excesso de ajuste não apresenta um desempenho tão ruim. Mas lembre-se de que preditores correlatos ocorrem na vida real.df$y <- 5 + 2*df$x1 + rnorm(n=nrow(df))
df$y <- 5 + 2 * df$x1 + 0.1*df$x2 + 0.1*df$x3 + rnorm(n=nrow(df))
nsample <- 25
, o modelo completo ainda está sobreajustado, apesar de ser uma melhor representação da população subjacente e, em simulações repetidas, seu desempenho preditivo no conjunto de validação ainda é consistentemente pior. Com esses dados limitados, é mais importante obter uma boa estimativa do coeficiente de do que gastar informações com o luxo de estimar os coeficientes menos importantes. Como os efeitos de e são tão difíceis de discernir em uma amostra pequena, o modelo completo está efetivamente usando a flexibilidade de seus graus extras de liberdade para "ajustar o ruído" e isso generaliza mal. Mas comnsample <- 1e6
, ele pode estimar os efeitos mais fracos muito bem e simulações mostram que o modelo complexo tem poder preditivo que supera o simples. Isso mostra como o "overfitting" é um problema de complexidade do modelo e dos dados disponíveis.Quando eu estava tentando entender isso, comecei a pensar em termos de analogias com a descrição de objetos reais, então acho que é o "mundo real" possível, se você quiser entender a ideia geral:
Digamos que você queira descrever para alguém o conceito de cadeira, para que eles obtenham um modelo conceitual que permita prever se um novo objeto encontrado é uma cadeira. Você vai à Ikea, pega uma amostra de cadeiras e começa a descrevê-las usando duas variáveis: é um objeto com quatro pernas onde você pode sentar. Bem, isso também pode descrever um banquinho, uma cama ou muitas outras coisas. Seu modelo é insuficiente, como se você tentasse modelar uma distribuição complexa com poucas variáveis - muitas coisas que não são de cadeira serão identificadas como cadeiras. Então, vamos aumentar o número de variáveis, acrescentar que o objeto precisa ter um back, por exemplo. Agora você tem um modelo bastante aceitável que descreve seu conjunto de cadeiras, mas é geral o suficiente para permitir que um novo objeto seja identificado como um. Seu modelo descreve os dados e é capaz de fazer previsões. No entanto, digamos que você tenha um conjunto em que todas as cadeiras sejam pretas ou brancas e feitas de madeira. Você decide incluir essas variáveis em seu modelo e, de repente, ele não identifica uma cadeira amarela de plástico como uma cadeira. Assim, você ajustou demais o seu modelo, incluiu recursos do seu conjunto de dados como se fossem recursos de cadeiras em geral (se preferir, identificou "ruído" como "sinal", interpretando a variação aleatória da sua amostra como uma característica de todas as "cadeiras do mundo real"). Portanto, você aumenta sua amostra e espera incluir novos materiais e cores ou diminui o número de variáveis em seus modelos. t identifique uma cadeira plástica amarela como cadeira. Assim, você ajustou demais o seu modelo, incluiu recursos do seu conjunto de dados como se fossem recursos de cadeiras em geral (se preferir, identificou "ruído" como "sinal", interpretando a variação aleatória da sua amostra como uma característica de todas as "cadeiras do mundo real"). Portanto, você aumenta sua amostra e espera incluir novos materiais e cores ou diminui o número de variáveis em seus modelos. t identifique uma cadeira plástica amarela como cadeira. Assim, você ajustou demais o seu modelo, incluiu recursos do seu conjunto de dados como se fossem recursos de cadeiras em geral (se preferir, identificou "ruído" como "sinal", interpretando a variação aleatória da sua amostra como uma característica de todas as "cadeiras do mundo real"). Portanto, você aumenta sua amostra e espera incluir novos materiais e cores ou diminui o número de variáveis em seus modelos.
Pode ser uma analogia simplista e uma análise mais aprofundada, mas acho que funciona como uma conceituação geral ... Deixe-me saber se alguma parte precisa de esclarecimentos.
Na modelagem preditiva, a idéia é usar os dados disponíveis para descobrir as tendências existentes e que podem ser generalizadas para dados futuros. Ao incluir variáveis em seu modelo que tenham algum efeito menor e não significativo, você estará abandonando essa ideia. O que você está fazendo é considerar as tendências específicas em sua amostra específica que só existem por causa de ruído aleatório, em vez de uma tendência subjacente verdadeira. Em outras palavras, um modelo com muitas variáveis se ajusta ao ruído, em vez de descobrir o sinal.
Aqui está uma ilustração exagerada do que estou falando. Aqui os pontos são os dados observados e a linha é o nosso modelo. Veja que um ajuste perfeito - que modelo incrível! Mas nós realmente descobrimos a tendência ou estamos apenas nos adaptando ao barulho? Provavelmente o último.
Uma forma de sobreajuste é bastante comum nos esportes, ou seja, identificar padrões para explicar resultados passados por fatores que não têm ou, na melhor das hipóteses, um poder vago para prever resultados futuros. Uma característica comum desses "padrões" é que eles geralmente são baseados em poucos casos, de modo que o puro acaso é provavelmente a explicação mais plausível para o padrão.
Os exemplos incluem coisas como (as "aspas" são compostas por mim, mas geralmente são parecidas)
A equipe A venceu todos os jogos X desde que o treinador começou a usar sua jaqueta vermelha mágica.
Semelhante:
Não devemos nos barbear durante os playoffs, porque isso nos ajudou a vencer os últimos X jogos.
Menos supersticioso, mas também uma forma de sobreajuste:
O Borussia Dortmund nunca perdeu um jogo em casa na Liga dos Campeões contra um adversário espanhol quando perdeu o jogo fora da Bundesliga por mais de dois gols, tendo marcado pelo menos uma vez.
Semelhante:
Roger Federer venceu todas as suas aparições na Copa Davis aos adversários europeus quando ele chegou às meias-finais do Aberto da Austrália daquele ano.
Os dois primeiros são absurdos bastante óbvios (pelo menos para mim). Os dois últimos exemplos podem perfeitamente ser verdadeiros na amostra (ou seja, no passado), mas eu ficaria muito feliz em apostar contra um oponente que deixasse essa "informação" afetar substancialmente suas chances de Dortmund vencer o Madri se perdessem 4: 1 no Schalke no sábado anterior ou Federer derrotando Djokovic, mesmo que ele tenha vencido o Aberto da Austrália naquele ano.
Aqui está um exemplo do "mundo real", não no sentido em que alguém o encontrou na pesquisa, mas no sentido de que ele usa conceitos cotidianos sem muitos termos específicos de estatística. Talvez essa maneira de dizer seja mais útil para algumas pessoas cujo treinamento é em outros campos.
Imagine que você tenha um banco de dados com dados sobre pacientes com uma doença rara. Você é um estudante de medicina e deseja ver se consegue reconhecer os fatores de risco para esta doença. Houve 8 casos da doença neste hospital, e você registrou 100 informações aleatórias sobre eles: idade, raça, ordem de nascimento, eles tiveram sarampo quando criança, qualquer que seja. Você também registrou os dados de 8 pacientes sem essa doença.
Você decide usar a seguinte heurística para fatores de risco: se um fator assume um determinado valor em mais de um de seus pacientes doentes, mas em 0 de seus controles, você o considera um fator de risco. (Na vida real, você usaria um método melhor, mas eu quero mantê-lo simples). Você descobre que 6 de seus pacientes são vegetarianos (mas nenhum dos controles é vegetariano), 3 têm ancestrais suecos e dois deles têm um distúrbio de fala gaguejante. Dos outros 97 fatores, não há nada que ocorra em mais de um paciente, mas não está presente entre os controles.
Anos depois, alguém mais se interessa por essa doença órfã e replica sua pesquisa. Como ele trabalha em um hospital maior, que possui uma cooperação de compartilhamento de dados com outros hospitais, ele pode usar dados de 106 casos, em oposição aos seus 8 casos. E ele descobre que a prevalência de gagos é a mesma no grupo de pacientes e no grupo de controle; a gagueira não é um fator de risco.
O que aconteceu aqui é que seu pequeno grupo teve 25% de gagos por acaso. Sua heurística não tinha como saber se isso é clinicamente relevante ou não. Você definiu critérios para decidir quando considera um padrão nos dados "interessante" o suficiente para ser incluído no modelo e, de acordo com esses critérios, a gagueira era interessante o suficiente.
Seu modelo foi super ajustado, porque incluiu por engano um parâmetro que não é realmente relevante no mundo real. Ele se encaixa bem na sua amostra - os 8 pacientes + 8 controles - muito bem, mas não se encaixa nos dados do mundo real. Quando um modelo descreve sua amostra melhor do que descreve a realidade, é chamado de sobreajustado.
Se você tivesse escolhido um limiar de 3 em 8 pacientes com um recurso, isso não teria acontecido - mas você teria uma chance maior de perder algo realmente interessante. Especialmente na medicina, onde muitas doenças acontecem apenas em uma pequena fração das pessoas que exibem fator de risco, é difícil fazer isso. E existem métodos para evitá-lo (basicamente, compare com uma segunda amostra e veja se o poder explicativo permanece o mesmo ou cai), mas esse é um tópico para outra pergunta.
Aqui está um exemplo real de sobreajuste que ajudei a perpetrar e depois tentei (sem sucesso) evitar:
Eu tinha vários milhares de séries temporais independentes e bivariadas, cada uma com no máximo 50 pontos de dados, e o projeto de modelagem envolveu a adaptação de uma auto-regressão vetorial (VAR) a cada uma. Nenhuma tentativa foi feita para regularizar as observações, estimar os componentes de variação ou algo assim. Os pontos temporais foram medidos ao longo de um único ano, de modo que os dados estavam sujeitos a todos os tipos de efeitos sazonais e cíclicos que apareceram apenas uma vez em cada série temporal.
Um subconjunto dos dados exibiu uma taxa implausivelmente alta de causalidade de Granger em comparação com o restante dos dados. As verificações pontuais revelaram que os picos positivos estavam ocorrendo um ou dois atrasos nesse subconjunto, mas ficou claro a partir do contexto que ambos os picos foram causados diretamente por uma fonte externa e que um pico não estava causando o outro. As previsões fora da amostra usando esses modelos provavelmente estariam erradas, porque os modelos foram superalimentados: em vez de "suavizar" os picos calculando a média deles no restante dos dados, havia poucas observações suficientes de que os picos estavam realmente dirigindo as estimativas.
No geral, não acho que o projeto tenha sido mal, mas acho que não produziu resultados que foram tão úteis quanto poderiam ter sido. Parte da razão disso é que o procedimento de VARs independentes, mesmo com apenas um ou dois atrasos, estava tendo dificuldade em distinguir dados e ruído, e assim se adequava a eles à custa de fornecer informações sobre o antigo.
Muitas pessoas inteligentes neste segmento - muitas muito mais versadas em estatística do que eu. Mas ainda não vejo um exemplo fácil de entender para o leigo. O exemplo presidencial não chega a ser bem aceito em termos de adaptação excessiva típica, porque, embora tecnicamente seja adequado a cada uma de suas reivindicações malucas, geralmente um modelo de adaptação excessiva se adapta - TODO - ao ruído fornecido, não apenas a um elemento dele.
Eu realmente gosto do gráfico na explicação da troca de viés e variação na wikipedia: http://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff
(O gráfico mais baixo é o exemplo de sobreajuste).
Estou com dificuldade para pensar em um exemplo do mundo real que não soa como mumbo-jumbo completo. A idéia é que os dados sejam em parte causados por variáveis mensuráveis e compreensíveis - parte do ruído aleatório. Tentar modelar esse ruído como um padrão fornece imprecisão.
Um exemplo clássico é a modelagem baseada exclusivamente em R ^ 2 no MS Excel (você está tentando ajustar uma equação / modelo literalmente o mais próximo possível dos dados usando polinômios, por mais absurdo que seja).
Digamos que você esteja tentando modelar as vendas de sorvetes em função da temperatura. Você tem dados do "mundo real". Você plota os dados e tenta maximizar R ^ 2. Você verá que, usando dados do mundo real, a equação de ajuste mais próxima não é linear ou quadrática (o que faria sentido lógico). Como quase todas as equações, os termos polinomiais mais absurdos que você adiciona (x ^ 6 -2x ^ 5 + 3x ^ 4 + 30x ^ 3-43,2x ^ 2-29x) - mais próximos se ajustam aos dados. Então, como isso relaciona sensivelmente a temperatura às vendas de sorvete? Como você explicaria esse polinômio ridículo? A verdade é que não é o verdadeiro modelo. Você superestima os dados.
Você está levando em consideração o ruído - que pode ter sido devido a promoções de vendas ou alguma outra variável ou "ruído" como uma borboleta batendo as asas no cosmos (algo nunca previsível) - e tentou modelar isso com base na temperatura. Agora, normalmente, se o seu ruído / erro não atingir a média de zero ou se correlacionar automaticamente, etc, significa que existem mais variáveis por aí --- e, eventualmente, você obtém um ruído geralmente distribuído aleatoriamente, mas ainda assim, é o melhor que posso explique.
Minha favorita é a "fórmula 3964" descoberta antes da competição de futebol da Copa do Mundo em 1998:
O Brasil venceu o campeonato em 1970 e 1994. Resuma esses 2 números e você terá 3964; A Alemanha venceu em 1974 e 1990, somando novamente 3964; o mesmo aconteceu com a Argentina vencendo em 1978 e 1986 (1978 + 1986 = 3964).
Esse é um fato muito surpreendente, mas todos podem ver que não é aconselhável basear qualquer previsão futura nessa regra. E, de fato, a regra determina que o vencedor da Copa do Mundo em 1998 deveria ter sido a Inglaterra desde 1966 + 1998 = 3964 e a Inglaterra venceu em 1966. Isso não aconteceu e o vencedor foi a França.
Um pouco intuitivo, mas talvez ajude. Digamos que você queira aprender um novo idioma. Como você aprende? em vez de aprender as regras de um curso, você usa exemplos. Especificamente, programas de TV. Você gosta de programas de crimes e assiste a algumas séries de programas de policiais. Então, você faz outro programa de crimes e assiste a algumas séries desse tipo. No terceiro show, você vê - você sabe quase tudo, sem problemas. Você não precisa das legendas em inglês.
Mas então você experimenta o seu idioma recém-aprendido na rua na sua próxima visita e percebe que não pode falar de outra coisa senão dizer "oficial! Aquele homem pegou minha bolsa e atirou nessa senhora!". Enquanto o seu 'erro de treinamento' era zero, o seu 'erro de teste' é alto, devido ao 'ajuste excessivo' do idioma, estudando apenas um subconjunto limitado de palavras e assumindo o suficiente.