প্লটগুলি "হ্যান্ডেল বার" এর বিকল্প গ্রাফিক্স


15

আমার গবেষণার ক্ষেত্রে, ডেটা প্রদর্শন করার একটি জনপ্রিয় উপায় হ'ল "হ্যান্ডেল-বার্স" সহ একটি বার চার্টের সংমিশ্রণটি ব্যবহার করা। উদাহরণ স্বরূপ,

এখানে চিত্র বর্ণনা লিখুন

লেখকের উপর নির্ভর করে স্ট্যান্ডার্ড ত্রুটি এবং স্ট্যান্ডার্ড বিচ্যুতিগুলির মধ্যে বিকল্প "হ্যান্ডেল-বার্স"। সাধারণত, প্রতিটি "বার" এর জন্য নমুনার আকারগুলি মোটামুটি ছোট - প্রায় ছয়টি।

জীববিজ্ঞানগুলিতে এই প্লটগুলি বিশেষভাবে জনপ্রিয় বলে মনে হচ্ছে - উদাহরণস্বরূপ বিএমসি জীববিজ্ঞানের প্রথম কয়েকটি কাগজপত্র দেখুন ।

আপনি কিভাবে এই তথ্য উপস্থাপন করবেন?

কেন আমি এই প্লটগুলি অপছন্দ করি

ব্যক্তিগতভাবে আমি এই প্লটগুলি পছন্দ করি না।

  1. যখন নমুনার আকার ছোট হয়, তবে কেন কেবল পৃথক ডেটা পয়েন্টগুলি প্রদর্শিত হবে না।
  2. এটি কি এসডি বা সেটি প্রদর্শিত হচ্ছে? কোনটি ব্যবহার করতে রাজি নয়।
  3. কেন একেবারে বার ব্যবহার করুন। ডেটা (সাধারণত) 0 থেকে যায় না তবে গ্রাফের প্রথম পাসের প্রস্তাব এটি করে।
  4. গ্রাফগুলি ডেটার পরিসর বা নমুনা আকার সম্পর্কে ধারণা দেয় না।

স্ক্রিপ্ট

প্লটটি উত্পন্ন করতে আমি ব্যবহৃত আর কোড এটি gene আপনি একইভাবে (যদি আপনি চান) একই ডেটা ব্যবহার করতে পারেন।

                                        #Generate the data
set.seed(1)
names = c("A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2", "C3")
prevs = c(38, 37, 31, 31, 29, 26, 40, 32, 39)

n=6; se = numeric(length(prevs))
for(i in 1:length(prevs))
  se[i] = sd(rnorm(n, prevs, 15))/n

                                        #Basic plot
par(fin=c(6,6), pin=c(6,6), mai=c(0.8,1.0,0.0,0.125), cex.axis=0.8)
barplot(prevs,space=c(0,0,0,3,0,0, 3,0,0), names.arg=NULL, horiz=FALSE,
        axes=FALSE, ylab="Percent", col=c(2,3,4), width=5, ylim=range(0,50))

                                        #Add in the CIs
xx = c(2.5, 7.5, 12.5, 32.5, 37.5, 42.5,  62.5, 67.5, 72.5)
for (i in 1:length(prevs)) {
  lines(rep(xx[i], 2), c(prevs[i], prevs[i]+se[i]))
  lines(c(xx[i]+1/2, xx[i]-1/2), rep(prevs[i]+se[i], 2))
}

                                        #Add the axis
axis(2, tick=TRUE, xaxp=c(0, 50, 5))
axis(1, at=xx+0.1, labels=names, font=1,
     tck=0, tcl=0, las=1, padj=0, col=0, cex=0.1)

6
আপনার ক্ষেত্রকে কেবলমাত্র সে। ভিএসডি প্রশ্নে sensক্যবদ্ধ হতে সহায়তা করা একটি বিশাল অগ্রগতি হবে। তাদের অর্থ সম্পূর্ণ ভিন্ন জিনিস।
জন

আমি সম্মতি জানাই - সে সাধারণত বেছে নেওয়া হয় কারণ এটি একটি ছোট অঞ্চল দেয়!
csgillespie

আরও কিছু তথ্যবহুল শিরোনাম হতে পারে?

