Eu tenho um modelo de regressão logística (adequado via glmnet em R com regularização líquida elástica) e gostaria de maximizar a diferença entre verdadeiros positivos e falsos positivos. Para fazer isso, veio à mente o seguinte procedimento:
- Ajuste o modelo de regressão logística padrão
- Usando o limiar de previsão como 0,5, identifique todas as previsões positivas
- Atribua peso 1 para observações previstas positivamente, 0 para todos os outros
- Ajustar modelo de regressão logística ponderada
Quais seriam as falhas dessa abordagem? Qual seria a maneira correta de prosseguir com esse problema?
A razão para querer maximizar a diferença entre o número de verdadeiros positivos e falsos negativos se deve ao design do meu aplicativo. Como parte de um projeto de classe, estou construindo um participante autônomo em um mercado on-line - se meu modelo prevê que ele pode comprar algo e vendê-lo posteriormente por um preço mais alto, ele faz uma oferta. Gostaria de manter a regressão logística e obter resultados binários (ganhos, perdas) com base em custos fixos e em incrementos de preço unitário (ganho ou perco a mesma quantia em todas as transações). Um falso positivo me machuca porque significa que eu compro algo e sou incapaz de vendê-lo por um preço mais alto. No entanto, um falso negativo não me machuca (apenas em termos de custo de oportunidade) porque significa apenas que se eu não comprasse, mas se tivesse, teria ganho dinheiro. Similarmente,
Concordo que o corte de 0,5 é completamente arbitrário e, quando otimizei o modelo da etapa 1 no limiar de previsão que produz a maior diferença entre positivos verdadeiros / falsos, ele se mostrou mais próximo de 0,4. Acho que isso se deve à natureza distorcida dos meus dados - a proporção entre negativos e positivos é de cerca de 1: 3.
No momento, estou seguindo os seguintes passos:
- Dividir dados em treinamento / teste
- Ajuste o modelo ao treinamento, faça previsões no conjunto de testes e calcule a diferença entre positivos verdadeiros / falsos
- Ajuste o modelo totalmente, faça previsões no conjunto de testes e calcule a diferença entre positivos verdadeiros / falsos
A diferença entre os positivos verdadeiro / falso é menor na etapa 3 do que na etapa 2, apesar do conjunto de treinamento ser um subconjunto do conjunto completo. Como não me importo se o modelo no 3 tem mais negativos verdadeiros e menos falsos negativos, há algo que eu possa fazer sem alterar a própria função de probabilidade?
fonte
Respostas:
Você não parece querer regressão logística. O que você diz é "Eu gostaria de maximizar a diferença entre verdadeiros positivos e falsos positivos". Essa é uma função objetiva, mas não é regressão logística. Vamos ver o que é.
Primeiro, alguma notação. A variável dependente será :Yi
As variáveis independentes (as coisas que você usa para tentar prever se você deve comprar) serão (um vetor). O parâmetro que você está tentando estimar será (um vetor). Você irá prever a compra quando . Para a observação , você prevê comprar quando ou quando a função indicadora .Xi β Xiβ>0 i Xiβ>0 1Xiβ>0=1
Um verdadeiro positivo acontece na observação quando e . Um falso positivo na observação ocorre quando e . Você deseja encontrar o que maximiza os verdadeiros positivos menos os falsos positivos ou:i Yi=1 1Xiβ>0=1 i Yi=0 1Xiβ>0=1 β
Esta não é uma função objetiva especialmente familiar para estimar um modelo de resposta discreta, mas aceite comigo enquanto eu faço uma pequena álgebra da função objetiva:
OK, observe agora que os dois últimos termos dessa soma não são funções de , para que possamos ignorá-los na maximização. Finalmente, acabamos de mostrar que o problema que você deseja resolver, "maximizar a diferença entre positivos verdadeiros e falsos positivos" é o mesmo que este problema:β
Agora, esse estimador tem um nome! É nomeado o estimador de pontuação máxima. É uma maneira muito intuitiva de estimar o parâmetro de um modelo de resposta discreta. O parâmetro é escolhido para maximizar o número de previsões corretas. O primeiro termo é o número de verdadeiros positivos e o segundo termo é o número de verdadeiros negativos.
Essa é uma maneira muito boa de estimar um modelo de resposta discreta (binária). O estimador é consistente, por exemplo. (Manski, 1985, J of Econometrics) Existem algumas peculiaridades para esse estimador. Primeiro, não é exclusivo em pequenas amostras. Depois de encontrar um que resolve a maximização, qualquer outro que faça exatamente as mesmas previsões no seu conjunto de dados resolverá a maximização - portanto, infinitamente s próximos ao encontrado. Além disso, o estimador não é assintoticamente normal e converge mais lentamente que os estimadores de probabilidade máxima típicos --- raiz do cubo vez da raizβ β N Nβ β β N N convergência. (Kim e Pollard, 1990, Ann of Stat) Finalmente, você não pode usar o bootstrapping para inferir isso. (Abrevaya & Huang, 2005, Econometrica) No entanto, existem alguns trabalhos usando esse estimador - há um divertido sobre a previsão de resultados no torneio de basquete da NCAA por Caudill, International Journal of Forecasting, abril de 2003, v. 19, iss. 2, pp. 313-17.
Um estimador que supera a maioria desses problemas é o estimador de pontuação máxima suavizada de Horowitz (Horowitz, 1992, Econometrica e Horowitz, 2002, J of Econometrics). Ele fornece um estimador único, consistente e assintoticamente normal, consistente com raiz , que é passível de inicialização. Horowitz fornece um exemplo de código para implementar seu estimador em sua página da web.N
fonte
Há várias coisas erradas nessa abordagem, incluindo:
fonte
A melhor abordagem para alcançar o que você está tentando descrever é provavelmente otimizar diretamente os parâmetros de regressão logística com uma função de perda de AUC. O livro "Métodos Estatísticos em Medicina Diagnóstica", de Zhou, descreve esse método.
A AUC (área sob a curva de característica de operação do receptor - ou ROC) é aproximadamente interpretada como a probabilidade de um "caso" amostrado aleatoriamente ter um valor de marcador mais alto que um "controle". Essa é uma medida de discriminação de modelo ou sua capacidade de classificar corretamente o resultado. O ROC é uma curva no plano unitário que mostra a sensibilidade versus especificidade 1 para todos os possíveis valores de marcador (resultados ajustados) em um modelo de regressão.
Usando a formulação tradicional do modelo de regressão logística,
com odds ratio de log para parâmetros do modelo, você pode definir aproximadamente uma função de perda baseada na AUC para obter parâmetros ideais. Diferentemente da regressão logística baseada em probabilidade, a regressão da AUC não é regular e pode convergir para máximos locais no espaço de parâmetros.
fonte