BaşlayınÜcretsiz başlayın

Modelleme hatalarını yakala

Doğumda yaşam beklentisi, nüfus sağlığının önemli bir göstergesidir.

Bir halk sağlığı araştırmacısı danışmanı olarak çalışıyorsun. Müşterin, sağlık hizmetlerine harcanan her dolar için yaşam beklentisindeki artışı öğrenmek istiyor. 2001–2021 arasında tüm ülkeler için yaşam beklentisi (yıl olarak) ve kişi başına sağlık harcaması verilerini derledin. Danışman istatistikçi, her ülkenin verisine regresyon modelleri uydurmak için kod yazdı. Ancak, verilerdeki eksik değerler model kurulumunda hatalara neden oluyor.

Çalışma alanında, her bir elemanı belli bir ülkenin verisi olan ls_df adlı bir veri çerçeveleri listen var. parLapply() ile paralelleştirip hataları yakalamak için tryCatch() kullanmayı planlıyorsun. parallel paketi senin için yüklendi.

Bu egzersiz, kursun bir parçasıdır

R'da Paralel Programlama

Kursa Göz Atın

Egzersiz talimatları

  • error argümanına bir fonksiyon ver. Bu fonksiyon bir argüman, e, almalı ve paste() kullanarak "Error!" ifadesini e'nin önüne eklemeli.
  • fit_lm() fonksiyonunu düzenleyip model değişkeninin hata iletisini içeren bir karakter dizisi olup olmadığını kontrol et.
  • Altı çekirdekli bir küme oluştur.
  • fit_lm() fonksiyonunu parLapply() kullanarak ls_df listesine paralel uygula.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

fit_lm <- function (df) {
  model <- tryCatch(lm(life_expectancy ~ health_exp_per_capita, data = df),
# Supply a function that pastes "Error!" and one argument, e
                    error = ___)                   
# If model is character (error) return model else return model coefficient
  if (___) return(model)
  else return(coef(model)[2])
}
# Make a cluster of six cores
cluster <- ___(___)
# Apply fit_lm in parallel to ls_df using cluster
ls_mod <- parLapply(___, ___, ___)
stopCluster(cluster)
                    
print(paste(sum(sapply(ls_mod, is.numeric)), "models fit and", sum(sapply(ls_mod, is.character)), "errors caught!"))
Kodu Düzenle ve Çalıştır