Essa pergunta é geral e prolongada, mas por favor, tenha paciência comigo.
No meu aplicativo, tenho muitos conjuntos de dados, cada um consistindo em ~ 20.000 pontos de dados com ~ 50 recursos e uma única variável binária dependente. Estou tentando modelar os conjuntos de dados usando regressão logística regularizada (pacote R glmnet )
Como parte da minha análise, criei gráficos residuais da seguinte forma. Para cada recurso, classifico os pontos de dados de acordo com o valor desse recurso, divido os pontos de dados em 100 intervalos e, em seguida, calculo o valor médio da saída e o valor médio da previsão em cada intervalo. Eu traço essas diferenças.
Aqui está um exemplo de plotagem residual:
No gráfico acima, o recurso tem um intervalo de [0,1] (com uma alta concentração em 1). Como você pode ver, quando o valor do recurso é baixo, o modelo parece estar inclinado para superestimar a probabilidade de uma saída de 1. Por exemplo, no intervalo à esquerda, o modelo superestima a probabilidade em cerca de 9%.
Armado com essas informações, eu gostaria de alterar a definição do recurso de maneira direta para corrigir esse viés. Alterações como substituição
ou
Como posso fazer isso? Estou procurando uma metodologia geral para que um humano possa rolar rapidamente todas as ~ 50 parcelas e fazer alterações, e fazer isso para todos os conjuntos de dados e repetir frequentemente para manter os modelos atualizados à medida que os dados evoluem ao longo do tempo.
Como uma pergunta geral, essa é a abordagem correta? As pesquisas do Google por "análise de resíduos de regressão logística" não retornam muitos resultados com bons conselhos práticos. Eles parecem estar determinados a responder à pergunta: "Este modelo é um bom ajuste?" e oferece vários testes, como Hosmer-Lemeshow, para responder. Mas não me importo se meu modelo é bom, quero saber como melhorá-lo!
é improvável que exista algum software geral para fazer isso. provavelmente porque não existe uma teoria geral para corrigir problemas na regressão. portanto, esse é mais um tipo de resposta "o que eu faria" em vez de um procedimento teoricamente fundamentado.
o gráfico que você produz é basicamente um teste visual de HL com 100 posições, mas usando um único preditor em vez da probabilidade prevista de fazer o binning. isso significa que seu procedimento provavelmente herdará algumas das propriedades do teste HL.
seu procedimento parece razoável, embora você deva estar ciente de "ajustar demais" seus critérios. seu critério também é menos útil como diagnóstico porque se tornou parte do processo de estimativa. Além disso, sempre que você fizer algo por intuição, anote seu processo de tomada de decisão com o máximo de detalhes possível. isso ocorre porque você pode descobrir as sementes de um processo ou teoria geral que, quando desenvolvido, leva a um procedimento melhor (mais automático e ideal em relação a alguma teoria).
Eu acho que uma maneira de ir é primeiro reduzir o número de parcelas que você precisa investigar. Uma maneira de fazer isso é ajustar cada variável como um spline cúbico e, em seguida, investigar os gráficos que possuem estimativas não lineares diferentes de zero. dado o número de pontos de dados, essa também é uma correção automática fácil para não linearidades. isso expandirá seu modelo de 50 para 200 + 50k, onde k é o número de nós. você poderia pensar nisso como aplicar uma "expansão estatística da série de Taylor" da transformação "verdadeira".
se o diagnóstico ainda estiver ruim depois disso, tente adicionar termos de interação.
partes da sua pergunta parecem mais sobre como escrever um programa interativo, que é mais o domínio do stackoverflow do que aqui. também pode ser útil procurar ferramentas de análise de dados exploratórios, pois é mais provável que eles tenham recursos que você pode "criar".
fonte