You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/fa/3-Data-Visualization/R/10-visualization-distributions
leestott cfd74ebbf1
🌐 Update translations via Co-op Translator
4 weeks ago
..
README.md 🌐 Update translations via Co-op Translator 4 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 4 weeks ago

README.md

تجسم توزیع‌ها

طرح دستی توسط (@sketchthedocs)
تجسم توزیع‌ها - طرح دستی توسط @nitya

در درس قبلی، شما برخی حقایق جالب درباره یک مجموعه داده مربوط به پرندگان مینه‌سوتا یاد گرفتید. شما با تجسم داده‌های پرت، برخی داده‌های اشتباه را پیدا کردید و تفاوت‌های بین دسته‌های پرندگان را بر اساس طول حداکثر آنها بررسی کردید.

آزمون پیش از درس

بررسی مجموعه داده پرندگان

یکی دیگر از روش‌های بررسی داده‌ها، نگاه کردن به توزیع آنها است، یا اینکه داده‌ها چگونه در طول یک محور سازماندهی شده‌اند. شاید، برای مثال، بخواهید درباره توزیع کلی طول بال حداکثر یا جرم بدن حداکثر پرندگان مینه‌سوتا در این مجموعه داده اطلاعات کسب کنید.

بیایید برخی حقایق درباره توزیع‌های داده در این مجموعه داده را کشف کنیم. در کنسول R خود، ggplot2 و پایگاه داده را وارد کنید. داده‌های پرت را از پایگاه داده حذف کنید، همانطور که در موضوع قبلی انجام دادید.

library(ggplot2)

birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM")

birds_filtered <- subset(birds, MaxWingspan < 500)
head(birds_filtered)
نام نام علمی دسته‌بندی راسته خانواده جنس وضعیت حفاظتی حداقل طول حداکثر طول حداقل جرم بدن حداکثر جرم بدن حداقل طول بال حداکثر طول بال
0 اردک سوت‌زن شکم‌سیاه Dendrocygna autumnalis اردک‌ها/غازها/آبزیان Anseriformes Anatidae Dendrocygna LC 47 56 652 1020 76 94
1 اردک سوت‌زن قهوه‌ای Dendrocygna bicolor اردک‌ها/غازها/آبزیان Anseriformes Anatidae Dendrocygna LC 45 53 712 1050 85 93
2 غاز برفی Anser caerulescens اردک‌ها/غازها/آبزیان Anseriformes Anatidae Anser LC 64 79 2050 4050 135 165
3 غاز راس Anser rossii اردک‌ها/غازها/آبزیان Anseriformes Anatidae Anser LC 57.3 64 1066 1567 113 116
4 غاز پیشانی‌سفید بزرگ Anser albifrons اردک‌ها/غازها/آبزیان Anseriformes Anatidae Anser LC 64 81 1930 3310 130 165

به طور کلی، می‌توانید به سرعت نحوه توزیع داده‌ها را با استفاده از نمودار پراکندگی مشاهده کنید، همانطور که در درس قبلی انجام دادید:

ggplot(data=birds_filtered, aes(x=Order, y=MaxLength,group=1)) +
  geom_point() +
  ggtitle("Max Length per order") + coord_flip()

طول حداکثر بر اساس راسته

این نمودار نمای کلی از توزیع طول بدن بر اساس راسته پرندگان ارائه می‌دهد، اما بهترین روش برای نمایش توزیع‌های واقعی نیست. این کار معمولاً با ایجاد یک هیستوگرام انجام می‌شود.

کار با هیستوگرام‌ها

