একটি হিস্টোগ্রামে বিনের অনুকূল সংখ্যা গণনা করা


79

হিস্টোগ্রামে আমার কয়টি বিন ব্যবহার করা উচিত তা নির্ধারণের জন্য আমি যতটা পদ্ধতি ব্যবহার করতে পারি তার সর্বোত্তম হিসাবে অনুসন্ধান করতে আগ্রহী। আমার ডেটা সর্বাধিক 30 থেকে 350 টি অবজেক্টের মধ্যে হওয়া উচিত এবং বিশেষত আমি থ্রোসোল্ডিং (ওটসুর পদ্ধতির মতো) প্রয়োগ করার চেষ্টা করছি যেখানে "ভাল" অবজেক্ট, যা আমার কম হওয়া উচিত এবং আরও বেশি ছড়িয়ে দেওয়া উচিত, "এর থেকে আলাদা করা হয়েছে" খারাপ "অবজেক্টস, যার মান আরও ঘন হওয়া উচিত। একটি কংক্রিট মান প্রতিটি বস্তুর জন্য 1-10 স্কোর হবে। আমার কাছে 6-10 স্কোর সহ 5-10 অবজেক্ট এবং 1-2- এর স্কোর সহ 20-25 অবজেক্ট ছিল। আমি একটি হিস্টগ্রাম বাইনিং প্যাটার্নটি সন্ধান করতে চাই যা সাধারণত ওটসুর পদ্ধতির মতো কিছুকে কম স্কোরিং অবজেক্টের দোরগোড়ায় যেতে দেয়। যাইহোক, আমি দেখেছি ওতসুর বাস্তবায়নে, বিনের আকার 256 ছিল এবং প্রায়শই আমার কাছে অনেক কম ডাটা পয়েন্ট থাকে যে 256, যা আমার কাছে পরামর্শ দেয় যে 256 একটি ভাল বিন সংখ্যা নয়। খুব অল্প ডেটা সহ, ব্যবহারযোগ্য বিনের সংখ্যা গণনা করার জন্য আমার কোন পন্থা নেওয়া উচিত?


আমি মনে করি স্টার্জেসের নিয়মটি <200; যেখানে এন পর্যবেক্ষণের সংখ্যা
ভেঙ্কাসুব

উত্তর:


94

Freedman-Diaconis নিয়ম খুব শক্তসমর্থ এবং বাস্তবে ভাল কাজ করে। বিন-চওড়া সেট করা হয় । সুতরাং সংখ্যা , যেখানে পর্যবেক্ষণের সংখ্যা, সর্বাধিক সর্বাধিক মান এবং সর্বনিম্ন সর্বনিম্ন মান।h=2×IQR×n1/3(maxmin)/hn

বেস বেসে, আপনি ব্যবহার করতে পারেন:

hist(x, breaks="FD")

এই বিকল্পটি (উদাহরণস্বরূপ ggplot2) ব্যতীত অন্য প্লট করা লাইব্রেরিগুলির জন্য , আপনি বিনবিদথ হিসাবে গণনা করতে পারেন:

bw <- 2 * IQR(x) / length(x)^(1/3)

### for example #####
ggplot() + geom_histogram(aes(x), binwidth = bw)

2
@nico। আর-এ ডিফল্ট হ'ল ব্রেকস = "স্ট্রজস" যা সর্বদা ভাল ফলাফল দেয় না।
রব হ্যান্ডম্যান

4
একজন কীভাবে গণনা করবে IQR?
কার্ট মুয়েলার

1
@ কুর্টমুয়েলার আইকিউআর মানে আন্তঃখণ্ডের পরিসর। 1 ম চতুর্থাংশ এবং তৃতীয় কোয়ার্টাইল অনুসন্ধান করুন এবং পার্থক্যটি আইকিউআর। আইকিউআর ইতিমধ্যে আর এর সাথে আসে যাতে আপনি এটি ব্যবহার করতে পারেন।
xiaodai

4
যদি আমার ভুল না হয় তবে উত্তরটি পড়া উচিতnum_bins <- diff(range(x)) / (2 * IQR(x) / length(x)^(1/3))
জশা

1
nclass.FDনয় বছর আগে ছিল না।
রব হ্যান্ডম্যান

18

যদি আপনি খুব কম বিন ব্যবহার করেন তবে হিস্টোগ্রামটি ডেটাটি খুব ভালভাবে চিত্রিত করে না। আপনার যদি অনেকগুলি বিন থাকে তবে আপনি একটি ভাঙ্গা আঁচড়ান চেহারা পাবেন যা বিতরণের কোনও ধারণা দেয় না।