3
কেবলমাত্র রেফারেন্সের জন্য, আমি এই বার চার্টগুলি এর আগে "ডায়নামাইট প্লটস" নামে ত্রুটিযুক্ত বারগুলির সাথে দেখেছি। এখানে বেশ কয়েকটি উল্লেখযোগ্য রেফারেন্স দিচ্ছেন ঠিক যেমন সুপারিশগুলি প্রত্যেকের কাছে বেশিরভাগই রয়েছে (ডট চার্ট) recommendations তাতসুকি কোয়ামা, ডায়নামাইট পোস্টার এবং ড্রামন্ড অ্যান্ড ভোলার, ২০১১ থেকে সাবধান
অ্যান্ডি ডাব্লু

1
পারলে ছবিটি আবার যুক্ত করুন। এবার চিত্র আপলোডার ব্যবহার করুন যাতে এটি কোনও মৃত লিঙ্কে পরিণত না হয়।
এন্ডোলিথ

উত্তর:


16

আপনার উত্তরগুলির জন্য সমস্ত ধন্যবাদ। সম্পূর্ণতার জন্য আমি ভেবেছিলাম আমার সাধারণত যা করা উচিত তা অন্তর্ভুক্ত করা উচিত। আমি প্রদত্ত পরামর্শগুলির সংমিশ্রণটি করতে চাই: বিন্দু, বক্সপ্লট (যখন এন বড় হয়), এবং সে (বা এসডি) ব্যাপ্তি।

( মডারেটর দ্বারা সরানো হয়েছে কারণ ছবিটি হোস্টিং সাইটটি আর সঠিকভাবে কাজ করবে না বলে মনে হয় ))

ডট প্লট থেকে এটি স্পষ্ট যে ডেটা "হ্যান্ডেল বার" প্লটগুলি পরামর্শ দেয় তার চেয়ে অনেক বেশি ছড়িয়ে পড়ে। আসলে, এ 3 এ নেতিবাচক মান আছে!


আমি এই উত্তরটি একটি সিডব্লিউ তৈরি করেছি যাতে আমি খ্যাতি অর্জন করি না


3
এটি একটি ভাল উত্তর। তদ্ব্যতীত, আমি পয়েন্টগুলিকে অনুভূমিকভাবে ঝাঁকুনির পরামর্শ দেব, যাতে তারা ওভারল্যাপ না করে, বিশেষত যদি এর চেয়ে গ্রুপে আপনার আরও পয়েন্ট থাকে। Ggplot2-এ, geom_jitter () এটি করবে।
হারলান

@ হারলান: আমি একমত যদিও আমার আরও অনেক পয়েন্ট থাকলে আমি সম্ভবত একটি বক্সপ্লট ব্যবহার করতাম।
csgillespie

1
আমি ছোট ডেটা সেটগুলির জন্য স্ক্যাটারপ্লটগুলিও পছন্দ করি (এনবি, আমি কিছুটা আলাদা প্লট বোঝাতে 'ডটপ্লট' শব্দটি ব্যবহার করি)। যাইহোক, এটি মূল্যবান জন্য, উপরের বারপ্লট এটির চেয়ে পরিষ্কার এবং সহজে পড়া সহজ। আমি নিশ্চিত না যে এটি আরও ভাল করে তোলে, তবে এটি উল্লেখ করার মতো।
গুং - মনিকা পুনরায়

@ হারলান: বিকল্পভাবে, বিন্দুগুলি স্বচ্ছ করুন যাতে একাধিক বিন্দু সজ্জিত হয়ে একটি গা dark় বিন্দু তৈরি করতে পারে?
এন্ডোলিথ

আপনার এই মৃত লিঙ্কটি প্রতিস্থাপনের জন্য মূল চিত্রটি আছে?
এন্ডোলিথ

10

ফ্র্যাঙ্ক হ্যারেলের (সবচেয়ে দুর্দান্ত) মূল ব্যবহারটি "তথ্য অ্যালার্জি" শিরোনামের ব্যবহারেরআর! গত মাসে এগুলির বিকল্পগুলি দেখানো হয়েছিল: বারগুলি সরবরাহকারী সামগ্রীর মাধ্যমে কাঁচা তথ্য গোপন না করে কাঁচা ডেটাও বিন্দু (বা পয়েন্ট) হিসাবে দেখানো হয়। "কেন ডেটা লুকো?" ফ্র্যাঙ্ক এর মন্তব্য ছিল।

