(এই উত্তরটি বকেয়া ইভেন্টগুলি সনাক্তকরণে একটি সদৃশ (এখন বন্ধ) প্রশ্নের জবাব দিয়েছে , যা গ্রাফিকাল আকারে কিছু তথ্য উপস্থাপন করেছে presented
আউটলেট সনাক্তকরণ ডেটার প্রকৃতি এবং আপনি সেগুলি সম্পর্কে কী ধরে নিতে ইচ্ছুক তার উপর নির্ভর করে। সাধারণ উদ্দেশ্য পদ্ধতি শক্তিশালী পরিসংখ্যানের উপর নির্ভর করে। এই পদ্ধতির স্পিরিটি হ'ল ডেটায়ের সিংহভাগ এমনভাবে চিহ্নিত করা যায় যা কোনও বিদেশী দ্বারা প্রভাবিত হয় না এবং তারপরে এমন কোনও স্বতন্ত্র মানগুলিকে নির্দেশ করে যা সেই বৈশিষ্ট্যটির মধ্যে খাপ খায় না।
যেহেতু এটি একটি সময়ের সিরিজ, এটি চলমান ভিত্তিতে বিদেশীদের সনাক্ত করতে (পুনরায়) প্রয়োজনের জটিলতা যুক্ত করে। যদি সিরিজটি উদ্ঘাটন হিসাবে এটি করা হয়, তবে আমাদের কেবল ভবিষ্যতের ডেটা নয়, সনাক্তকরণের জন্য পুরানো ডেটা ব্যবহার করার অনুমতি দেওয়া হচ্ছে! তদতিরিক্ত, বহুবার পুনরাবৃত্তি পরীক্ষার বিরুদ্ধে সুরক্ষা হিসাবে, আমরা এমন একটি পদ্ধতি ব্যবহার করতে চাই যাতে খুব কম মিথ্যা ইতিবাচক হার রয়েছে।
এই বিবেচনাগুলি ডেটাগুলির উপর একটি সহজ, শক্তিশালী মুভিং উইন্ডো আউটলেট পরীক্ষা চালানোর পরামর্শ দেয় । অনেকগুলি সম্ভাবনা রয়েছে তবে একটি সহজ, সহজে বোঝা যায় এবং সহজেই প্রয়োগ করা একটি চলমান এমএডি: মিডিয়ান থেকে মধ্যমা পরম বিচ্যুতি ভিত্তিক। এটি একটি স্ট্যান্ডার্ড বিচ্যুতির অনুরূপ তথ্যের মধ্যে ভিন্নতার একটি দৃ of়তম মাপদণ্ড। একটি বহির্মুখী শিখরটি বেশিরভাগ এমএডি বা মাঝের চেয়ে আরও বেশি হবে।
R
x=(1,2,…,n)n=1150y
# Parameters to tune to the circumstances:
window <- 30
threshold <- 5
# An upper threshold ("ut") calculation based on the MAD:
library(zoo) # rollapply()
ut <- function(x) {m = median(x); median(x) + threshold * median(abs(x - m))}
z <- rollapply(zoo(y), window, ut, align="right")
z <- c(rep(z[1], window-1), z) # Use z[1] throughout the initial period
outliers <- y > z
# Graph the data, show the ut() cutoffs, and mark the outliers:
plot(x, y, type="l", lwd=2, col="#E00000", ylim=c(0, 20000))
lines(x, z, col="Gray")
points(x[outliers], y[outliers], pch=19)
প্রশ্নে বর্ণিত লাল বক্ররের মতো একটি ডেটাসেটে প্রয়োগ করা হয়েছে, এটি এই ফলাফলটি প্রকাশ করে:
ডেটাটি লাল রঙে, মিডিয়ানের 30 দিনের উইন্ডোতে দেখানো হয়েছে + ধূসর রঙের মধ্যে 5 * এমএডি থ্রেশহোল্ডগুলি এবং বিদেশীরা - যা কেবল ধূসর বক্ররেখার উপরে data ডেটা মানগুলি - কালো রঙে in
(থ্রেশহোল্ডটি কেবলমাত্র প্রাথমিক উইন্ডোটির শেষে গণনা করা যেতে পারে initial প্রাথমিক উইন্ডোর সমস্ত তথ্যের জন্য প্রথম প্রান্তিক ব্যবহার করা হয়: এজন্য ধূসর বক্ররেখা x = 0 এবং x = 30 এর মধ্যে সমতল))
প্যারামিটারগুলি পরিবর্তনের প্রভাবগুলি হ'ল (ক) এর মান বৃদ্ধি করা window
ধূসর বক্ররেখা মসৃণ করে এবং (খ) বৃদ্ধি threshold
ধূসর বক্ররেখা উত্থাপন করে। এটি জানার মাধ্যমে, কেউ ডেটার প্রাথমিক বিভাগে নিয়ে যেতে পারে এবং দ্রুত প্যারামিটারগুলির মানগুলি সনাক্ত করতে পারে যা বাকী ডেটা থেকে বহির্মুখী শিখরকে সর্বোত্তম করে দেয়। বাকী ডেটা পরীক্ষা করার জন্য এই প্যারামিটার মানগুলি প্রয়োগ করুন। যদি কোনও প্লট দেখায় যে পদ্ধতি সময়ের সাথে সাথে আরও খারাপ হচ্ছে, তার অর্থ ডেটার প্রকৃতি পরিবর্তন হচ্ছে এবং পরামিতিগুলিকে পুনরায় টিউনিংয়ের প্রয়োজন হতে পারে।
এই পদ্ধতিটি ডেটা সম্পর্কে কতটা অনুমান করে তা লক্ষ্য করুন: তাদের সাধারণত বিতরণ করতে হবে না; তাদের কোনও পর্যায়ক্রমিকতা প্রদর্শন করার প্রয়োজন নেই; এমনকি তাদের অ-নেতিবাচক হতে হবে না। সকল এটা ধরে নেয় যে ডেটা সময়ের যুক্তিসঙ্গতভাবে অনুরূপ উপায়ে আচরণ এবং পার্শ্ববর্তী পীক ডেটার বাকি তুলনায় দৃশ্যত বেশী যে হয়।
যদি কেউ পরীক্ষা করতে চান (বা এখানে প্রদত্ত একটিটির সাথে অন্য কোনও সমাধানের তুলনা করুন), এখানে কোডটি আমি প্রশ্নের মধ্যে দেখানো মত ডেটা তৈরি করতে ব্যবহার করেছি।
n.length <- 1150
cycle.a <- 11
cycle.b <- 365/12
amp.a <- 800
amp.b <- 8000
set.seed(17)
x <- 1:n.length
baseline <- (1/2) * amp.a * (1 + sin(x * 2*pi / cycle.a)) * rgamma(n.length, 40, scale=1/40)
peaks <- rbinom(n.length, 1, exp(2*(-1 + sin(((1 + x/2)^(1/5) / (1 + n.length/2)^(1/5))*x * 2*pi / cycle.b))*cycle.b))
y <- peaks * rgamma(n.length, 20, scale=amp.b/20) + baseline