- İstatistiksel süreç kontrolünün (SPC) Python ile nasıl uygulanarak ürün kalitesindeki zamansal değişimlerin ve müdahale zamanlarının belirleneceği anlatılıyor
pandas, plotnine, scipy kullanılarak veri işleme, görselleştirme ve istatistiksel hesaplamalar yapılıyor
- Japonya'nın Kagoshima ilindeki kaplıca verileri örnek alınarak sıcaklık, pH ve kükürt içeriği kalite kontrol göstergeleri olarak analiz ediliyor
- Alt grup istatistikleri ve kontrol grafikleri (X-bar, S, hareketli aralık grafiği) ile süreç kararlılığı ve aykırı değer tespiti ele alınıyor
- Veriye dayalı olarak süreç durumunu görsel biçimde teşhis etme ve iyileştirme kararlarını destekleme prosedürü sunuluyor
Python ile istatistiksel süreç kontrolüne genel bakış
- İstatistiksel süreç kontrolü (SPC), ürün kalitesindeki değişimleri ölçmek ve müdahale zamanını belirlemek için kullanılan istatistiksel bir yaklaşım
- Python'da görselleştirme için
plotnine, veri işleme için pandas, istatistiksel hesaplama için scipy kullanılıyor
- Uygulamada SPC kavramları, kaplıca suyu kalite yönetimi örneği üzerinden ele alınıyor
- Kaplıcanın sıcaklığı, pH değeri ve kükürt içeriği temel kalite göstergeleri olarak belirleniyor
Paketler ve kullanıcı tanımlı fonksiyonlar
- Gerekli paketler:
pandas, plotnine, scipy
- Kullanıcı tanımlı fonksiyonlar GitHub deposundaki
functions/ dizininden alınıyor
functions_distributions.py: güvenilirlik ve dağılım fonksiyonları
functions_process_control.py: süreç kontrolü için fonksiyonlar
sys.path.append('functions') ile fonksiyon dizini Python yoluna eklenip ardından import ediliyor
Örnek olay: Japon kaplıca kalite kontrolü
- Japon kaplıcaları (onsen), bölgesel ekonominin temel turizm kaynaklarından biri ve sıcaklık, pH ve kükürt içeriği kalite ölçütleri arasında yer alıyor
- Sıcaklık ölçütü: Extra Hot(>42°C), Hot(41~34°C), Warm(33~25°C)
- pH ölçütü: Acidic(pH<3) ~ Alkaline(pH>8.5)
- Kükürt ölçütü: 1mg/kg ve üzeri olduğunda kükürtlü kaplıca olarak sınıflandırılıyor
- Kagoshima ilindeki kaplıca verileri 15 ay boyunca her ay 20 kez örneklenerek kalite değişimi analiz ediliyor
Veri yükleme ve temel istatistikler
onsen.csv dosyası yüklenerek sıcaklık, pH ve kükürt içeriği verileri inceleniyor
describe() fonksiyonu ile ortalama (mean) ve standart sapma (sd) hesaplanıyor
- Örnek sonuç: ortalama 44.85°C, standart sapma 1.99°C
- Bu istatistikler, sürecin merkezi ve değişkenliğini anlamak için temel göstergeler sunuyor
Sürece genel bakışın görselleştirilmesi
plotnine ile zamana göre sıcaklık dağılımı kutu grafiği (boxplot) ve nokta dağılımı olarak görselleştiriliyor
- Merkez çizgi genel ortalamayı gösterirken, her zamandaki dağılımlar karşılaştırılabiliyor
- Histogram ile genel sıcaklık dağılımı gösterilerek süreç merkezi ve değişim aralığı inceleniyor
Alt grup istatistiklerinin hesaplanması
- Her zaman noktası bir alt grup olarak ele alınıp ortalama (xbar), aralık (r), standart sapma (sd) hesaplanıyor
- Örnek: ilk grubun ortalaması 44.635°C, aralığı 4.2°C
- σₛ (alt grup içi standart sapma) ve standart hata (se) hesaplanarak üst ve alt sınırlar (±3σ) belirleniyor
- Böylece sürecin zaman içindeki kararlılığı değerlendiriliyor
Tüm süreç istatistikleri
- Tüm gruplar birleştirilerek genel ortalama (xbbar), ortalama aralık (rbar), ortalama standart sapma (sdbar) hesaplanıyor
- Örnek: xbbar 44.85, rbar 7.26, sdbar 1.94
- σₜ (genel standart sapma) ile karşılaştırılarak süreç içi ve süreçler arası değişkenlik inceleniyor
Kontrol grafikleri (X-bar ve S grafiği)
- X-bar grafiği: her alt grubun ortalaması zaman ekseninde gösteriliyor
- Merkez çizgi: genel ortalama, üst ve alt sınırlar: ±3σ
- Gölgelendirilmiş alan kontrol sınırları aralığını gösteriyor
- Kontrol sınırları aşıldığında veya rastgele olmayan örüntüler görüldüğünde süreçte anormallik olasılığı bulunuyor
Öğrenme kontrolü: pH sürecinin görselleştirilmesi
- Aynı
ggprocess() fonksiyonu kullanılarak pH verisi için süreç genel bakış grafiği oluşturuluyor
- Ortalama çizgisi ve her zamandaki dağılımlar görsel olarak karşılaştırılıyor
Hareketli aralık grafiği (n=1)
- Yalnızca tekil ölçümler olduğunda hareketli aralık (Moving Range) kullanılıyor
- Art arda gelen ölçümlerin mutlak farkı hesaplanarak değişkenlik tahmin ediliyor
- Ortalama hareketli aralık (mrbar), üst sınır (upper), alt sınır (lower=0) hesaplanıyor
- Hareketli aralık grafiği, tekil verilere dayalı süreç değişkenliğini izlemek için yararlı
Sonuç
- Python kullanılarak süreç genel görünümü, alt grup istatistikleri ve hareketli aralık grafiği oluşturuluyor
- SPC araçları sayesinde sürecin kararlılığı ve anormal durumlar görsel olarak teşhis edilebiliyor
- Bu analizler veri odaklı kalite iyileştirme ve karar alma süreçlerinde kullanılabiliyor
1 yorum
Hacker News görüşü
Eski bir projeyi hatırlattı
Biz, bir FANG şirketinde binlerce karmaşık derin öğrenme tabanlı zaman serisi anomali dedektörünü istatistiksel (parametrik olmayan, yarı parametrik) süreç kontrol modelleriyle başarıyla değiştirdik
Yeni modeller, 3–4 basamak daha az eğitim parametresine sahipti ve 3–4 kişilik bir ekibin binlerce akışı yönetebileceği kadar basitti
Derin öğrenme modelleri hata ayıklama ve yorumlama açısından opaktı, bu yüzden yönetilmeleri çok zordu
Küçük bir ekip için hâlâ istatistik temelli yaklaşımı güçlü biçimde tavsiye ederim
Yine de siyasi nedenlerle, böyle bir seçim kariyer açısından iyi bir tercih olmayabilir. Büyük bahis oynayan insanlar, tersini gösteren kanıtların ortaya çıkmasından hoşlanmaz
Bu yüzden bugünlerdeki AI aşırı heyecanına şüpheyle yaklaşıyorum
Çoğu durumda mevcut klasik yöntemler çok daha istikrarlı ve verimliyken, şirketlerin neden özellikle daha karmaşık ve daha istikrarsız yöntemleri seçtiğini anlamıyorum
Şirket, konferanslar için havalı ML modelleriyle övünüyordu ama sahadaki operatörler doğruluk ve yorumlanabilirlik eksikliğinden çok şikâyetçiydi
Bu yüzden operatörlerin gerçekten kullandığı basit matematiksel kuralları temel alarak kodu yeniden yazdım ve çok daha iyi sonuçlar aldım
OCR için uygun ama sınıflandırma işlerinde etkisi zayıf
İyi aydınlatma ve geleneksel bilgisayarlı görü tekniklerine odaklanınca çoğu zaman daha iyi sonuç alınıyor
Teknoloji benimsemenin siyasi sorunlarına da katılıyorum. Bu yüzden genelde derin öğrenme ile geleneksel görüyü birleştiren hibrit yaklaşım öneriyorum
Parametrelerin çoğu muhtemelen kararsız ya da birbiriyle ilişkili
Ben de eskiden Lean Six Sigma Green Belt sertifikası almıştım ve Minitab ile yatırım bankacılığı back-office süreçleri için istatistiksel süreç kontrolü projesi yürütmüştüm
Bugünlerde sanki artık kimse Minitab'ı hatırlamıyor. Herkes sadece Python kullanıyor
Hâlâ güncelleniyor ve Python arayüzü de var → mtbpy paketi
Açık kaynak araçlar yalnızca x-bar/S/R destekliyordu, çok değişkenli analiz gibi ileri özelliklerde eksik kalıyordu
SPC'ye yeni başlayanlar için birkaç yıl önce pratik bir rehber yazmıştım
Faydalı olabilir → Statistical Process Control: A Practitioner’s Guide
Klinik veriler gibi küçük veri kümelerinde klasik istatistik hâlâ kilit önem taşıyor
Metadata toplamak ve uyumlu hale getirmek zor, nadir hastalık araştırmalarında ise makine öğrenmesi ya da hatta regresyon bile çoğu zaman güç oluyor
Gerçek dünyadaki veri asla temiz değildir
Zamanın çoğu veri kalitesi yönetimine gider
Aykırı değerler ölçüm hatalarından ya da süreç değişikliklerinden kaynaklanabilir ve bunu anlamak için sürecin kendisine dair sezgi gerekir
Bu yüzden hızlı görselleştirme ve keşif sunan olgun araçlar önemlidir
SPC Cpk grafikleri doğrudan kod yazarak oluşturmak verimsizdir
SPC gerçekten harika bir araç
Daha karmaşık diğer araç setlerinden çok daha basit ve iyi çalışıyor
Çok sayıda yazım hatası var
Sayfanın tasarımını ve havasını gerçekten beğendim