Programei e desenvolvo testes. Depois de fazer uma alteração no meu código, executo meus testes. Às vezes eles conseguem e outras vezes fracassam. Antes de executar um teste, escrevo um número de 0,01 a 0,99 para creditar que o teste será bem-sucedido.
Quero saber se estou melhorando para prever se meu teste será bem-sucedido ou não. Também seria bom se eu pudesse acompanhar se sou melhor em prever se o teste será bem-sucedido às segundas ou sextas-feiras. Se minha capacidade de prever o sucesso do teste estiver correlacionada com outras métricas que acompanho, quero saber.
Isso me deixa com a tarefa de escolher a métrica certa. Em Superforcasting, Philip Tetlock propõe usar a pontuação Brier para medir o quão bem os especialistas são calibrados. Outra métrica proposta na literatura é a regra de pontuação logarítmica . Existem também outros possíveis candidatos.
Como decido qual métrica usar? Existe um argumento para favorecer uma regra de pontuação sobre as outras?
Respostas:
Presumo que você esteja fazendo testes de unidade para o seu código.
Uma idéia em que posso pensar, que talvez não faria exatamente o que você quer, é usar um modelo linear.
O benefício de fazer isso é que você pode criar várias outras variáveis que pode incluir na análise.
Digamos que você tenha um vetor que inclua o resultado de seus testes e outro vetor que inclua suas previsões do resultado.xY x
Agora você pode simplesmente ajustar o modelo linear
e encontre o valor debb , maior o valor de indicará que suas previsões estão melhorando.b
O que torna essa abordagem agradável é que agora você pode começar a adicionar várias outras variáveis para ver se isso cria um modelo melhor, e essas variáveis podem ajudar a fazer melhores previsões. As variáveis podem ser um indicador para o dia da semana, por exemplo, para segunda-feira, sempre será 1 e zero para todos os outros dias. Se você incluir essa variável no modelo, obterá:
E se a variávelumaSegunda-feira for significativa e positiva, isso pode significar que você é mais conservador em suas previsões às segundas-feiras.
Você também pode criar uma nova variável na qual atribui uma pontuação para avaliar a dificuldade da tarefa executada. Se você tiver controle de versão, poderá, por exemplo, usar o número de linhas de código como dificuldade, ou seja, quanto mais código você escrever, maior será a probabilidade de que algo ocorra.
Outras variáveis podem ser: número de xícaras de café naquele dia, indicador de prazos futuros, o que significa que há mais estresse para terminar as coisas, etc.
Você também pode usar uma variável de tempo para ver se suas previsões estão melhorando. Além disso, quanto tempo você gastou na tarefa, ou quantas sessões você gastou nela, se você estava fazendo uma solução rápida e pode ser desleixada etc.
No final, você tem um modelo de previsão, no qual pode tentar prever a probabilidade de sucesso. Se você conseguir criar isso, talvez nem precise fazer suas próprias previsões, basta usar todas as variáveis e adivinhar se as coisas vão funcionar.
O problema é que você só queria um número único. Nesse caso, você pode usar o modelo simples que apresentei no começo e apenas usar a inclinação e refazer os cálculos para cada período. Depois, é possível verificar se há uma tendência nessa pontuação ao longo do tempo.
Espero que isto ajude.
fonte
Embora isso esteja longe de ser uma resposta e seja mais uma referência, pode ser uma boa ideia verificar o Steyerberg E - Epidemiology 2012 .
Neste artigo, Steyerberg e colegas explicam diferentes maneiras de verificar o desempenho do modelo de previsão para modelos com resultados binários (êxito ou falha). A calibração é apenas uma dessas medidas. Dependendo se você deseja ter uma probabilidade precisa , classificação precisa ou reclassificação precisa, você pode usar diferentes medidas de desempenho do modelo. Embora este manuscrito diga respeito a modelos a serem usados em pesquisas biomédicas, sinto que eles também poderiam ser aplicáveis a outras situações (a sua).
Mais específicas à sua situação, as métricas de calibração são realmente difíceis de interpretar porque resumem (ou seja, mediana) a calibração em todo o intervalo de previsões possíveis. Conseqüentemente, você pode ter uma boa pontuação do resumo da calibração, enquanto suas previsões estão fora de um intervalo importante de probabilidades previstas (por exemplo, você pode ter uma pontuação baixa (= boa) de brier, enquanto a previsão de sucesso está acima ou abaixo de um certo probabilidade prevista) ou vice-versa (uma pontuação resumida ruim, enquanto as previsões são bem calibradas na área crítica). Portanto, sugiro que você pense se existe uma faixa crítica de probabilidade de sucesso prevista no seu caso. Nesse caso, use as medidas apropriadas (por exemplo, índices de reclassificação). Caso contrário (o que significa que você está interessado na calibração geral), use brier,
Para concluir, qualquer uma das medidas de resumo da calibração requer seu primeiro passo para plotar suas probabilidades previstas versus as probabilidades observadas (consulte a resposta do Outlier, por exemplo, como fazê-lo). Em seguida, a medida de resumo pode ser calculada, mas a escolha da medida de resumo deve refletir o objetivo de prever o sucesso da falha em primeiro lugar.
fonte
Fiz um modelo de previsão com dados esparsos e é um grande desafio obter o seu modelo calibrado nesses casos. Vou lhe contar o que fiz, você pode obter ajuda com isso.
Fiz 20 caixas de probabilidade prevista e tentei traçar a probabilidade média prevista e real de sucesso. Para a probabilidade média prevista, calculei a média do intervalo de posições. Para probabilidade real média, calculei o sucesso real e a contagem de falhas nos compartimentos, a partir dos quais obtive a probabilidade real (mediana) de sucesso no compartimento. Para reduzir o impacto de valores discrepantes, removi os dados de 5% superior e inferior antes de calcular a probabilidade mediana real em cada compartimento.
Depois de adquiri-los, eu poderia facilmente plotar os dados.
fonte