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/hu/3-Data-Visualization/R/10-visualization-distributions
leestott b83ba9ded4
🌐 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

Az eloszlások vizualizálása

 Sketchnote készítette: (@sketchthedocs)
Az eloszlások vizualizálása - Sketchnote készítette: @nitya

Az előző leckében érdekes tényeket tanultál a Minnesotában élő madarakról szóló adathalmazról. Hibás adatokat találtál a kiugró értékek vizualizálásával, és megvizsgáltad a madárkategóriák közötti különbségeket a maximális hosszúságuk alapján.

Előadás előtti kvíz

Fedezd fel a madarak adathalmazát

Egy másik módja az adatok mélyebb megértésének, ha megvizsgáljuk azok eloszlását, vagyis azt, hogy az adatok hogyan rendeződnek el egy tengely mentén. Például szeretnéd megtudni, hogy milyen az általános eloszlás ebben az adathalmazban a Minnesotában élő madarak maximális szárnyfesztávolsága vagy maximális testtömege alapján.

Fedezzünk fel néhány tényt az adatok eloszlásáról ebben az adathalmazban. Az R konzolban importáld a ggplot2 csomagot és az adatbázist. Távolítsd el a kiugró értékeket az adatbázisból, ahogy az előző témában is tetted.

library(ggplot2)

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

birds_filtered <- subset(birds, MaxWingspan < 500)
head(birds_filtered)
Név TudományosNév Kategória Rend Család Nemzetség TermészetvédelmiStátusz MinHossz MaxHossz MinTestTömeg MaxTestTömeg MinSzárnyfesztáv MaxSzárnyfesztáv
0 Feketehasú sípoló kacsa Dendrocygna autumnalis Kacsák/Ludak/Vízimadarak Anseriformes Anatidae Dendrocygna LC 47 56 652 1020 76 94
1 Fulvous sípoló kacsa Dendrocygna bicolor Kacsák/Ludak/Vízimadarak Anseriformes Anatidae Dendrocygna LC 45 53 712 1050 85 93
2 Hóliba Anser caerulescens Kacsák/Ludak/Vízimadarak Anseriformes Anatidae Anser LC 64 79 2050 4050 135 165
3 Ross-liba Anser rossii Kacsák/Ludak/Vízimadarak Anseriformes Anatidae Anser LC 57.3 64 1066 1567 113 116
4 Nagy fehérhomlokú lúd Anser albifrons Kacsák/Ludak/Vízimadarak Anseriformes Anatidae Anser LC 64 81 1930 3310 130 165

Általánosságban gyorsan megvizsgálhatod az adatok eloszlását egy szórásdiagram segítségével, ahogy az előző leckében is tettük:

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

max hosszúság rendenként

Ez egy áttekintést ad a madarak testhosszának eloszlásáról rendenként, de nem a legoptimálisabb módja az igazi eloszlások megjelenítésének. Ezt a feladatot általában hisztogramokkal oldják meg.

Hisztogramok használata

A ggplot2 kiváló eszközöket kínál az adatok eloszlásának vizualizálására hisztogramok segítségével. Ez a fajta diagram hasonlít az oszlopdiagramhoz, ahol az eloszlás a sávok emelkedésén és csökkenésén keresztül látható. Hisztogram készítéséhez numerikus adatokra van szükség. Hisztogram létrehozásához a diagram típusát 'hist'-ként kell megadni. Ez a diagram megmutatja az adathalmaz MaxTestTömeg értékeinek eloszlását az egész numerikus adat tartományban. Az adatok tömbjét kisebb bin-ekre osztva megjeleníti az értékek eloszlását:

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

eloszlás az egész adathalmazon

Ahogy látható, a több mint 400 madár többsége ebben az adathalmazban 2000 alatti MaxTestTömeg tartományba esik. Mélyebb betekintést nyerhetsz az adatokba, ha a bins paramétert magasabb számra, például 30-ra állítod:

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

eloszlás 30 bin-nel

Ez a diagram kicsit részletesebb módon mutatja az eloszlást. Egy kevésbé balra torzított diagramot hozhatsz létre, ha csak egy adott tartományon belüli adatokat választasz ki:

Szűrd az adatokat úgy, hogy csak azok a madarak maradjanak, amelyek testtömege 60 alatt van, és állítsd be a bins értékét 30-ra:

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

szűrt hisztogram

