Ao construir um modelo de regressão usando conjuntos de modelagem / validação separados, é apropriado "recircular" os dados de validação?

13

Suponha que eu tenha uma divisão 80/20 entre observações de modelagem / validação. Ajustei um modelo ao conjunto de dados de modelagem e me sinto confortável com o erro que estou vendo no conjunto de dados de validação. Antes de lançar meu modelo para escorar observações futuras, é apropriado combinar a validação novamente com os dados de modelagem para obter estimativas de parâmetros atualizadas nos dados de 100%? Eu ouvi duas perspectivas sobre isso:

  1. A validação que realizei foi uma validação da estrutura do modelo, ou seja, o conjunto de preditores e transformações que apliquei. Não faz sentido deixar 20% dos meus dados em cima da mesa quando eu poderia usá-lo para atualizar minhas estimativas.

  2. A validação que realizei foi parcialmente uma validação das estimativas de parâmetro que calculei no meu conjunto de dados de modelagem. Se eu atualizar o ajuste do modelo, alterei as estimativas e não tenho mais uma maneira objetiva de testar o desempenho do modelo atualizado.

Eu sempre segui o argumento # 1, mas, mais recentemente, ouvi várias pessoas argumentarem # 2. Eu queria ver o que os outros pensam sobre isso. Você já viu boas discussões na literatura ou em outro lugar sobre esse tópico?

DavidLiebeHart
fonte

Respostas:

6

A opção 1 é a correta. Você pode adicionar o conjunto de dados de validação para atualizar os parâmetros do seu modelo.

Essa é a resposta. Agora vamos discutir isso. O fato de o que você fez foi a sua opção 1. acima é mais claro se você fez uma validação cruzada do bootstrapping (e você deveria ter feito isso - isso não está claro na sua pergunta).

Na validação cruzada de 5 vezes, você divide os dados em 5 conjuntos aleatórios de tamanho igual. Vamos chamá-los de A, B, C, D e E. Em seguida, você aprenderá os parâmetros do seu modelo (do próprio modelo) em 4 dos conjuntos, digamos A, B, C e D, e testá-lo ou validá-lo em o quinto modelo E. (Você fez isso). Mas então você seleciona outro conjunto como teste / validação (digamos D) e aprende a usar os outros 4 (A, B, C e E). Teste em D, repita.

O erro no seu modelo preditivo é o erro médio dos 5 testes - e você tem alguma compreensão de como o erro preditivo depende dos conjuntos de aprendizado e teste. Na melhor das hipóteses, todas as cinco medidas de erro são semelhantes e você pode ter certeza de que seu modelo será executado nesse nível no futuro.

Mas qual modelo ?? Para cada conjunto de conjuntos de aprendizado, você terá um parâmetro diferente para o modelo. Aprender com A, B, C, D gera um conjunto de parâmetros P1, aprendendo com A, B, C, E, o conjunto de parâmetros P2, até P5. Nenhum deles é o seu modelo.

O que você testou é o erro esperado de um procedimento para construir modelos , o procedimento que você seguiu quando o conjunto de aprendizado era A, B, C, D e quando era A, B, C, E e assim por diante. É este procedimento que gera um modelo com esse erro esperado.

Então, qual é o modelo final? É a aplicação do procedimento em todos os dados disponíveis (A, B, C, D e E). Um novo modelo com o conjunto de parâmetros P0, que você nunca gerou antes, não possui dados para testá-lo (já que você "usou" todos os dados para determinar os parâmetros P0) e, no entanto, tem uma expectativa razoável de que ele será executado no futuro dados que os outros modelos (P1, P2 ...) construídos usando o mesmo procedimento.

E se você não executou uma validação cruzada ou um bootstrap (o bootstrap é um pouco mais complexo de explicar - deixo de fora desta discussão)? E se você executasse apenas uma divisão de aprendizado / validação e uma medida de erro. Então, o argumento 2. pode estar um pouco correto, mas você tem um problema maior - você tem apenas uma medida do erro do modelo e não sabe como esse erro depende dos dados usados ​​para validá-lo. Talvez, por sorte, seu conjunto de validação de 20% tenha sido particularmente fácil de prever. Não tendo realizado várias medidas de erro, será muito arriscado supor que a taxa de erro esperada do seu modelo preditivo permanecerá a mesma para dados futuros.

Qual é o "maior risco"? Assumir que esse erro permanecerá basicamente o mesmo para dados futuros, ou suponha que a adição de mais dados para aprender seu modelo de alguma forma "estrague" o modelo e aumente sua taxa de erro no futuro? Realmente não sei como responder isso, mas desconfio de modelos que pioram com mais dados ....

Jacques Wainer
fonte