একটি সমাধান হ'ল একটি গ্রাফ তৈরি করা যা প্রতিটি মান দেখায়। হয় কোনও ডট প্লট, বা একটি ক্রমবর্ধমান ফ্রিকোয়েন্সি বিতরণ, যার কোনও বিনের প্রয়োজন নেই।

আপনি যদি একইভাবে ব্যবধানযুক্ত বিনের সাথে একটি ফ্রিকোয়েন্সি বিতরণ তৈরি করতে চান তবে আপনাকে ঠিক করতে হবে যে কতগুলি বিন (বা প্রতিটি প্রস্থ)। সিদ্ধান্তটি স্পষ্টভাবে মানগুলির সংখ্যার উপর নির্ভর করে। আপনার যদি প্রচুর মান থাকে তবে আপনার গ্রাফটি আরও ভাল লাগবে এবং আপনার কাছে প্রচুর পরিমাণে ডাব থাকলে আরও তথ্যপূর্ণ হবে। এই উইকিপিডিয়া পৃষ্ঠাটি পর্যবেক্ষণের সংখ্যা থেকে বিন প্রস্থ নির্ধারণের জন্য কয়েকটি পদ্ধতি তালিকাভুক্ত করে। সবচেয়ে সহজ পদ্ধতিটি হ'ল আপনি যে মানের মানগুলি বেন করছেন তার বর্গমূলের সমান বিনয়ের সংখ্যা নির্ধারণ করা set

হিদাাকি শিমাজাকি এই পৃষ্ঠাটি একটি বিকল্প পদ্ধতি ব্যাখ্যা করে। এটি গণনা করা কিছুটা জটিল, তবে মনে হয় দুর্দান্ত কাজ করে। পৃষ্ঠার শীর্ষ অংশটি একটি জাভা অ্যাপ্লিকেশন। তত্ত্ব এবং ব্যাখ্যা দেখতে অতীতে স্ক্রোল করুন, তারপরে পদ্ধতিটি ব্যাখ্যা করে এমন কাগজগুলির লিঙ্কগুলি সন্ধান করতে স্ক্রোলিং চালিয়ে যান।


হিদাকির পাতার লিঙ্কটি নষ্ট হয়ে গেছে। এটি একই জিনিস কিনা তা সম্পর্কে আমি নিশ্চিত নই: টয়োজিউমিল্যাব.ব্রেন.রিকন.জেপ
হিদাকি

9

ডেনবি এবং ম্যাল্লোসের লেখা " হিস্টোগ্রামে ভ্যারিয়েশনস " হতে পারে এটি আগ্রহী:

এই নতুন প্রদর্শন যা আমরা "ধিস্ট" হিসাবে চিহ্নিত করি (তির্যকভাবে কাটা হিস্টোগ্রামের জন্য) সমান প্রস্থের হিস্ট এবং সমান-অঞ্চল হিস্ট উভয়েরই প্রয়োজনীয় বৈশিষ্ট্যগুলি সংরক্ষণ করে। এটিতে হিস্টের মতো লম্বা সংকীর্ণ বিনগুলি দেখানো হবে যখন ডেটাতে স্পাইক থাকবে এবং সাধারণ হিস্টগ্রামের মতো বিচ্ছিন্ন বিদেশী দেখানো হবে।

তারা আরও উল্লেখ করে যে আর-তে কোড অনুরোধে উপলব্ধ।


5

আমি নিশ্চিত না যে এটি কঠোরভাবে ভাল অনুশীলন হিসাবে গণ্য হয়েছে, তবে আমি বিভিন্ন বিন প্রস্থের সাথে একাধিক হিস্টগ্রাম তৈরি করার চেষ্টা করেছি এবং হিস্টগ্রামটি ব্যবহার করতে যে হিস্টগ্রামটি ব্যবহার করতে হবে তার ভিত্তিতে হিস্টগ্রাম যে ব্যাখ্যাটি আমি সবচেয়ে ভালভাবে যোগাযোগ করার চেষ্টা করছি তার উপর নির্ভর করে। যদিও এটি হিস্টগ্রামের নির্বাচনের ক্ষেত্রে কিছুটা উদ্দেশ্যমূলকতার পরিচয় দেয় আমি সেই ভিত্তিতে এটিকে ন্যায্যতা প্রমাণ করি যে আমি হিস্টোগ্রামটি দিচ্ছি তার চেয়ে বেশি তথ্য পেয়েছি, সুতরাং আমি তাদের খুব সংক্ষিপ্ত বার্তা দেওয়া দরকার।

আমি একই বিন প্রস্থের পরিবর্তে প্রতিটি বিনের একই সংখ্যক পয়েন্ট সহ হিস্টোগ্রাম উপস্থাপনের একটি বড় অনুরাগী। আমি সাধারণত এগুলি ডেটা স্থির বিন প্রস্থের তুলনায় আরও বেশি ভাল উপাত্ত উপস্থাপন করতে দেখি যদিও তারা উত্পাদন করা মুপরে।


