Regressão logística: maximização de verdadeiros positivos - falsos positivos

9

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:

  1. Ajuste o modelo de regressão logística padrão
  2. Usando o limiar de previsão como 0,5, identifique todas as previsões positivas
  3. Atribua peso 1 para observações previstas positivamente, 0 para todos os outros
  4. 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:

  1. Dividir dados em treinamento / teste
  2. Ajuste o modelo ao treinamento, faça previsões no conjunto de testes e calcule a diferença entre positivos verdadeiros / falsos
  3. 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?

tmakino
fonte
Antes de perguntar quais seriam as falhas dessa abordagem, talvez você deva escrever por que essa abordagem deve funcionar, na sua opinião. Por que você acha que as etapas 2 a 4 melhoram o resultado?
user31264
Além disso, estou certo de que, no final, você solta o modelo da etapa 1 e usa apenas o modelo da etapa 4?
user31264
Sim, eu estava pensando em usar o modelo equipado com todo o conjunto de dados, mas não faz sentido fazê-lo porque está com desempenho insuficiente no modelo equipado com o conjunto de treinamento.
tmakino
2
Eu não tenho uma fonte sobre isso agora ... mas você sabe que pode otimizar um modelo de regressão logística para maximizar a área sob a curva (ou característica da operação do receptor) (ou AUC)? Não há necessidade de reinventar a roda.
AdamO 21/10
2
O que não entendo bem aqui é por que você não incluiu nada sobre o preço futuro previsto em seu modelo, nem incluiu a magnitude do lucro / perda na otimização. Certamente, uma decisão de "comprar" que leva a uma perda de 99% é muito pior do que uma decisão de "comprar" que leva a uma perda de 1%, mesmo que ambos sejam falsos positivos.
probabilityislogic

Respostas:

24

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

Yi={1Purchase i was profitable0Purchase i was un-profitable

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β>0iXiβ>01Xiβ>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: iYi=11Xiβ>0=1iYi=01Xiβ>0=1β

maxβi=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0

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:

i=1NYi1Xiβ>0i=1N(1Yi)1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0=i=1NYi1Xiβ>0i=1N1Xiβ>0+i=1NYi1Xiβ>0+i=1N1i=1N1+i=1NYii=1NYi=i=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)i=1N1+i=1NYi

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: β

maxβi=1NYi1Xiβ>0+i=1N(1Yi)(11Xiβ>0)

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βββNNconvergê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

Conta
fonte
Obrigado por incluir a álgebra para equiparar minha função de custo ao estimador de pontuação máxima. Com a função indicadora fornecida para , isso significa que sempre classificarei como positivo como negativo? Além disso, é calculado p (a saída do modelo) usando a função logística com a entrada ? A abordagem atual que estou usando é a função de custo da AUC, otimizando o limite de previsão para encontrar o valor com a maior diferença entre positivos verdadeiros e falsos positivos. Eu entendo que a sua resposta encontra explicitamente a diferença máximap > 0,5 p < = 0,5 β T xβTx>0p>0.5p<=0.5βTx
tmakino
(continuação), definindo-o na função de custo (e fixando o limite de previsão em 0,5), ignorando a etapa intermediária que dei. No entanto, a AUC já existe no pacote de regressão que estou usando (glmnet), enquanto o esimator de pontuação máxima não. Você acha que minha abordagem é razoável, considerando meu objetivo?
tmakino
1
Infelizmente, eu não estou muito familiarizado com o método AUC, então não posso dizer o quão apropriado é aqui. No estimador de pontuação máxima, realmente não há , porque você não está assumindo um modelo logístico. Você está apenas decidindo prever 1 quando e, em seguida, encontrar o melhor . X i β > 0 βpXiβ>0β
Bill
15

Há várias coisas erradas nessa abordagem, incluindo:

  • Buscando um ponto de corte para uma probabilidade contínua
  • Usando um corte arbitrário de 0,5
  • Supondo que o custo de um "falso positivo" e um "falso negativo" seja o mesmo para todos os sujeitos
  • Usando pesos que não são fracionários
  • Usando pesos estimados
  • Substituindo a estimativa de probabilidade máxima
  • Não utilizar a teoria de decisão ideal de Bayes, que determina que as decisões ideais são baseadas em informações completas (e não se algo excede alguma outra coisa) e funções de utilidade / perda / custo
Frank Harrell
fonte
1
Obrigado, existe uma maneira de conseguir isso enquanto adere à regressão logística (ou seja, sem tocar na função de probabilidade)?
tmakino
Depende do que "isso" é. Qual é o objetivo final e como o modelo será usado?
Frank Harrell
Editei minha pergunta para fornecer detalhes sobre o que estou tentando alcançar.
Tmakino 21/10
1
A menos que esteja faltando alguma coisa, nada que você adicionou implicaria o uso de um ponto de corte. Observe que uma probabilidade prevista fornece sua própria taxa de erro.
precisa
8

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,

logit Pr(Y=1|X)=α+βX

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.

AdamO
fonte
1
Eu teria pensado que a AUC não é melhor aqui porque há uma pequena perda para falso negativo, mas grande perda para falso positivo.
probabilityislogic
Bem, o problema real é que o OP tem um resultado contínuo (ROI) e o está dicotomizando como perda / ganho. Mas separar os cabelos de lado, com a regressão ROC, em geral, regiões "estúpidas" de corte de marcadores contam de fato para a AUC. Você pode usar a AUC parcial se pré-especificar o que conta como valores de marcador significativos versus estúpidos, e a regressão parcial da AUC possui todos os mesmos recursos (e problemas) de desempenho.
Adamo