Miuul Araştırma

SQL ile T.C. Sağlık Bakanlığı Web Sayfasındaki Covid-19 Aşılama Verilerinin 3 Aylık Analizi

Sağlık Bakanlığı web sitesinden çektiğimiz aşılama verilerinin SQL kullanarak bir analizini yapıyorum.

Bu makalede sizlerle Sağlık Bakanlığı’nın Türkiye’deki Covid-19 aşılama verilerini paylaşıyorum. 


Artist: Anna and Elena Balbusso Twins

En başta verileri çekerken sağlık bakanlığının bu adresindeki HTML bilgiyi parse ederek SQL database'ine aktardım.  

 

Bir uygulama yaklaşık 3 dakikada bir sürekli çalıştı ve web sayfasındaki verileri parçalayıp tarih saat bilgisi ile birlikte veritabanına aktardı. 

Her 3 dakikada 81 şehire ait kayıt geldiğini düşünürsek; 

  • 1 satte 81x20 = 1620 
  • 1 günde 81x20x24 = 38.880 
  • 1 haftada 81x20x24x7 = 272.160 
  • 1 ayda 81x20x24x30 = 1.166.400  

..satırlık bir veri toplama durumundan bahsediyoruz. 

Sistemin ilk çalışma zamanı 17.06.2021 - son çalışma zamanı ise 25.08.2021. Yani toplam 69 gün çalışmış ve yaklaşık 3 milyon satır veri kaydetmiş. Bu database’i SQL Server yedek dosyası olarak buradan indirebilirsiniz. 

  Peki bu veriler neler? Aşağıdaki görselde görüldüğü gibi sistem bir çalıştığında;

  • Tarih (DATE_) 

  • Şehir (CITY) 

  • Anlık toplam yapılan 1. Doz sayısı (_1DOSE) 

  • Anlık toplam yapılan 2. Doz sayısı (_2DOSE) 

  • Anlık toplam yapılan Toplam Doz sayısı (_TOTAL) 

  • İlgili şehrin nüfusu (POPULATION)  

Bilgilerini kayıt altına alıyor. Ayrıca 81 il için bu şekilde her toplu çalışmaya da bir numara veriliyor. (SEQID) 

Örneğin 5412 numaralı aktarım işlemi 26.06.2021 22:41:31 tarihinde gerçekleşmiş. 

Burada biz sistemi sürekli web sitesinden izlemiş olsak sadece son durumu görecek idik. Oysa şimdi 3 dakikada bir aradaki farkı görebilir durumdayız. Şimdi bir sonraki SEQID değeri olan 5413 e bakalım. 

Görüldüğü gibi tam 3 dakika sonra gerçekleşen bir aktarım daha. 

Örneğin burada Ankara için baktığımızda 1 doz sayısı 2.652.259 

Bir önceki veriye baktığımızda 1 doz sayısı 2.652.085 

  • Yani 3 dakika içerisinde yapılan 1. doz aşı sayısı 2.652.259-2.652.085 = 174
  • Aynı hesap 2. doz için de yapılır ise 1.241.916-1.241.906 = 10 
  • Toplam için de yaparsak, 3.894.175-3.893.991 = 184  (3 dakikada yapılan toplam aşı miktarı)

İşte artık bu farkları alabilir hale gelir isek saat bazlı, gün bazlı, il bazlı aşı değerlerini görebilir hale de geliriz. Bunun için her bir satırın kendisinden önceki satırı bulmamız gerekir. Bu yüzden tabloya bir PrevID alanı ekliyoruz ve bu alanı aşağıdaki gibi Update ediyoruz. 

Bu komutu çalıştırdıktan  sonra artık her bir şehrin kayıt bilgisinin bir önceki kayıt bilgisinin ID’si PREVID olarak update edilmiş durumda. 

Şimdi aradaki farkı buldurup bu 3 dakikalık zaman diliminde ne kadarlık aşı yapıldı bilgisini hesaplamamız gerekiyor.  Bunun için 1. doz, 2. doz ve toplam için DIFF_1DOSE,DIFF_2DOSE,DIFF_TOTAL alanlarını tablomuza ekliyoruz. 