আল্পা মিশ্রণ দেওয়া, এটি সবচেয়ে বুদ্ধিমান পরামর্শ হিসাবে স্ট্রাইক করে (এবং পুরো আলাপটি সবচেয়ে ভাল, এবং গুরুত্বপূর্ণ, ডাকে) পূর্ণ।


1
এটি কি ভিডিও হিসাবে পাওয়া যায়? ইহা শুনতে ভালো লাগছে.
হেনরিক

1
আমি মনে করি শব্দটি "শেষ পর্যন্ত হবে" - মূল নোট রেকর্ড হয়ে গেছে।
ডার্ক এডেলবুয়েটেল

1
আমি মনে করি জিপিপ্লট এ এটি সহজ, যথা had.co.nz/ggplot2/geom_jitter.html
মাইক

1
jitterপ্লেইন

2
কেবল প্রোটোকলের জন্য, ফ্র্যাঙ্কের আলাপ (ভিডিওতে) এখন অনলাইনে রয়েছে: r-bloggers.com/RUG/2010/08/user-2010-conferences-videos
তাল

7

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

অতিরিক্তভাবে, আমি স্পষ্টতই অ্যান্টি-বারগ্রাফ করছি; বার গ্রাফগুলি একই নান্দনিক গুণাবলী (এক্স-অক্ষের অবস্থান) এর জন্য দুটি ভেরিয়েবলের মানচিত্র দেয় যা বিভ্রান্তি সৃষ্টি করতে পারে। এক্স অ্যাক্সেসের সাথে একটি ভেরিয়েবলকে ম্যাপিং করে অপ্রয়োজনীয় নান্দনিক ম্যাপিং এড়ানোর জন্য আরও ভাল উপায় হ'ল উদাহরণস্বরূপ বিন্দু আকৃতি বা রঙ বা উভয়) vari

পরিশেষে, উপরের আপনার চক্রান্তে, আপনি কেবলমাত্র মানের উপরে ত্রুটি বারগুলি অন্তর্ভুক্ত করেন যা মানটির উপরে এবং নীচে বারের সাথে অনিশ্চয়তার অন্তরগুলির তুলনা করার ক্ষমতাকে বাধা দেয় ind

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

library(ggplot2)
a = data.frame(names,prevs,se)
a$let = substr(a$names,1,1)
a$num = substr(a$names,2,2)
ggplot(data = a)+
layer(
    geom = 'point'
    , mapping = aes(
        x = num
        , y = prevs
        , colour = let
        , shape = let
    )
)+
layer(
    geom = 'line'
    , mapping = aes(
        x = num
        , y = prevs
        , colour = let
        , linetype = let
        , group = let
    )    
)+
layer(
    geom = 'errorbar'
    , mapping = aes(
        x = num
        , ymin = prevs-se
        , ymax = prevs+se
        , colour = let
    )
    , alpha = .5
    , width = .5
)

এখানে চিত্র বর্ণনা লিখুন


1
আমার যুক্ত করা উচিত যে আমার "প্লট কেবলমাত্র ডেটা এবং অনিশ্চয়তা" সুপারিশটির যোগ্যতা অর্জন করতে হবে: যখন ভেরিয়েবলের প্লট করার অভিজ্ঞতা বা দক্ষতার অভিজ্ঞতা রয়েছে এমন দর্শকদের কাছে ডেটা উপস্থাপন করার সময় কেবলমাত্র ডেটা এবং অনিশ্চয়তার প্লট করুন। কোনও নিষ্পাপ দর্শকের কাছে ডেটা উপস্থাপন করার সময় এবং যখন শূন্য একটি অর্থবহ ডেটা পয়েন্ট হয় আমি প্রথমে শূন্যের উপাত্তটি দেখাতাম যাতে শ্রোতাগুলি স্কেলের দিকে আকৃষ্ট হয়, তারপরে কেবল ডেটা এবং অনিশ্চয়তা দেখাতে জুম বাড়ায়।
মাইক লরেন্স 15

