É obrigatório subconjunto de seus dados para validar um modelo?


8

Estou tendo dificuldades para acessar a mesma página que meu supervisor quando se trata de validar meu modelo. Analisei os resíduos (observados em relação aos valores ajustados) e usei isso como argumento para discutir os resultados obtidos pelo meu modelo, no entanto, meu supervisor insiste que a única maneira de validar um modelo é fazer um subconjunto aleatório dos meus dados, gere o modelo com 70% dele e aplique o modelo nos 30% restantes.

O problema é que minha variável de resposta é inflada em zero (85% dela, para ser mais específica) e eu prefiro não criar um subconjunto, pois já é muito difícil convergir para um resultado.

Então, minha pergunta é: quais são as formas possíveis (e cientificamente aceitáveis) de validar um modelo? O subconjunto de dados é a única maneira? Se possível, faça referência a suas perguntas com artigos / livros para que eu possa usá-lo como argumento ao apresentar minhas alternativas.


Porém, se você escolheu o modelo com base em todos os dados, isso ainda não conta ...
Aaron deixou o Stack Overflow

Você quer dizer que devo escolher meu modelo com base em um subconjunto dos meus dados? Como posso analisar corretamente a distribuição dos meus dados se eu não os usar?
Eric Lino

Sim, é exatamente isso que eu quero dizer - se você deseja ter dados para validar verdadeiramente seu modelo, esses dados precisam ser mantidos ao fazer a escolha da análise. Isso é o que a Wikipedia chama de conjuntos de treinamento e validação. Se você usar seu conjunto de validação para ajustar os hiper parâmetros, você precisará de um terceiro conjunto (o conjunto de teste) para testar seu modelo final.
Aaron saiu de Stack Overflow

Não que eu esteja advogando por isso; no seu caso, talvez você esteja melhor usando métodos mais tradicionais de diagnóstico e seleção de modelos, que é obviamente o que você está pedindo (e, infelizmente, não tenho tempo para responder adequadamente).
Aaron saiu de Stack Overflow

2
A resposta que você está procurando provavelmente no ponto 5.3 do Frank Harrell 's Regressão Modelagem Strategies .
Aaron saiu de Stack Overflow

Respostas:


6

Para começar, eu sugeriria que geralmente é bom desconfiar das declarações de que há apenas umamaneira de fazer alguma coisa. Dividir uma amostra obtida em um conjunto de dados de "treinamento" e "teste" é uma abordagem comum em muitos aplicativos de aprendizado de máquina / ciência de dados. Muitas vezes, essas abordagens de modelagem estão menos interessadas no teste de hipóteses sobre um processo subjacente de geração de dados, ou seja, elas tendem a ser um pouco ateóricas. De fato, principalmente esses tipos de divisões de treinamento / teste só querem ver se o modelo está se ajustando demais em termos de desempenho preditivo. Obviamente, também é possível usar uma abordagem de treinamento / teste para verificar se um determinado modelo se replica em termos de quais parâmetros são "significativos" ou para ver se as estimativas dos parâmetros estão dentro dos intervalos esperados nas duas instâncias.

Em teoria, validar ou invalidar modelos é o que a ciência, em termos gerais, deve estar fazendo. Pesquisadores independentes, examinando separadamente, gerando e testando hipóteses que apóiam ou refutam argumentos sobre uma teoria para saber por que ou em que circunstâncias um fenômeno observável ocorre - que é o empreendimento científico em uma casca de noz (ou pelo menos em uma frase excessivamente longa). Então, para responder sua pergunta, para mim, mesmo as divisões de treinamento / teste não estão "validando" um modelo. Isso é algo que leva o peso de anos de evidências acumuladas por vários pesquisadores independentes que estudam o mesmo conjunto de fenômenos. No entanto, admitirei que essa tomada pode ser uma diferença na semântica sobre o que eu vejo como validação de modelo versus o que o termo validação passou a significar nas configurações aplicadas ...

