Lojistik modeller için RMSE (Kök Ortalama Kare Hatası)


10

Farklı lojistik modelleri karşılaştırmak için RMSE (Kök Ortalama Kare Hatası) kullanmanın geçerliliği ile ilgili bir sorum var. Yanıt ya 0yadır 1ve tahminler 0- 1?

Aşağıdaki yöntem ikili yanıtlarla da geçerli midir?

# Using glmnet
require(glmnet)
load(url("https://github.com/cran/glmnet/raw/master    /data/BinomialExample.RData"))
cvfit = cv.glmnet(x, y, family = "binomial", type.measure = "mse")
A <- predict(cvfit, newx = x, s = "lambda.min", type = "response")
RMSE1 <- mean((y - A)^2)
# 0.05816881

# glm
mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
AAA <- predict(mylogit, newdata = mydata, type = "response")
RMSE2 <- mean((mydata$admit - AAA)^2)
# 0.194714

1
Bu durumda, Brier puanı bkz denir actuaries.org/ASTIN/Colloquia/Hague/Papers/Lo.pdf

Yanıtlar:


14

"[T] yanıtının neden ya 0da 1[ama] tahminler 0- arasında olasılıklar olduğunu 1” anlamak için, birlikte çalıştığınız modelin türünü anlamanız gerekir. Cezalandırma yöntemlerini ve çapraz doğrulamayı ortadan kaldırdığınızda, temel bir lojistik regresyonu yürütüyorsunuz. Parametreler log oranları / lojistik ölçeğine uygundur. Buna "doğrusal kestirimci" denir. (Bununla ilgili daha fazla bilgi için, cevabımı burada okumanıza yardımcı olabilir: Logit ve probit modelleri arasındaki fark .) Bir x değeri eklediyseniz ve basitleştirdiyseniz, değer modelin 'başarı' olasılıklarının tahmini doğal logaritması olacaktır. ( 1). Bu değeri üslerseniz, modelin tahmin edilen oranlarına sahip olursunuzbaşarı'. Tahmin edilen bir olasılık elde etmek için , oranları olasılıklar ((1 + oranlar) üzerinden bir olasılığa dönüştürmeniz gerekir. (Bununla ilgili daha fazla bilgi için, cevabımı burada okumanıza yardımcı olabilir: Lojistik regresyonda oran oranlarına ilişkin basit tahminlerin yorumlanması .) Bu, sizi hâlâ tahmin edilen bir sınıfa götürmez . Bunu elde etmek için, tahmini olasılığınızı bir eşikle karşılaştırmanız gerekir ve eşik değerinden küçükse 'başarısızlık' ( 0), başka 'başarı' ( 1) tahmin edin . En yaygın varsayılan eşik değer .5'tir, ancak bu genellikle optimal değildir. R'nin predict.glm()işlevi,type="link"doğrusal öngörücünün ölçeğinde tahminler (yani yukarıdaki tüm dönüşümlerden önce) çıktı, ancak bu size bu bağlamda yardımcı olmaz. Kullanmak type="response"size tahmin edilen olasılıkları verir.


İkili (örneğin, lojistik) bir regresyon modelinin bir yanıtı ne kadar iyi tahmin ettiğini değerlendirmeye çalıştığınızda, birkaç seçeneğiniz vardır:

  1. İlk ve en sezgisel, tahmin edilen sınıfı gözlemlenen sınıfla karşılaştırmak ve yüzde doğru hesaplamaktır. Sezgisel olmasına rağmen sorunları var. Kısmen, modelin uygun olan diğer yönlerine ek olarak eşik değerinin optimal olması şarttır. Ayrıca çok fazla bilgi atar (yani tahmin edilen olasılığın eşiğinden ne kadar uzakta), ki bu iyi bir şey değildir.
  2. Bir sonraki seçeneğiniz, Alıcı Çalışma Karakteristiği (ROC) eğrisinin altındaki alanı kullanmaktır. Çoğu insan bu seçeneği kullanır; doğru yüzdeyi kullanmaktan çok daha iyidir. Çoğu insanın fark etmediği AUC ile ilgili şey, aslında gerçek doğruluklarını değil, tahminlerinizin uygun sırasını ölçmesidir. Yani, dört gözlem için olasılıkları tahmin .2, .4, .6, .8ettiyseniz ve hepsine .01 eklediyseniz ( .21, .41, .61, .81), her iki tahmini olasılık seti de eşit derecede doğru olmasa bile AUC aynı olacaktır.
  3. Modelinizi değerlendirmenin üçüncü yolu uygun bir skor fonksiyonu kullanmak olacaktır. Bağlamınızdaki belki de en popüler puan fonksiyonu Brier puanıdır . @Fcoppens'in belirttiği gibi, kodunuzdaki yöntem Brier puanıdır. Sadece modelin uygun bir şekilde bir gözlemin başka bir gözlemden daha fazla 'başarı' olacağını tahmin edip etmediğini değil, aynı zamanda modelin öngörülen olasılığının gerçekten doğru olup olmadığını da değerlendirecektir.

Brier skorunun daha az bilinmesi ve kullanılması talihsiz bir durumdur. Her ne kadar bu yöntemlerin göreceli sezgiselliği: yüzde doğru> AUC> Brier skoru, gerçek bilgilendirme zıttır: Brier skoru> AUC> yüzde doğru. Modelinizin performansının yalnızca basit bir ölçüsünü almak istiyorsanız, bu yöntemler arasındaki ayrım daha az önemlidir, ancak bir modeli optimize etmek veya bir model seçmek için bu yöntemleri kullanmak istiyorsanız, düşük bir yöntem kullanmak daha kötü performansa neden olur .


1

Hata teriminiz ortalama sıfırla normal olarak dağıtıldıysa, RMSE kullanmak çok daha mantıklıdır, ancak ikili sonuçlarda değildir. Bu nedenle, muhtemelen ikili farklara borç veren, muhtemelen farklılıkları karşılaştırmak gibi farklı yaklaşımlar kullanmanız gerektiğini düşünüyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.