Próbálj ki más szűrőket és adatpontokat. Az adatok teljes eloszlásának megtekintéséhez távolítsd el a ['MaxBodyMass'] szűrőt, hogy címkézett eloszlásokat mutass.

A hisztogram további színezési és címkézési lehetőségeket is kínál:

Hozz létre egy 2D hisztogramot, hogy összehasonlítsd két eloszlás kapcsolatát. Hasonlítsuk össze a MaxBodyMass és a MaxLength értékeket. A ggplot2 beépített módot kínál a konvergencia megjelenítésére élénkebb színek használatával:

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

Úgy tűnik, hogy van egy várható korreláció a két elem között egy előre látható tengely mentén, egy különösen erős konvergencia ponttal:

2d diagram

A hisztogramok alapértelmezés szerint jól működnek numerikus adatokkal. Mi van akkor, ha szöveges adatok szerint szeretnéd látni az eloszlásokat?

Az adathalmaz eloszlásának vizsgálata szöveges adatok alapján

Ez az adathalmaz jó információkat tartalmaz a madárkategóriáról, nemzetségről, fajról és családról, valamint természetvédelmi státuszáról. Nézzük meg közelebbről ezt a természetvédelmi információt. Mi a madarak eloszlása természetvédelmi státuszuk szerint?

Az adathalmazban több rövidítés található a természetvédelmi státusz leírására. Ezek a rövidítések az IUCN Vörös Lista Kategóriákból származnak, amely egy szervezet, amely a fajok státuszát katalogizálja.

  • CR: Kritikus veszélyeztetett
  • EN: Veszélyeztetett
  • EX: Kihalt
  • LC: Legkevésbé aggasztó
  • NT: Közel fenyegetett
  • VU: Sebezhető

Ezek szöveges értékek, így transzformációra lesz szükséged a hisztogram létrehozásához. Használva a szűrtBirds adatkeretet, jelenítsd meg a természetvédelmi státuszt a Minimális Szárnyfesztáv mellett. Mit látsz?

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"))

szárnyfesztáv és természetvédelmi státusz

Úgy tűnik, hogy nincs jó korreláció a minimális szárnyfesztáv és a természetvédelmi státusz között. Tesztelj más elemeket az adathalmazból ezzel a módszerrel. Próbálj ki különböző szűrőket is. Találsz bármilyen korrelációt?

Sűrűségdiagramok

Észrevehetted, hogy az eddig vizsgált hisztogramok "lépcsőzetesek", és nem folynak simán ívben. Ha simább sűrűségi diagramot szeretnél, próbálj ki egy sűrűségdiagramot.

Most dolgozzunk sűrűségdiagramokkal!

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

sűrűségdiagram

Láthatod, hogy a diagram visszatükrözi a korábbi Minimális Szárnyfesztáv adatokat; csak egy kicsit simább. Ha szeretnéd újraalkotni a második diagramon látott MaxTestTömeg "szaggatott" vonalat, nagyon jól kisimíthatod ezt a módszert használva:

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

testtömeg sűrűség

Ha sima, de nem túl sima vonalat szeretnél, szerkeszd az adjust paramétert:

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

kevésbé sima testtömeg

Olvass utána az elérhető paramétereknek ehhez a diagramtípushoz, és kísérletezz!

Ez a diagramtípus gyönyörűen magyarázó vizualizációkat kínál. Például néhány kódsorral megmutathatod a madarak rendenkénti maximális testtömeg sűrűségét:

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

testtömeg rendenként

🚀 Kihívás

A hisztogramok kifinomultabb diagramtípusok, mint az alapvető szórásdiagramok, oszlopdiagramok vagy vonaldiagramok. Keress jó példákat az interneten a hisztogramok használatára. Hogyan használják őket, mit mutatnak be, és milyen területeken vagy kutatási területeken alkalmazzák őket?

Előadás utáni kvíz

Áttekintés és önálló tanulás

Ebben a leckében a ggplot2 csomagot használtad, és elkezdtél kifinomultabb diagramokat készíteni. Kutass a geom_density_2d() funkcióról, amely "folyamatos valószínűségi sűrűség görbét mutat egy vagy több dimenzióban". Olvasd el a dokumentációt, hogy megértsd, hogyan működik.

Feladat

Alkalmazd a tudásod


Felelősség kizárása:
Ez a dokumentum az AI fordítási szolgáltatás Co-op Translator segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget az ebből a fordításból eredő félreértésekért vagy téves értelmezésekért.