Şimdi sırada bu alanları güncelleme işlemi var. Bunun için de aşağıdaki komutu kullanacağız. Her doz için kendisinden önceki satırı bulup aradaki farkı buradaki DIFF alanlarına yazacağız. 

 

Şimdi baktığımızda bu değerleri dolu şekilde görebileceğiz. 

Şimdi Ankara’da 1 günde yapılan aşı sayısına bakalım.. Örneğin seçtiğimiz gün 12.07.2021 olsun. Seçtiğimiz günde Ankara’da yapılan aşıların ne kadar çıktığını aşağıda görebilirsiniz:

  • 1. doz: 14.175 
  • 2. doz:38.370 
  • Toplam:65.370 

 Peki diğer şehirlerde bu seçilen günde ne kadar aşılama yapılmış ona bakalım. CITY alanının filtresini kaldırdığımızda görebiliyoruz. 

 

Bir başka örnek, 

Ankara için tüm tarihlerde ne kadar aşılama yapılmış? 

 Tabi bir de bu kayıtların başladığı ilk kayıtlara baktığımızda kendisinden önce kayıt olmadığı için bu fark alanları null görünüyor. 

 Bu kayıtların DIFF değerlerini mevcut değerler ile güncellememiz gerekir. 

 

Şimdi oldu. 

 

Şimdi başka bir sorguya bakalım.. Tüm şehirler için toplamda ne kadar aşılama yapılmış? 

Elimizde şehirlerin nüfus bilgisini tuttuğumuz POPULATION alanı var. Buna göre nüfüsun ne kadarı aşılanmış ona bakalım.  Görüldüğü gibi tüm iller bazında nüfusa göre yüzde kaç (%) oranında aşılama yapıldığı bilgisini görebiliyoruz. Burada dikkat edilecek husus şu:

POPULATION alanı şehrin tüm nüfusunu gösteriyor. Sağlık bakanlığında kullanılan nüfus alanı 18 yaş üstü olduğu için bu oranların tam olarak yüzdesel tutmasını beklememek gerekir. 

Bir başka sorgu.. Hangi saatlerde daha çok aşılama yapılıyor?  

10:00-16:00 arasının yoğun aşılama saatleri olduğunu görüyoruz. 

Peki haftanın hangi günü daha yoğun? 

Görüldüğü gibi Pazartesi ve Cuma'da ciddi bir yoğunluk var. 

Peki bu veriler kusursuz mu? 

Değil tabi ki. Zira uygulamayı çalıştırdığım bilgisayar bir bayram tatilinde update alıp kendisini restart etmiş. Sanıyorum 4-5 günlük bir veri kaybı var. Onunla alakalı da yakın bir zamanda belli bir örnekleme üzerinden o boşluğu doldurma çalışması yapmayı düşünüyorum.

Peki bu verileri görselleştirsek nasıl durur? 

Ben DevExpress Dashboard kullanarak örnek bazı raporlar hazırladım. Siz de gerek DevExpress Dashboard üzerinde, gerekse PowerBI gibi araçlar ile kendi görsellerinizi oluşturabilirsiniz. 

Buraya kadar okuduğunuz için teşekkür ederim. 

Sağlıcakla..

BigQuery ML ile Çok Terimli Regresyon

Cem İstanbullu

Power BI ile CRM Analitiği - IV: Müşteri Yaşam Boyu Değeri (CLTV) Tahmini

Melda Özdin

Power BI ile CRM Analitiği - III: CLTV Hesabı ile Müşteri Segmenti Oluşturma

Melda Özdin

SON ARAŞTIRMALAR

GİRİŞ

Aşağıya kaydolduğunuz e-postayı girin. Şifrenizi sıfırlamanız için size bir bağlantı göndereceğiz.

Giriş Ekranına Dön
Şifre sıfırlama talimatları
adresine gönderildi.