1
দুঃখিত, আমার উল্লেখ করা উচিত ছিল যে আমাকে এটি একটি স্বয়ংক্রিয় পদ্ধতিতে করা দরকার। "আমার উদ্দেশ্যটির পক্ষে সবচেয়ে উপযুক্ত সন্ধান না করা পর্যন্ত এটি একাধিকবার করা" বিকল্পটি আমার পক্ষে কাজ করবে না। গণনা করাতে হবে ...
টনি স্টার্ক

4
আমি সম্মতি জানাই - একটি "অনুকূল" বিন প্রস্থ রয়েছে এমন ধারণাটি একটি বিশাল সরলকরণ অনুমান।
হ্যাডলি

5

আপনি কি শিমাজাকি-সিনোমোটো পদ্ধতিটি দেখেছেন ?

যদিও এটি গণনামূলকভাবে ব্যয়বহুল বলে মনে হচ্ছে, এটি আপনাকে ভাল ফলাফল দিতে পারে। কম্পিউটেশনাল সময় যদি আপনার সমস্যা না হয় তবে এটি চেষ্টা করে দেখার মতো। নীচের লিঙ্কে জাভা, ম্যাটল্যাব ইত্যাদিতে এই পদ্ধতির কিছু বাস্তবায়ন রয়েছে যা দ্রুত পর্যায়ে চলে: ওয়েব-ইন্টারফেস


3

যদি আমাকে প্রোগ্রামিনিকভাবে বিনের সংখ্যা নির্ধারণ করতে হয় তবে আমি সাধারণত একটি হিস্টগ্রাম দিয়ে শুরু করি যার প্রয়োজনের চেয়ে আরও বেশি বিন্যাস রয়েছে। হিস্টোগ্রামটি পূর্ণ হয়ে গেলে আমি তারপরে বিনটি একত্রিত করি যতক্ষণ না আমি যে পদ্ধতিটি ব্যবহার করছি তার জন্য বিন প্রতি আমার যথেষ্ট পরিমাণে প্রবেশ রয়েছে, যেমন আমি যদি সাধারণ ডিস্ট্রিবিউশন থেকে অনিশ্চয়তার সাথে একটি গণনা পরীক্ষায় পোইসন-অনিশ্চয়তা মডেল করতে চাই তবে যতক্ষণ না আমার 10 এর মতো কিছু থাকে এন্ট্রি।


2

মিঃ রব হ্যান্ডম্যানের উত্তরের পরিপূরক হিসাবে দয়া করে এই উত্তরটি দেখুন

ফ্রিডম্যান – ডায়াকনিস নিয়মটি বেসিক আর বা প্যাকেজ ব্যবহার করে হুডোগ্রাম প্লটগুলি একই একই অন্তর বা 'বিনুইডথস' ব্যবহার করে তৈরি করার জন্য , আমরা ফাংশনের মানগুলির মধ্যে একটি ব্যবহার করতে পারি । মনে করুন আমরা ফ্রিডম্যান – ডায়াকোনিস বিধিটি ব্যবহার করে ডেটা থেকে একটি হিস্টগ্রাম তৈরি করতে চাই । বেসিক আর এ আমরা ব্যবহার করিggplot2hist()breaksqsecmtcars

x <- mtcars$qsec
hist(x, breaks = "FD")

এদিকে, ggplot2প্যাকেজে আমরা ব্যবহার করি

h <- hist(x, breaks = "FD", plot = FALSE)
qplot(x, geom = "histogram", breaks = h$breaks, fill = I("red"), col = I("white"))

বা, বিকল্পভাবে

ggplot(mtcars, aes(x)) + geom_histogram(breaks = h$breaks, col = "white")

এঁরা সকলেই হুটোগ্রাম প্লট উত্স হিসাবে একই একই বিরতি এবং বিনের সংখ্যা সহ উত্পন্ন করেন।


-5

আমার কাছে আঃ জি / টি এর জন্য 600 টি পর্যবেক্ষণ রয়েছে। বিন আকার 1 আমাকে এটি দেয়:এখানে চিত্র বর্ণনা লিখুন

স্বয়ংক্রিয় নির্বাচন (বিন পরিসর বাদ দেওয়া) এটি দেয়:এখানে চিত্র বর্ণনা লিখুন

ডেটাটি প্রথম এবং দ্বিতীয় গ্রাফগুলিতে ও'কে দেখায়, যেমন ডেটা অখণ্ডতায় কোনও সমস্যা নেই। কেবল বিন আকার 0.1 (জি / টি) প্রশ্নের উত্তর দেয়: পরিমাপগুলি উভয়ই সঠিক এবং অপ্রচলিত ছিলএখানে চিত্র বর্ণনা লিখুন