Dependendo da sua abordagem de dados e modelagem, nem sempre é apropriado do ponto de vista estatístico dividir sua amostra em conjuntos de treinamento e teste. Por exemplo, amostras pequenas podem ser particularmente difíceis de aplicar essa abordagem. Além disso, algumas distribuições podem ter certas propriedades, dificultando a modelagem, mesmo com amostras relativamente grandes. Seu caso inflado com zero provavelmente se encaixa nessa última descrição. Se o objetivo é chegar a uma aproximação da "verdade" sobre um conjunto de relações ou processos subjacentes que se acredita serem responsáveis ​​por algum fenômeno, você não será bem atendido se conscientemente adotar uma abordagem insuficiente para testar uma determinada hipótese. Portanto, talvez o primeiro passo seja realizar uma análise de poder para verificar se você provavelmente replicaria a descoberta de interesse em seus dados subconjuntos.

Outra opção é especificar vários modelos para ver se eles "melhoram" os dados observados. O objetivo aqui seria identificar o melhor modelo dentre um conjunto de alternativas razoáveis. Este é um argumento relativo, não absoluto, que você estaria fazendo sobre o seu modelo. Essencialmente, você está admitindo que pode haver outros modelos que poderiam ser postulados para explicar seus dados, mas seu modelo é o melhor do conjunto de alternativas testado (pelo menos você espera). Todos os modelos do conjunto, incluindo o modelo hipotético, devem ser fundamentados teoricamente; caso contrário, você corre o risco de criar um monte de palhaços estatísticos.

Também existem fatores de Bayes nos quais você pode calcular o peso da evidência que seu modelo fornece, dados seus dados, para uma hipótese específica relativa a cenários alternativos.

Isso está longe de ser uma lista exaustiva de opções, mas espero que ajude. Vou descer da caixa de sabão agora. Lembre-se de que todo modelo em todo estudo publicado sobre comportamento humano está incorreto. Quase sempre existem variáveis ​​omitidas relevantes, interações não modeladas, populações imperfeitamente amostradas e simplesmente um antigo erro de amostragem em jogo ofuscando a verdade subjacente.


Agradeço todo o tempo que você passou escrevendo uma resposta tão profunda, Matt. No entanto, sinto que, embora me ajude em um nível conceitual, falta alguma referência de que precisarei muito discutir essa abordagem com meu supervisor. Você teria documentos / livros com chances de agrupar dados? Se não for possível, você recomendaria um pacote R no qual eu possa realizar essa análise de poder de que você falou?
Eric Lino

Para pacotes R e potência, isso depende do seu modelo (pwr, simsem, etc). Não existe uma única resposta. Também em termos de chances de agrupar seus dados, acho que é apenas outra maneira de perguntar sobre poder, se entendi corretamente. Se você está gravitando em direção à broca de potência, recomendo que você se concentre no seu efeito mais fraco e veja qual seria o tamanho mínimo da amostra para replicá-lo - uma espécie de pior cenário.
Matt Barstead

Eu vejo. Bem, estou usando o pacote glmmadmb, desenvolvido por Ben Bolker e outros. Minha variável de resposta é inflada zero (número de pessoas com uma doença rara específica) e minhas variáveis ​​independentes incluem distribuições normais, não normais e zero infladas. Como estou lidando com uma série temporal, usei o "ano" como um fator de agrupamento e pareceu uma boa ideia explorar a família de modelos ZIGLMM. Esta informação ajuda você a me ajudar?
Eric Lino

2
Você pode querer verificar o pacote simR . Que eu saiba, é o pacote mais flexível existente para análises de potência com modelos lineares lineares e generalizados. Green, P. & MacLeod, CJ (2016). SIMR: Um pacote R para análise de potência de modelos lineares generalizados por simulação. Métodos em Ecologia e Evolução.
Matt Barstead

10

A divisão de dados geralmente é uma maneira não competitiva de validação interna. Isso ocorre por causa da volatilidade séria - modelo 'final' diferente e 'validação' diferente após a re-divisão, e porque o erro quadrático médio da estimativa (de coisas como erro médio de previsão absoluta e ) é maior que um bom procedimento de reamostragem como o bootstrap. Abordo isso em detalhes no livro Estratégias de modelagem de regressão e nas notas do curso. A reamostragem tem uma grande vantagem adicional: expor a volatilidade na seleção de recursos.R2


ainda acreditam principal motivação do OP é saber se o seu modelo ZIP é verificação adequada = residual, não modelo / seleção de características ou o desempenho preditivo, mas talvez ele possa esclarecer-se
Florian Hartig

