R Academy · Ders

Sonsal Tahmin Denetimleri

Benzetimli ve gözlemlenen veri dağılımlarını karşılaştırarak model uyumunu doğrulayın.

4. ders / 413 adım

Sonsal Tahmin Denetimleri, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, R Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. R Academy kursu toplamda 4 dersten oluşur.

Artçıl Öngörü Kontrolleri Nedir?

Bir Bayesçi modeli uydurduktan sonra şu soruyu sormanız gerekir: Bu model, gözlemlediğiniz verilere benzeyen veriler üretiyor mu? Artçıl Öngörü Kontrolleri (PPC'ler), artçıl dağılımdan yrep ile yinelenmiş veri kümeleri benzetip bunları gözlemlenen y ile grafiksel olarak karşılaştırarak bu soruyu yanıtlar.

Artçıl Örnekleri Çıkarma

extract(fit, pars='mu'), adlandırılmış bir liste döndürür; $mu, ilgili parametre için ısınma sonrasındaki tüm örneklerin sayısal bir vektörüdür. 4 zincir ve zincir başına 1000 ısınma sonrası yineleme ile 4000 örnek elde edersiniz.

# library(rstan)
# mu_samples    <- extract(fit, pars = 'mu')$mu
# sigma_samples <- extract(fit, pars = 'sigma')$sigma
#
# cat('Samples drawn:', length(mu_samples), '
')
# cat('Posterior mean of mu:', mean(mu_samples), '
')
# cat('90% CI:', quantile(mu_samples, c(0.05, 0.95)), '
')

Artçıl Örneklerden yrep Üretme

Her artçıl çekiliş (mu_s, sigma_s) için özgün veriyle aynı büyüklükte yinelenmiş bir veri kümesi benzetin. Bunları, her satırı bir benzetilmiş veri kümesi olan yrep matrisinde saklayın.

# y <- c(2.1, 1.8, 2.4, 1.9, 2.3, 2.0, 1.7, 2.2)
# n_obs <- length(y)
# S     <- length(mu_samples)  # 4000 posterior draws
#
# yrep <- matrix(NA, nrow = S, ncol = n_obs)
# for (s in seq_len(S)) {
#   yrep[s, ] <- rnorm(n_obs, mean = mu_samples[s], sd = sigma_samples[s])
# }
# dim(yrep)  # [4000, 8]

ppc_dens_overlay() — Yoğunluk Karşılaştırması

bayesplot::ppc_dens_overlay(y, yrep[1:50,]), gözlemlenen verilerin çekirdek yoğunluğunu (koyu çizgi), rastgele seçilmiş 50 benzetilmiş veri kümesinin yoğunluklarıyla (açık çizgiler) üst üste gösterir. İyi bir model uyumunda koyu çizgi, açık çizgiler bulutunun içinde yer alır.

# library(bayesplot)
#
# ppc_dens_overlay(y, yrep[1:50, ])
#
# Interpretation:
# - Dark line (y_obs) surrounded by light lines (yrep): good fit
# - Dark line systematically outside the cloud: model misfit
# - Light lines much wider than dark: overdispersed model
# - Light lines much narrower than dark: underdispersed model

ppc_stat() — Test İstatistiği Kontrolü

ppc_stat(y, yrep, stat = 'mean'), her benzetilmiş veri kümesi üzerinde hesaplanan test istatistiğinin (ör. ortalama) histogramını ve gözlemlenen istatistikteki dikey bir çizgiyi gösterir. Gözlemlenen değer histogramın yoğun bölümüne düşüyorsa model, verilerin bu yönünü yakalıyor demektir.

# library(bayesplot)
#
# ppc_stat(y, yrep, stat = 'mean')   # does model capture the mean?
# ppc_stat(y, yrep, stat = 'sd')     # does model capture spread?
# ppc_stat(y, yrep, stat = 'max')    # does model capture extremes?
#
# If observed stat is in the tail of the histogram,
# the model fails to reproduce that statistic.

Bayesçi p-değeri

Bayesçi p-değeri (artçıl öngörü p-değeri), test istatistiği gözlemlenen değerden daha uç olan benzetilmiş veri kümelerinin oranıdır. 0,5'e yakın değerler iyi kalibrasyona; 0'a veya 1'e yakın değerler, ilgili istatistik açısından model uyumsuzluğuna işaret eder.

# Bayesian p-value for the mean:
# obs_mean <- mean(y)
# rep_means <- apply(yrep, 1, mean)
# pval <- mean(rep_means >= obs_mean)
# cat('Bayesian p-value (mean):', round(pval, 3), '
')
# # 0.5 is perfect; < 0.05 or > 0.95 suggests misfit

Diğer bayesplot PPC İşlevleri

bayesplot, yoğunlukların üst üste gösterilmesinin yanı sıra çok sayıda PPC görselleştirmesi sunar:

  • ppc_hist(y, yrep[1:8,]) — histogram ızgarası
  • ppc_scatter_avg(y, yrep) — gözlemlenen değer ile yrep ortalamasının saçılım grafiği
  • ppc_intervals(y, yrep) — her gözlem çevresindeki belirsizlik aralıkları
  • ppc_rootogram(y, yrep) — sayım verileri için
# library(bayesplot)
#
# # Grid of 8 simulated histograms vs the observed
# ppc_hist(y, yrep[1:8, ])
#
# # Scatter: y_obs (x) vs mean of yrep (y) — should hug diagonal
# ppc_scatter_avg(y, yrep)
#
# # 50% and 90% posterior predictive intervals around each y_i
# ppc_intervals(y, yrep)

PPC Grafiklerini Yorumlama — Model Uyumsuzluğu

Yaygın uyumsuzluk örüntüleri ve nedenleri:

  • yrep çok geniş — önsel dağılım çok yaygın veya model aşırı saçılımlı
  • yrep kaymış — yanlış olabilirlik ailesi (ör. çarpık veriler için normal dağılım)
  • yrep çok modluluğu yakalayamıyor — karışım modeli gerekli
  • yrep uç değerlerde başarısız — ağır kuyruklu dağılım gerekli
# Example: if data has a long right tail but yrep does not,
# consider switching:
# y ~ normal(mu, sigma)  =>  y ~ student_t(nu, mu, sigma)
#
# Or for count data:
# y ~ poisson(lambda)  =>  y ~ neg_binomial_2(mu, phi)  (overdispersion)
cat('PPCs guide model improvement by revealing specific failure modes
')

Stan Model Bloğunda PPC'ler

generated quantities bloğunu kullanarak yrep'i doğrudan Stan'de üretebilirsiniz. Bu yöntem, parametreleri R'de yeniden çıkarmayı önler ve hesaplama açısından eşdeğerdir.

# Stan model with generated quantities:
# '
# generated quantities {
#   array[N] real y_rep;
#   for (n in 1:N) {
#     y_rep[n] = normal_rng(mu, sigma);
#   }
# }
# '
# Then extract in R:
# yrep <- extract(fit, pars = 'y_rep')$y_rep  # [S, N] matrix

Birini Dışarıda Bırakarak Çapraz Doğrulama

PPC'lerin ötesinde, loo::loo(fit) rakip modelleri karşılaştırmak için birini dışarıda bırakarak çapraz doğrulama hesaplar. ELPD (beklenen log öngörü yoğunluğu) değeri daha yüksek olan model tercih edilir. Modelleri sıralamak için loo::loo_compare(loo1, loo2) kullanın.

# library(loo)
# loo1 <- loo(fit1)  # normal model
# loo2 <- loo(fit2)  # student-t model
#
# comparison <- loo_compare(loo1, loo2)
# print(comparison)
#
# Model with elpd_diff > 0 is preferred
# se_diff > |elpd_diff| means difference is not reliable

PPC için En İyi Uygulamalar

Titiz artçıl öngörü kontrolleri için şu uygulamaları izleyin:

  • Genel bir makullük kontrolü olarak her zaman ppc_dens_overlay() ile başlayın
  • Analiz hedeflerinizle ilgili alana özgü istatistiklerle (ppc_stat()) devam edin
  • Görsel kontroller için en az 50 yrep çekilişi, Bayesçi p-değerleri için 4000 çekilişin tamamını kullanın
  • Başarısız PPC'ler modelin geliştirilmesine yol gösterir — başarısızlık değil, tanı aracıdır
# Workflow:
# 1. Fit model -> extract() -> generate yrep matrix
# 2. ppc_dens_overlay(y, yrep[1:50,])  -- visual global check
# 3. ppc_stat(y, yrep, stat='mean')    -- check mean
# 4. ppc_stat(y, yrep, stat='sd')      -- check spread
# 5. ppc_stat(y, yrep, stat='max')     -- check tails
# 6. If misfit found -> revise model -> refit -> re-check

Hızlı Kontrol: Bayesçi p-değerini Yorumlama

Maksimum istatistik için Bayesçi p-değerinin 0,03 olması model hakkında ne anlama gelir?

Artçıl Öngörü Kontrolleri Özeti

RStan ve bayesplot'ta PPC iş akışı:

  • Örnekleri çıkarın: extract(fit, pars='mu')$mu
  • yrep üretin: artçıl çekilişler üzerinde dolaşıp rnorm(n, mu_s, sigma_s) çağırın
  • Genel kontrol: ppc_dens_overlay(y, yrep[1:50,])
  • İstatistik kontrolleri: ppc_stat(y, yrep, stat='mean')
  • Bayesçi p-değeri: mean(apply(yrep,1,stat) >= stat(y)) — 0,5'e yakın olması iyidir
  • Model karşılaştırması için loo::loo_compare() kullanın
Başlamak ücretsiz

Yapay zeka eğitmeniyle R öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
43
Dersler
159

Sıkça Sorulan Sorular

“Sonsal Tahmin Denetimleri” dersi ücretsiz mi?

Evet — “Sonsal Tahmin Denetimleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve R Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. R Academy kursu toplamda 4 dersten oluşur.

“Sonsal Tahmin Denetimleri” dersinde ne öğreneceğim?

Benzetimli ve gözlemlenen veri dağılımlarını karşılaştırarak model uyumunu doğrulayın. R Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

R Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te R Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Sonsal Tahmin Denetimleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu R Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her R Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Bayesçi Düşünmeye Giriş
  2. R'de Stan Modelleri Yazma
  3. MCMC Örneklemesi ve Tanılamalar
  4. Sonsal Tahmin Denetimleri
← R Academy Sayfasına Dön