Zaman Serilerinde Aykırı Tespit: Yanlış pozitifler nasıl azaltılır?


11

Zaman serilerinde aykırı algılamayı otomatikleştirmeye çalışıyorum ve burada Rob Hyndman tarafından önerilen çözümde bir değişiklik kullandım .

Diyelim ki, çeşitli ülkelerden bir web sitesine günlük ziyaretleri ölçüyorum. Günlük ziyaretlerin birkaç hundrend veya binlerce olduğu bazı ülkelerde, yöntemim makul çalışıyor gibi görünüyor.

Bununla birlikte, bir ülkenin günde sadece 1 veya 2 ziyarete yol açtığı durumlarda, algoritmanın sınırları çok dardır (örneğin 1 ± 0.001) ve bu nedenle 2 ziyaret bir aykırı sayılır. Bu tür vakaları otomatik olarak nasıl tespit edebilirim ve aykırı değerleri belirlemek için nasıl tedavi edebilirim? Günde 100 ziyaret için manuel bir eşik ayarlamak istemiyorum.

Teşekkür ederim!


2
Bir çok değişken varyansa (en azından kısmen) kaynaklanmaktadır - - sorunu çözebilir doğal, basit bir şekilde, örneğin, bir şekilde, bir varyans-stabilize edici bir dönüşüm uygulamaktır Anscombe veya Freeman-Tukey dönüşüm verileri, aykırı değerlere bakmadan önce.
whuber

Yanıtlar:


3

Küçük, ayrı sayımlar için fazla bir şey beklemeyin. 1 ile 2 ziyaret arasında% 100'lük bir artış ve 0 ile 1 ziyaret arasında sonsuz bir artış var. Düşük seviyelerde sıfır şişirilmiş modellerle uğraşıyor olabilirsiniz ve orada da çok gürültülü olabilir.

Deneyimlerime göre, bu gibi büyük ve küçük sayımların bir karışımı ile verileri sayın, küçük sayımlarınızla iki soruna neden olur: 1) çok fazla yapmak için çok kaba, 2) farklı süreçler tarafından üretilirler. (Büyük şehir postanesine karşı küçük, kırsal postaneyi düşünün). Bu nedenle, modellemenizi en azından ikiye bölmelisiniz: daha büyük sayımlar için başarıyla yaptığınız şeyi yapın ve küçük sayımlarla farklı bir şey - daha kaba ve daha yaklaşık - yapın. Ama küçük sayıların çoğunu beklemeyin.

İyi haber şu ki, büyük sayımlar, tanım olarak, işlemlerinizin daha fazlasını içerir, bu nedenle daha iyi modeliniz, sitelerinizin çoğunu kapsamasa bile, daha fazla veriyi kapsar.

(Genel olarak "modelleme" diyorum, ancak elbette daha aykırı algılama, belirli bir modeli varsaymak ve bu modelin varsayımlarına pek benzemeyen noktalar bulmaktır.)


1

Zaman serilerinizdeki her değer, olasılık dağılımından bir örnektir. Öncelikle olasılık dağılımının ne olduğunu bulmalı ve sonra bu dağıtımda nadir kelimesinin ne anlama geldiğini tanımlamalısınız.

Ampirik cdf'yi hesaplayın ve% 95 güven aralığını hesaplayın. Bu bölgenin dışında bir şey meydana geldiğinde, tanım gereği bunun nadir bir olay olması gerektiğini bilirsiniz.


0

Bir aykırı değeri belirli bir güven düzeyinde saptamak ve yine aykırı değeri kabul etmeyi daha da kısıtlayacak ikinci bir şartname belirlemek başka bir şeydir. Bir zamanlar şu soru soruldu: "AUTOBOX, önceden belirlenmiş bir güven düzeyinde xx birimlerinin ortalama kaymasını algılayabilir mi?" Esasen gerekli olan çift testti. AUTOBOX, ücretsiz bir yazılım bu ikili testi uygulamadığından, uygun maliyetli bulabileceğiniz, geliştirmeye yardımcı olduğum bir yazılım parçasıdır.

Teşekkürler Nick: Ben bir "aykırı" özel bir örnek olarak veya genel olarak ampirik olarak belirlenen deterministik etkisi bir seviye kayması kullanıyordum. "Aykırı değerlerin" diğer formları Bakliyat, Mevsimsel Bakliyat ve Yerel Zaman Eğilimleri VE yeni bir seviyeye geçici bir değişiklik gibi belirli kombinasyonlardır. Ana nokta, istatistiksel önemi ve gerçek dünya önemini yansıtan iki hipotez olabileceğiydi. Bu sorunu ilk başta dikkatime çeken müşteri her ikisiyle de ilgilendi.


Bir aykırı değer ortalama bir değişim anlamına gelmez .... Aslında, farklı araçlarla rejimler arasındaki kademeli veya rampalı değişim hiç de aykırı değerlere ihtiyaç duymaz. Bunu çok iyi biliyorsunuz, ancak bunun ima ettiğini düşündüğüm, cevabınızı etmenin başkalarına en çok yardımcı olacağı.
Nick Cox

İkinize de teşekkürler. Gerçek dünyanın önemi ile ilgileniyorum. Bir aykırı değeri belirledikten sonra, son önemini elde etmek için toplam ziyaretlere kıyasla ziyaretlerin oranı ile önemini düşünüyorum. 2 ziyaret durumunda bu oran gerçekten küçük olmasına rağmen, beklenen değerler 1 ± 0.001 olduğundan, gerçek noktanın beklenen sınırlardan 'mesafesi' çok yüksektir (örneğin, 0.002 'iqr' olduğunda 2 / 0.002) . Sonuçta, konu büyük önem kazanıyor. Herhangi bir fikir?
Stergios

Burada "aykırı değerlerin" uzun süreli kullanımının, birçok edebiyatta yaygın olan aşırı şeylerin cömert duygusundan bile çok daha geniş olduğunu işaret ederim. Tecrübeli okuyucular @IrishStat'ın forte, zaman serisi analizine bağlı olduğunu bileceklerdir.
Nick Cox

0

Bu sorunla karşılaşıyorsunuz çünkü verileriniz normal bir dağılımdan çok uzak. Dağılım oldukça asimetrik ise, çarpmalar, tümsekler veya çok uzun / kısa kuyruklarla sorun yaşarsınız. Yönteminizi kullanmadan önce Box Cox veya Yeo-Johnson gibi bir dönüşüm uygulamak iyi bir fikirdir. Örneğinizde F (x) = log (1 + x) kullanıyorsanız, farklı büyüklük sorununu önlersiniz ve şunu kullanarak dönüştürebilirsiniz: exp (z) -1

Box-Cox dönüşümü için otomatik olarak iyi bir lambda bulmak için kullanabileceğiniz birkaç prosedür vardır. Şahsen R'deki AID paketinden boxcoxnc fonksiyonunun tüm yöntemlerinin medyanını kullanıyorum. Verileriniz kesinlikle olumlu değilse, kullanmadan önce 1 veya başka bir pozitif sayı eklemeniz gerekir.

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.