Sim, @FlorianHartig está correto! No entanto, o bootstrap interessa-me (se não for para este estudo, para coleta de conhecimento) e, com certeza, procurarei no seu site referências futuras. Muito obrigado pela contribuição.
Eric Lino

6

Eu acho que as respostas aqui divergem porque a pergunta é um tanto pouco clara: o que você quer dizer com "validação"?

Uma divisão 70/30 (ou uma validação cruzada para esse assunto) geralmente é realizada para avaliar o desempenho preditivo de um modelo ou de uma cadeia de análise inteira (possivelmente incluindo a seleção do modelo). Essa validação é particularmente importante se você estiver comparando diferentes opções de modelagem em termos de desempenho preditivo.

É outro caso inteiramente se você não deseja selecionar modelos e também não está interessado no desempenho preditivo como tal, mas está interessado em inferência (estimativas de regressão / valores-p) e deseja validar se o seu modelo / erro pressupõe do GLMM são adequados. Nesse caso, seria possível prever o afastamento e comparar as previsões com os dados observados, mas o procedimento muito mais comum é fazer uma análise residual. Se você precisa provar isso ao seu supervisor: isso é basicamente o que todos os manuais de estatísticas ensinam a fazer logo após a regressão linear.

Veja aqui como executar uma análise residual para GLMMs (incluindo inflação zero com glmmTMB, que eu preferiria sobre glmmadmb) com o pacote DHARMa (exoneração de responsabilidade: sou o mantenedor).


Obrigado por uma resposta tão clara, mas perspicaz. Meu caso inicial foi o segundo exemplo que você forneceu; Não estou interessado em avaliar o desempenho preditivo do meu modelo, mas apenas quantificar as relações subjacentes entre minha variável de resposta e minhas independentes. Não sei se entendi exatamente o que você quer dizer com "prever o que está acontecendo". Você está se referindo aos valores previstos que são gerados na saída do objeto de modelo depois de executá-lo?
Eric Lino

Quero dizer que você calcular resíduos / viés comparando previsões vs. observações sobre as (= validação) Data Hold-out
Florian Hartig

2

A resposta curta é sim, você precisa avaliar o desempenho do seu modelo em dados não utilizados no treinamento.

As técnicas modernas de construção de modelos são extremamente boas para ajustar dados arbitrariamente bem e podem facilmente encontrar sinal no ruído. Assim, o desempenho de um modelo nos dados de treinamento é quase sempre tendencioso.

Vale a pena explorar o tópico da validação cruzada (mesmo que você não esteja ajustando os hiperparâmetros) para entender melhor por que mantemos os dados, quando funcionam, quais suposições estão envolvidas etc. Um dos meus trabalhos favoritos é :

Nenhum estimador imparcial da variância da validação cruzada da dobra k


7
Isso não está correto em geral. O bootstrap supera mal o spitting de dados em termos de erros quadráticos médios em quantidades como . Você precisa de dados não utilizados no treinamento, mas esses dados podem ser diferentes para cada nova amostra. R2
Frank Harrell

Você está sugerindo inicializar dados retidos?
Chris

Leia o bootstrap de otimismo do Efron-Gong, que é o método padrão de validação de modelo de bootstrap e o implementado no rmspacote validatee nas calibratefunções do R. Com este bootstrap, não há decisões únicas sobre a retenção de dados. Como minhas anotações do livro e do curso do RMS descrevem em detalhes, a quantidade de sobreajuste é estimada ao ver quanto um modelo desenvolvido em uma amostra de bootstrap se desfaz quando aplicado à amostra completa original (sobreposta). O bootstrap precisa repetir todas as etapas de modelagem novamente para cada iteração.
Frank Harrell

Interessante. Examinei suas anotações e o artigo de Efron. Parece que, para modelos que são rápidos de ajustar, podemos perceber algumas vantagens ao empregar versões específicas do bootstrap.
Chris

E a única coisa que faria o bootstrap parecer lento (embora ainda fosse mais rápido que a validação cruzada, que exige 100 repetições de validação cruzada 10 vezes para fornecer estabilidade) é compará-lo com a divisão de dados única que fornece apenas uma ilusão de estabilidade.
Frank Harrell
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.