আকার নির্ধারণ করতে হিস্টোগ্রাম ব্যবহারে সমস্যা
যদিও হিস্টোগ্রামগুলি প্রায়শই কার্যকর এবং কখনও কখনও দরকারী হয় তবে এগুলি বিভ্রান্তিকর হতে পারে। বিন সীমানার অবস্থানগুলিতে পরিবর্তনগুলির সাথে তাদের উপস্থিতি বেশ কিছুটা পরিবর্তন করতে পারে।
এই সমস্যাটি দীর্ঘকাল ধরে জানা গেছে, যদিও এটি যতটা বিস্তৃত হওয়া উচিত তা সম্ভবত নয় - এটি প্রাথমিক স্তরের আলোচনায় আপনি খুব কমই উল্লেখ করেছেন (যদিও ব্যতিক্রম রয়েছে)।
* উদাহরণস্বরূপ, পল রুবিন [1] এটিকে এভাবে লিখেছেন: " এটি সর্বজনবিদিত যে একটি হিস্টোগ্রামের শেষ পয়েন্টগুলি পরিবর্তন করে এর উপস্থিতি উল্লেখযোগ্যভাবে পরিবর্তন করতে পারে "। ।
আমি মনে করি এটি এমন একটি বিষয় যা হিস্টোগ্রামগুলি প্রবর্তন করার সময় আরও ব্যাপকভাবে আলোচিত হওয়া উচিত। আমি কিছু উদাহরণ এবং আলোচনা দেব।
আপনার কোনও ডেটা সেটের একক হিস্টোগ্রামের উপর নির্ভর করতে কেন সতর্ক থাকতে হবে
এই চারটি হিস্টোগ্রামটি একবার দেখুন:
এটি চারটি ভিন্ন ভিন্ন হিস্টোগ্রামে।
আপনি যদি নিম্নলিখিত ডেটাগুলি পেস্ট করেন (আমি এখানে আর ব্যবহার করছি):
Annie <- c(3.15,5.46,3.28,4.2,1.98,2.28,3.12,4.1,3.42,3.91,2.06,5.53,
5.19,2.39,1.88,3.43,5.51,2.54,3.64,4.33,4.85,5.56,1.89,4.84,5.74,3.22,
5.52,1.84,4.31,2.01,4.01,5.31,2.56,5.11,2.58,4.43,4.96,1.9,5.6,1.92)
Brian <- c(2.9, 5.21, 3.03, 3.95, 1.73, 2.03, 2.87, 3.85, 3.17, 3.66,
1.81, 5.28, 4.94, 2.14, 1.63, 3.18, 5.26, 2.29, 3.39, 4.08, 4.6,
5.31, 1.64, 4.59, 5.49, 2.97, 5.27, 1.59, 4.06, 1.76, 3.76, 5.06,
2.31, 4.86, 2.33, 4.18, 4.71, 1.65, 5.35, 1.67)
Chris <- c(2.65, 4.96, 2.78, 3.7, 1.48, 1.78, 2.62, 3.6, 2.92, 3.41, 1.56,
5.03, 4.69, 1.89, 1.38, 2.93, 5.01, 2.04, 3.14, 3.83, 4.35, 5.06,
1.39, 4.34, 5.24, 2.72, 5.02, 1.34, 3.81, 1.51, 3.51, 4.81, 2.06,
4.61, 2.08, 3.93, 4.46, 1.4, 5.1, 1.42)
Zoe <- c(2.4, 4.71, 2.53, 3.45, 1.23, 1.53, 2.37, 3.35, 2.67, 3.16,
1.31, 4.78, 4.44, 1.64, 1.13, 2.68, 4.76, 1.79, 2.89, 3.58, 4.1,
4.81, 1.14, 4.09, 4.99, 2.47, 4.77, 1.09, 3.56, 1.26, 3.26, 4.56,
1.81, 4.36, 1.83, 3.68, 4.21, 1.15, 4.85, 1.17)
তারপরে আপনি এগুলি নিজে তৈরি করতে পারেন:
opar<-par()
par(mfrow=c(2,2))
hist(Annie,breaks=1:6,main="Annie",xlab="V1",col="lightblue")
hist(Brian,breaks=1:6,main="Brian",xlab="V2",col="lightblue")
hist(Chris,breaks=1:6,main="Chris",xlab="V3",col="lightblue")
hist(Zoe,breaks=1:6,main="Zoe",xlab="V4",col="lightblue")
par(opar)
এখন এই স্ট্রিপ চার্টটি দেখুন:
x<-c(Annie,Brian,Chris,Zoe)
g<-rep(c('A','B','C','Z'),each=40)
stripchart(x~g,pch='|')
abline(v=(5:23)/4,col=8,lty=3)
abline(v=(2:5),col=6,lty=3)
(যদি এটি এখনও সুস্পষ্ট না হয় তবে দেখুন আপনি প্রতিটি সেট থেকে অ্যানির ডেটা বিয়োগ করলে কী হয় head(matrix(x-Annie,nrow=40))
:)
তথ্যগুলি প্রতিবার 0.25-এ রেখে সরানো হয়েছে।
তবুও আমরা হিস্টোগ্রামগুলি থেকে পাওয়া ইমপ্রেশনগুলি - ডান স্কিউ, ইউনিফর্ম, বাম স্কিউ এবং বিমোডাল - একেবারে আলাদা ছিল। আমাদের ছাপ পুরোপুরি সর্বনিম্নের সাথে সম্পর্কিত প্রথম বিন-উত্সের অবস্থান দ্বারা পরিচালিত হয়েছিল।
সুতরাং কেবল 'ক্ষতিকারক' বনাম 'সত্যই-এক্সপোনেনশিয়াল' নয় 'ডান স্কিউ' বনাম 'বাম স্কিউ' বা 'বিমোডাল' বনাম 'ইউনিফর্ম' যেখানে আপনার ডানাগুলি শুরু হয় ঠিক সেখানে চলে যান।
সম্পাদনা করুন: আপনি যদি দ্বিবিধকে পৃথক করেন তবে আপনি এই জাতীয় জিনিসগুলি পেতে পারেন:
এটা একই binwidth সঙ্গে এক উভয় ক্ষেত্রেই 34 পর্যবেক্ষণ, শুধু বিভিন্ন ব্রেকপয়েন্ট, এবং binwidth সঙ্গে অন্যান্য ।0.810.8
x <- c(1.03, 1.24, 1.47, 1.52, 1.92, 1.93, 1.94, 1.95, 1.96, 1.97, 1.98,
1.99, 2.72, 2.75, 2.78, 2.81, 2.84, 2.87, 2.9, 2.93, 2.96, 2.99, 3.6,
3.64, 3.66, 3.72, 3.77, 3.88, 3.91, 4.14, 4.54, 4.77, 4.81, 5.62)
hist(x,breaks=seq(0.3,6.7,by=0.8),xlim=c(0,6.7),col="green3",freq=FALSE)
hist(x,breaks=0:8,col="aquamarine",freq=FALSE)
নিফটি, আহ?
হ্যাঁ, সেই তথ্যগুলি ইচ্ছাকৃতভাবে এটি করার জন্য তৈরি করা হয়েছিল ... তবে পাঠটি স্পষ্ট - আপনি হিস্টোগ্রামে যা দেখেন তা ডেটার বিশেষত সঠিক ছাপ নাও হতে পারে।
আমরা কি করতে পারি?
হিস্টোগ্রামগুলি ব্যাপকভাবে ব্যবহৃত হয়, প্রায়শই প্রাপ্তি জন্য সুবিধাজনক এবং কখনও কখনও প্রত্যাশিত। এই জাতীয় সমস্যা এড়াতে বা প্রশমিত করতে আমরা কী করতে পারি?
যেমন নিক কক্স একটি সম্পর্কিত প্রশ্নের মন্তব্যে উল্লেখ করেছেন : থাম্বের নিয়ম সর্বদা হওয়া উচিত যে বিনের প্রস্থ এবং বিনের উত্সের পরিবর্তনের জন্য বিশদ বিবরণ যথাযথ হতে পারে; এগুলির কাছে ভঙ্গুর বিশদটি উদ্দীপনা বা তুচ্ছ হতে পারে ।
অন্ততপক্ষে, আপনার সর্বদা বেশ কয়েকটি ভিন্ন দ্বিবিধ বা বিন-উত্সে বা সাধারণত উভয় ক্ষেত্রেই হিস্টোগ্রাম করা উচিত।
বিকল্পভাবে, একটি ব্যান্ডউইদথ খুব বেশি প্রশস্ত নয় একটি কার্নেল ঘনত্ব অনুমান পরীক্ষা করে দেখুন।
হিস্টোগ্রামের স্বেচ্ছাচারিতা হ্রাস করে এমন অন্য একটি পদ্ধতির গড় স্থানান্তরিত হিস্টোগ্রাম ,
(এটি সেই সাম্প্রতিক তথ্যের সেটগুলির মধ্যে একটি) তবে আপনি যদি সেই প্রচেষ্টায় যান তবে আমি মনে করি আপনি সম্ভবত কার্নেলের ঘনত্বের প্রাক্কলনটি ব্যবহার করতে পারেন।
যদি আমি কোনও হিস্টগ্রাম করছি (আমি বিষয়টি সম্পর্কে তীব্র সচেতন হওয়া সত্ত্বেও এগুলি ব্যবহার করি), তবে আমি প্রায় সবসময় সাধারণত সাধারণত প্রোগ্রামের ডিফল্টগুলির চেয়ে বেশি পরিমাণে বিন্দু ব্যবহার করতে পছন্দ করি এবং প্রায়শই আমি বিবিধ প্রস্থের সাথে বিভিন্ন হিস্টোগ্রাম করতে পছন্দ করি (এবং, মাঝেমধ্যে, উত্স)। যদি তারা ছাপে যুক্তিসঙ্গতভাবে সামঞ্জস্য হন তবে আপনার এই সমস্যা হওয়ার সম্ভাবনা নেই, এবং যদি তারা সামঞ্জস্য না রাখেন তবে আপনি আরও সাবধানতার সাথে দেখতে জানেন, সম্ভবত কার্নেলের ঘনত্বের প্রাক্কলন, একটি অভিজ্ঞতাশীল সিডিএফ, একটি কিউকিউ প্লট বা অন্য কিছু চেষ্টা করুন অনুরূপ.
যদিও কখনও কখনও হিস্টোগ্রামগুলি বিভ্রান্তিমূলক হতে পারে, বক্সপ্লটগুলি এ জাতীয় সমস্যার আরও বেশি ঝুঁকিপূর্ণ হয়; একটি বক্সপ্লট দিয়ে আপনার কাছে "আরও বিন ব্যবহার করুন" বলার ক্ষমতাও নেই। এই পোস্টে চারটি আলাদা আলাদা ডেটা সেট দেখুন , সবগুলি অভিন্ন, প্রতিসামগ্রী বক্সপ্লট সহ, যদিও ডেটা সেটগুলির মধ্যে একটি যথেষ্ট স্কিউ থাকে।
[1]: রুবিন, পল (২০১৪) "হিস্টোগ্রাম আপত্তি!",
ব্লগ পোস্ট, বা একটি ওবি বিশ্বে , জানুয়ারী 23 2014
লিঙ্ক ... (বিকল্প লিঙ্ক)