如何選擇最佳指標來衡量我的校準?
我編程並進行測試驅動開發。在我對代碼進行更改後,我運行我的測試。有時他們成功,有時他們失敗。在我運行測試之前,我寫下一個從 0.01 到 0.99 的數字,以確保測試會成功。
我想知道我在預測我的測試是成功還是失敗方面是否有所改進。如果我能跟踪我是否更擅長預測測試是在星期一還是星期五成功,那也很好。如果我預測測試成功的能力與我跟踪的其他指標相關,我想知道。
這讓我的任務是選擇正確的指標。在 Superforcasting 中,Philip Tetlock 建議使用Brier 分數來衡量專家的校準程度。文獻中提出的另一個指標是對數評分規則。還有其他可能的候選人。
我如何決定使用哪個指標?是否有理由支持一種評分規則而不是其他評分規則?
我假設您正在為您的代碼進行單元測試。
我能想到的一個想法是使用線性模型,它可能不會完全符合您的要求。
這樣做的好處是,您可以創建一堆可以包含在分析中的其他變量。
假設你有一個向量其中包括您的測試結果和另一個向量這包括你對結果的預測。
現在您可以簡單地擬合線性模型
並找到, 的值越高將表明您的預測正在變得更好。
使這種方法變得更好的是,現在您可以開始添加一堆其他變量,看看這是否會創建一個更好的模型,而這些變量可以幫助做出更好的預測。變量可以是一周中某一天的指標,例如,對於星期一,它始終為 1,而對於所有其他天,則為零。如果您在模型中包含該變量,您將獲得:
如果變量是重要且積極的,那麼這可能意味著您在周一的預測中更加保守。
您還可以創建一個新變量,在其中給出分數以評估您執行的任務的難度。如果您有版本控制,那麼您可以例如使用代碼行數作為難度,即您編寫的代碼越多,出現問題的可能性就越大。
其他變量可能是,當天的咖啡杯數量,即將到來的截止日期的指標,這意味著完成工作的壓力更大等。
您還可以使用時間變量來查看您的預測是否變得更好。此外,您在任務上花費了多長時間,或者您花費了多少次會話,您是否正在快速修復並且可能馬虎等等。
最後,您有一個預測模型,您可以在其中嘗試預測成功的可能性。如果你設法創造了這個,那麼也許你甚至不必做出自己的預測,你可以使用所有的變量並很好地猜測事情是否會奏效。
問題是你只想要一個數字。在這種情況下,您可以使用我在開始時介紹的簡單模型,只使用斜率,然後重新計算每個週期,然後您可以查看隨著時間的推移該分數是否存在趨勢。
希望這可以幫助。