আমার রায়: ১. প্রাকৃতিক ঘটনার সত্যিকারের মূল্য দেখানোর জন্য পৃথিবীতে কোনও পরিমাপের কৌশল নেই। সমস্ত পরিমাপ আনুমানিক, কিছু সত্য মানের কাছাকাছি। এটি স্যাম্পলিং ডিজাইন, ক্রমাঙ্কন, মানবিক যোগ্যতা ইত্যাদির উপর নির্ভর করে 2. এই কারণেই প্রতিস্থাপনের চেয়ে প্রতিসাম্য ছড়িয়ে দেওয়া হয়। ৩. তবে তবুও, বিতরণের আকারটি কমপক্ষে আনুমানিক "বেলের মতো" বিভাগের মতো হওয়া উচিত। একটি সময়ে একটি ঘণ্টা (বেশ কয়েকটি ভূতাত্ত্বিক পরিবেশ না থাকলে)। ৪.বিন আকারের কারসাজির সাথে ফ্রিকোয়েন্সি বিতরণ পরিমাপটি কীভাবে সঠিক এবং নির্ভুল হয়েছিল তা নিদর্শন প্রকাশ করতে সহায়তা করতে পারে। যাতে পাথর কাটা নিয়মের পরিবর্তে কাউকে পরীক্ষামূলকভাবে বিন আকারের বাছাই করা দরকার।


2
আপনি যদি নৈতিকতার বানান না করেন তবে এটি উত্তরের চেয়ে বেশি মন্তব্য। আমি বলব নৈতিকটি হ'ল: সমস্ত বিধিগুলি থাম্বের নিয়ম, কারও কারও কাছে অন্যের তুলনায় পরিসংখ্যানগত ভিত্তি থাকে, তবে বেশিরভাগ নিয়মগুলি আপনার ইচ্ছা অনুযায়ী তা করতে পারে না যদি বিতরণে খুব বেশি স্কিউনেস বা কুর্তোসিস থাকে। সুতরাং, আপনার রায়টিও ব্যবহার করুন।
নিক কক্স

2
আপনি মন্তব্য যুক্ত করেছেন, তবে আমি স্পষ্ট নই যে থ্রেডে নতুন কোনও বিশদ সহায়ক। 1. আমার দ্বারা ঠিক আছে তবে এখানে সমস্যা নেই। ২. ১ থেকে অনুসরণ করে না কারণ কিছু বিতরণ প্রায় প্রতিসম হয়। ৩. সন্দেহজনক: এমন অনেকগুলি পরিস্থিতি রয়েছে যেখানে ঘণ্টা বাদে অন্য আকারগুলি প্রত্যাশিত। ৪. সন্দেহজনক যেহেতু মূল পরিমাপের মানটি কোনও হিস্টগ্রাম থেকে প্রায়শই স্পষ্ট হয় না, তবে প্রায়শই একটি বিতরণের খুব সূক্ষ্ম কাঠামোর দিকে মনোযোগ দিয়ে পরীক্ষা করা হয়।
নিক কক্স

২.নিম্নত প্রতিসাম্য প্রতিসম নয়। আপনি প্রায় গর্ভবতী হতে পারবেন না: হয় গর্ভবতী না হয়।
সার্গো কুসিয়ানী

2
অবশ্যই, তবে ডেটাতে যথাযথ প্রতিসাম্য এত বিরল যে আমি যদি "প্রতিসম" বলে থাকি তবে কারও পক্ষে এটির পক্ষেও আপত্তি থাকতে পারে। এটি প্রায় প্রতিসাম্য হতে খুব সহজেই; এই কারণেই এবং কীভাবে আমাদের স্কিউনেসের ব্যবস্থা রয়েছে।
নিক কক্স

1
লক্ষ করা গেছে, তবে আপনার মন্তব্যটি সাধারণ ছিল এবং আপনার এখন দেওয়া প্রসঙ্গের অভাব রয়েছে। পরিবর্তে আমি বলেছিলাম "সন্দেহজনক" "ভুল" নয়। আমার বড় মন্তব্যটি রয়ে গেছে যে আপনার উত্তরটি কীভাবে বিন আকার বা সমতুল্য বিন্যাস নির্বাচন করতে হয় তার সূত্রে খুব বেশি যুক্ত হয় না। এটির পক্ষে আরও একটি উদাহরণ থাকা শক্তিশালী হওয়া প্রশ্নটির একটি স্পিন, আসলে কোনও উত্তর নয়।
নিক কক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.