যেহেতু আপনি আর কোড লেখার সমস্যায় পড়েছেন, আপনি কি চূড়ান্ত প্লটের একটি জেপিইগ চিত্র অন্তর্ভুক্ত করতে পারেন? আমি কেবল চিত্রটি img84.imageshack.us এ আপলোড করতে এবং এটির সাথে লিঙ্ক করা মোটামুটি সহজ। ওহ উত্তরের জন্য ধন্যবাদ :)
csgillespie

@ সিএসগিলিস্পি: সম্পন্ন হয়েছে।
মাইক লরেন্স

আমি খুঁজে পেয়েছি যে geom_ribbon()ত্রুটিটি নির্দেশ করে এই জাতীয় প্লট পড়া সহজ । আপনি যদি 1 এবং 2 এর মধ্যে অঞ্চলের জন্য আপাত প্রাক্কলন উত্পাদন করতে পছন্দ না করেন তবে কমপক্ষে ত্রুটি বারের প্রস্থ হ্রাস করুন।
জোফ্রल्डস

@ জোফ্রোল্ড: আমি ফিতাও পছন্দ করি, যদিও আমি তাদের ক্ষেত্রে সংরক্ষণ করতে চাইছি যেখানে এক্স-অক্ষের পরিবর্তনশীল এটি সত্যিই সংখ্যাসূচক; আমার "X- অক্ষর ভেরিয়েবল সংখ্যাসূচক না হওয়া পর্যন্ত লাইনগুলি আঁকবেন না" এর আমার সংস্করণটি আমি উপরের আমার উত্তরে লঙ্ঘন বলে মনে করি: ওপ
মাইক লরেন্স

2

আপনি কেন এই প্লট পছন্দ করেন না তা সম্পর্কে আমি আগ্রহী। আমি সব সময় তাদের ব্যবহার। প্রস্ফুটিত সুস্পষ্ট বক্তব্য না চেয়ে, তারা আপনাকে বিভিন্ন গোষ্ঠীর মাধ্যমের সাথে তুলনা করতে দেয় এবং তাদের 95% সিআই ওভারল্যাপ হয় (অর্থাত্, সত্যিকারের অর্থ আলাদা হওয়ার সম্ভাবনা রয়েছে) তা দেখতে দেয়।

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

আমার কাছে বেশ দুর্দান্ত লাগছে তবে আমি পাল্টা উদাহরণ শুনতে আগ্রহী। আমি মনে করি প্লটের ব্যবহারের সাথে অন্তর্নিহিত হ'ল ডেটাতে বিজার বিতরণ নেই যা গড় অবৈধ বা বিভ্রান্তিমূলক উপস্থাপন করে।


আমি কেন এই প্লটগুলি অপছন্দ করি তার একটি ছোট বিভাগ যুক্ত করেছি।
csgillespie

1
@Chris ব্যাখ্যা সম্পর্কে এই চেক আউট ওভারল্যাপিং সিআইএস pubs.amstat.org/doi/abs/10.1198/000313001317097960 এছাড়াও মূল প্রশ্ন এছাড়াও প্রায় অদলবদল করে দঃপূঃ বা SD ব্যবহার করার সময় তারা দুটি ভিন্ন জিনিস এর বিভ্রান্তি রয়েছে
tosonb1

অথবা, এই সাইটে বিশ্লেষণের জন্য, stats.stackexchange.com/questions/18215 দেখুন । @ tosonb1 আপনার লিঙ্কটির সময়সীমা শেষ। আপনি কাগজ একটি রেফারেন্স সরবরাহ করতে পারেন?
whuber

2

যদি ডেটা হার হয় : যা পরীক্ষার সংখ্যায় বিভাজিত সাফল্যের সংখ্যা, তবে খুব মার্জিত পদ্ধতি হ'ল ফানেল প্লট। উদাহরণস্বরূপ, http://qshc.bmj.com/content/11/4/390.2.ful দেখুন (লিঙ্কটির যদি সাবস্ক্রিপশন প্রয়োজন হয় তবে দুঃখিত - আমাকে জানাবেন এবং আমি অন্যটি খুঁজে পাব)।

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

হালনাগাদ:

এখানে একটি উদাহরণের একটি লিঙ্ক এখানে সাবস্ক্রিপশন লাগবে না (এবং সেগুলি কীভাবে ব্যবহার করা যেতে পারে তার একটি ভাল ব্যাখ্যা রয়েছে): http : //outs বোঝuncertainty.org/fertility