ggplot2 روش‌های بسیار خوبی برای تجسم توزیع داده‌ها با استفاده از هیستوگرام‌ها ارائه می‌دهد. این نوع نمودار شبیه نمودار میله‌ای است که توزیع را می‌توان از طریق افزایش و کاهش میله‌ها مشاهده کرد. برای ساخت یک هیستوگرام، به داده‌های عددی نیاز دارید. برای ساخت هیستوگرام، می‌توانید نموداری با نوع 'hist' برای هیستوگرام رسم کنید. این نمودار توزیع جرم بدن حداکثر برای کل محدوده داده‌های عددی مجموعه داده را نشان می‌دهد. با تقسیم آرایه داده‌ها به بخش‌های کوچکتر، می‌تواند توزیع مقادیر داده‌ها را نمایش دهد:

ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + 
  geom_histogram(bins=10)+ylab('Frequency')

توزیع در کل مجموعه داده

همانطور که مشاهده می‌کنید، بیشتر از 400 پرنده در این مجموعه داده در محدوده زیر 2000 برای جرم بدن حداکثر قرار دارند. با تغییر پارامتر bins به عددی بالاتر، مانند 30، اطلاعات بیشتری کسب کنید:

ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=30)+ylab('Frequency')

توزیع با 30 بخش

این نمودار توزیع را به صورت کمی دقیق‌تر نشان می‌دهد. می‌توان نموداری کمتر متمایل به سمت چپ ایجاد کرد، با اطمینان از اینکه فقط داده‌های در یک محدوده خاص انتخاب شده‌اند:

داده‌های خود را فیلتر کنید تا فقط پرندگانی که جرم بدن آنها زیر 60 است دریافت کنید و 30 bins نمایش دهید:

birds_filtered_1 <- subset(birds_filtered, MaxBodyMass > 1 & MaxBodyMass < 60)
ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + 
  geom_histogram(bins=30)+ylab('Frequency')

هیستوگرام فیلتر شده

برخی فیلترها و نقاط داده دیگر را امتحان کنید. برای مشاهده توزیع کامل داده‌ها، فیلتر ['MaxBodyMass'] را حذف کنید تا توزیع‌های برچسب‌گذاری شده نمایش داده شوند.

هیستوگرام همچنین برخی بهبودهای رنگ و برچسب‌گذاری جذاب برای امتحان کردن ارائه می‌دهد:

یک هیستوگرام دو‌بعدی ایجاد کنید تا رابطه بین دو توزیع را مقایسه کنید. بیایید MaxBodyMass را با MaxLength مقایسه کنیم. ggplot2 یک روش داخلی برای نمایش همگرایی با استفاده از رنگ‌های روشن‌تر ارائه می‌دهد:

ggplot(data=birds_filtered_1, aes(x=MaxBodyMass, y=MaxLength) ) +
  geom_bin2d() +scale_fill_continuous(type = "viridis")

به نظر می‌رسد یک همبستگی مورد انتظار بین این دو عنصر در طول یک محور مورد انتظار وجود دارد، با یک نقطه همگرایی بسیار قوی:

نمودار دو‌بعدی

هیستوگرام‌ها به طور پیش‌فرض برای داده‌های عددی خوب کار می‌کنند. اگر نیاز داشته باشید توزیع‌ها را بر اساس داده‌های متنی مشاهده کنید چه باید کرد؟

بررسی مجموعه داده برای توزیع‌ها با استفاده از داده‌های متنی

این مجموعه داده همچنین اطلاعات خوبی درباره دسته‌بندی پرندگان و جنس، گونه، و خانواده آنها و همچنین وضعیت حفاظتی آنها ارائه می‌دهد. بیایید این اطلاعات حفاظتی را بررسی کنیم. توزیع پرندگان بر اساس وضعیت حفاظتی آنها چگونه است؟

در مجموعه داده، چندین مخفف برای توصیف وضعیت حفاظتی استفاده شده است. این مخفف‌ها از دسته‌بندی‌های فهرست قرمز IUCN گرفته شده‌اند، سازمانی که وضعیت گونه‌ها را فهرست‌بندی می‌کند.

  • CR: در معرض خطر بحرانی
  • EN: در معرض خطر
  • EX: منقرض شده
  • LC: کمترین نگرانی
  • NT: نزدیک به تهدید
  • VU: آسیب‌پذیر

این مقادیر متنی هستند، بنابراین باید یک تبدیل انجام دهید تا یک هیستوگرام ایجاد کنید. با استفاده از dataframe فیلتر شده پرندگان، وضعیت حفاظتی آنها را همراه با طول بال حداقل نمایش دهید. چه چیزی مشاهده می‌کنید؟

birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EX'] <- 'x1' 
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'CR'] <- 'x2'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EN'] <- 'x3'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'NT'] <- 'x4'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'VU'] <- 'x5'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'LC'] <- 'x6'

ggplot(data=birds_filtered_1, aes(x = MinWingspan, fill = ConservationStatus)) +
  geom_histogram(position = "identity", alpha = 0.4, bins = 20) +
  scale_fill_manual(name="Conservation Status",values=c("red","green","blue","pink"),labels=c("Endangered","Near Threathened","Vulnerable","Least Concern"))

طول بال و وضعیت حفاظتی

به نظر نمی‌رسد که همبستگی خوبی بین طول بال حداقل و وضعیت حفاظتی وجود داشته باشد. سایر عناصر مجموعه داده را با استفاده از این روش آزمایش کنید. می‌توانید فیلترهای مختلفی را نیز امتحان کنید. آیا همبستگی‌ای پیدا می‌کنید؟

نمودارهای چگالی

ممکن است متوجه شده باشید که هیستوگرام‌هایی که تاکنون مشاهده کرده‌ایم 'پله‌ای' هستند و به صورت یک قوس روان جریان ندارند. برای نمایش یک نمودار چگالی روان‌تر، می‌توانید یک نمودار چگالی امتحان کنید.

بیایید اکنون با نمودارهای چگالی کار کنیم!

ggplot(data = birds_filtered_1, aes(x = MinWingspan)) + 
  geom_density()

نمودار چگالی

می‌توانید ببینید که نمودار داده‌های طول بال حداقل قبلی را بازتاب می‌دهد؛ فقط کمی روان‌تر است. اگر بخواهید آن خط پله‌ای جرم بدن حداکثر در نمودار دوم که ساختید را بازبینی کنید، می‌توانید آن را با استفاده از این روش بسیار خوب روان کنید:

ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + 
  geom_density()

چگالی جرم بدن

اگر بخواهید یک خط روان، اما نه خیلی روان داشته باشید، پارامتر adjust را ویرایش کنید:

ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + 
  geom_density(adjust = 1/5)

چگالی جرم بدن کمتر روان

درباره پارامترهای موجود برای این نوع نمودار بخوانید و آزمایش کنید!

این نوع نمودار تجسم‌های توضیحی زیبایی ارائه می‌دهد. برای مثال، با چند خط کد می‌توانید چگالی جرم بدن حداکثر بر اساس راسته پرندگان را نمایش دهید:

ggplot(data=birds_filtered_1,aes(x = MaxBodyMass, fill = Order)) +
  geom_density(alpha=0.5)

چگالی جرم بدن بر اساس راسته

🚀 چالش

هیستوگرام‌ها نوعی نمودار پیچیده‌تر نسبت به نمودارهای پراکندگی ساده، نمودارهای میله‌ای یا نمودارهای خطی هستند. در اینترنت جستجو کنید تا نمونه‌های خوبی از استفاده از هیستوگرام‌ها پیدا کنید. آنها چگونه استفاده می‌شوند، چه چیزی را نشان می‌دهند، و در چه زمینه‌ها یا حوزه‌های تحقیقاتی تمایل به استفاده دارند؟

آزمون پس از درس

مرور و مطالعه شخصی

در این درس، شما از ggplot2 استفاده کردید و شروع به نمایش نمودارهای پیچیده‌تر کردید. درباره geom_density_2d() که یک "منحنی چگالی احتمال پیوسته در یک یا چند بعد" است تحقیق کنید. مستندات را بخوانید تا بفهمید چگونه کار می‌کند.

تکلیف

مهارت‌های خود را اعمال کنید

سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه انسانی حرفه‌ای استفاده کنید. ما هیچ مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.