এগুলি স্ট্যান্ডার্ড ত্রুটির বিরুদ্ধে কেবল প্লট করেই অ-হারের ডেটার জন্য ব্যবহার করা যেতে পারে, তবে তারা তাদের কিছু সরলতা হারাতে পারে।

উইকিপিডিয়া নিবন্ধটি দুর্দান্ত নয়, কারণ এটি কেবল মেটা-বিশ্লেষণে তাদের ব্যবহার সম্পর্কে আলোচনা করে। আমি যুক্তি দেব যে তারা অন্যান্য অনেক ক্ষেত্রে কার্যকর হতে পারে।


ডেটা প্রয়োজনীয় হার নয়। এটা কিছু হতে পারে।
csgillespie

দুর্ভাগ্যক্রমে সাবস্ক্রিপশন লিঙ্ক।
ম্যাট পার্কার

... তবে ফানেল প্লটের উইকিপিডিয়া লিঙ্কটি এখানে: en.wikedia.org/wiki/Funnel_plot
ম্যাট পার্কার

2

আমি এখানে বক্সপ্লট ব্যবহার করব; পরিষ্কার, অর্থপূর্ণ, ননপ্রেমেট্রিক ... বা বিতরণ যদি বিতরণ আরও আকর্ষণীয় হয়।


2
আমি নিশ্চিত নই যে বক্সপ্লটস বা ভাইওপ্লটগুলি এমন একটি ছোট নমুনার আকারের সাথে উপযুক্ত হবে (এন = 6)
সিএসগিলিস্পি

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

6 পয়েন্ট সহ - স্ক্যাটার প্লট সম্ভবত সেরা (সম্ভবত গড়ের জন্য একটি লাল বিন্দু যুক্ত করে)
তাল গালিলি

2
আমি সাধারণত সুপারপোজড পয়েন্ট সহ বক্সপ্লট ব্যবহার করি, আমি এটি খুব "ভিজ্যুয়াল" পাই find এর পরিবর্তে ভায়োলিন প্লটগুলি আমার মতে বুঝতে কিছুটা শক্ত।
নিকো

1
@ সিএসগিলিসপি: বার এবং হুইস্কার প্লটগুলি আরও ভাল কী বোঝায়? তারা মূলত বক্সপ্লট হিসাবে একই তথ্য দেখিয়ে চলেছে (যেমন আপনি দেখিয়েছেন, হুইস্কারগুলি বিভিন্ন জিনিস উপস্থাপন করতে পারে), তারা কেবল একটি দিক দিয়ে ত্রুটি দেয়, যা মোটামুটি বিভ্রান্তিকর হতে পারে, যদি ক্ষুদ্র না হয় ... বাক্সপ্লটগুলির পক্ষে তর্ক না করা । তবে বিয়ানপ্লটস / বেহালা-প্লটগুলি এখনও অপেক্ষাকৃত কম নমুনা আকারের জন্য কাজ করা উচিত কারণ এটি কেবল একটি গাউসিয়ান ঘনত্বের অনুমান, যেমন আমি এখানে ব্যাখ্যা করেছি
naught101

1

উপরে থেকে সিএসজিলেসপির ভয়ঙ্কর কোডটি সরলকরণ:

qplot(
    data=a,
    x=num,
    y=prevs,
    colour=let,
    shape=let,
    group=let,
    ymin=prevs-se,
    ymax=prevs+se,
    position=position_dodge(width=0.25),
    geom=c("point", "line", "errorbar")
    )

0

আমি ত্রুটিবারে জিওমপয়েন্টটিঞ্জারকে প্রাধান্য দিয়েছি এবং মনে করি যে সহায়কগুলি না করে লাইনগুলি বিভ্রান্ত করছে। এখানে এমন সংস্করণ যা আমি @ জেমস বা @ এসসিগিলিস্পি সংস্করণ থেকে অনেক ক্লিনার পেয়েছি:

qplot(
 data=a,
 x=num,
 y=prevs,
 colour=let,
 ymin=prevs-se,
 ymax=prevs+se,
 position=position_dodge(width=0.25),
 geom=c("pointrange"), size=I(2)
 )
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.