Nou pachet R.

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe Blog Hoxo-Mși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)


Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.

1. Prezentare generală

În analiza datelor, atunci când o metrică diferă între două grupuri, dorim uneori să investigăm dacă un anumit subgrup conduce această diferență. De exemplu, atunci când este detectată o declin cheie cheie în comparație cu anul precedent, poate doriți să efectuați o analiză mai detaliată. În această analiză, vă puteți concentra pe gen printre atribute și puteți examina dacă declinul a avut loc în rândul bărbatului, femeii sau ambele. Cu toate acestea, acest tip de analiză este dificil atunci când metrica este o rată, deoarece amploarea contribuției fiecărui subgrup la rată nu poate fi calculată pur și simplu, spre deosebire de cazul valorilor de volum.

Pentru a aborda această problemă, propunem o abordare inspirată de povestea Nava de Teseu. Această abordare implică înlocuirea treptată a componentelor unui grup cu cele ale altuia, recalculând metrica la fiecare etapă. Modificarea metricii la fiecare etapă poate fi apoi interpretată ca contribuția fiecărui subgrup la diferența generală.

De exemplu, să presupunem că metrica a fost de 6,2% în 2024 și a scăzut la 5,2% în 2025. Din nou, ne concentrăm pe sex. Înlocuim datele masculine din setul de date 2024 cu datele masculine din 2025 și recalculăm metrica. Drept urmare, metrica ar scădea cu 0,8 puncte procentuale, ajungând la 5,4%. În acest caz, contribuția grupului masculin la modificarea metricii este de -0,8 puncte procentuale. În continuare, înlocuim datele feminine din 2024 cu cele din 2025. Setul de date constă în întregime din 2025 de date, iar metrica scade cu 0,2 puncte procentuale, ajungând la 5,2%. Astfel, contribuția grupului feminin este de -0,2 puncte procentuale.

Când sunt vizualizate, rezultatele apar după cum urmează:

Din acest complot, putem vedea că declinul metricului este condus în primul rând de grupul masculin. Numim această vizualizare „complotul Therus”.

TheSUSPLOT Pachetul este conceput pentru a facilita generarea de comploturi.

2. Instalare

Puteți instala TheSUSPLOT Pachet de la Cran.

install.packages("TheseusPlot")
remotes::install_github("hoxo-m/TheseusPlot")

3. Detalii

3.1 Pregătiți date

Pentru a crea comploturi.

Folosim datele de zbor din New York City 2013 de la NYCFLILS13 ca set de date demo. Aici, vom defini metrica ratei ca proporția de zboruri care au ajuns la timp. În decembrie 2013, rata de sosire la timp a scăzut substanțial comparativ cu noiembrie. Cercetăm cauza folosind un complot.

În primul rând, creăm un on_time Coloana din cadrul de date pentru a indica dacă fiecare zbor a sosit la timp. În continuare, extragem zborurile pentru noiembrie și decembrie în cadre de date separate pentru a forma două grupuri de comparație. Rata de sosire la timp a fost de 64% în noiembrie și a scăzut la 47% în decembrie.

library(dplyr)
library(nycflights13)

data <- flights |> 
  filter(!is.na(arr_delay)) |>
  mutate(on_time = arr_delay <= 0) |>  # Arrived on time
  left_join(airlines, by = "carrier") |>
  mutate(carrier = name) |>  # Convert carrier abbreviations to full names
  select(year, month, day, origin, dest, carrier, dep_delay, on_time)

data |> head()
#> # A tibble: 6 × 8
#>    year month   day origin dest  carrier                dep_delay on_time
#>                                  
#> 1  2013     1     1 EWR    IAH   United Air Lines Inc.          2 FALSE  
#> 2  2013     1     1 LGA    IAH   United Air Lines Inc.          4 FALSE  
#> 3  2013     1     1 JFK    MIA   American Airlines Inc.         2 FALSE  
#> 4  2013     1     1 JFK    BQN   JetBlue Airways               -1 TRUE   
#> 5  2013     1     1 LGA    ATL   Delta Air Lines Inc.          -6 TRUE   
#> 6  2013     1     1 EWR    ORD   United Air Lines Inc.         -4 FALSE

data_Nov <- data |> filter(month == 11)
data_Dec <- data |> filter(month == 12)

data_Nov |> summarise(on_time_rate = mean(on_time)) |> pull(on_time_rate)
#> (1) 0.6426161
data_Dec |> summarise(on_time_rate = mean(on_time)) |> pull(on_time_rate)
#> (1) 0.4672835

3.2 Bazele

Folosind cele două cadre de date pregătite, creăm mai întâi un ship obiect. ship Obiectul este o instanță a clasei R6 ShipOfTheseusconceput pentru a crea comploturi.

library(TheseusPlot)

ship <- create_ship(data_Nov, data_Dec, y = on_time, labels = c("November", "December"))

Puteți crea un complot. plot Metoda a ship obiect. De exemplu, pentru a crea un complot ThESEU pentru aeroportul de origine:

ship$plot(origin)

New York City are trei aeroporturi majore, iar Aeroportul Internațional Newark Liberty (EWR) a reprezentat cea mai mare pondere a scăderii ratei de sosire la timp.

Rețineți că numărul de zboruri la fiecare aeroport contează, deoarece un volum de zbor mai mare este de așteptat să aibă un impact mai mare. Pentru a face acest lucru clar, complotul Theus afișează dimensiunea datelor pentru fiecare grup din fiecare subgrup ca grafic de bare. Din aceasta, vedem că numărul de zboruri este similar pe aeroporturi, permițând compararea directă a contribuțiilor.

În rezumat, un complot ThESEU este format din două componente:

  • Un complot de cascadă care arată cât de mult a contribuit fiecare subgrup la modificarea metricii.
  • Un grafic de bare reprezentând dimensiunea eșantionului pentru fiecare grup din fiecare subgrup.

O ship Obiectul oferă, de asemenea, The table Metodă pentru a inspecta valorile exacte utilizate în complotul.

ship$table(origin)
#> # A tibble: 3 × 8
#>   origin contrib    n1    n2    x1    x2 rate1 rate2
#>             
#> 1 EWR    -0.0831  9603  9410  6251  3901 0.651 0.415
#> 2 JFK    -0.0565  8645  8923  5702  4332 0.660 0.485
#> 3 LGA    -0.0358  8723  8687  5379  4393 0.617 0.506

3.3 Răsfoirea complotului

Atunci când există multe subgrupuri, un complot ThESEU poate deveni greu de citit. În astfel de cazuri, puteți schimba axele X și Y pentru o mai bună vizualizare.

ship$plot_flip(carrier)

Când numărul de subgrupuri este mare, cei cu contribuții mici sunt grupate automat împreună. În mod implicit, acest lucru se întâmplă atunci când există mai mult de 10 subgrupuri, dar pragul poate fi ajustat cu n argument.

ship$plot_flip(carrier, n = 5)

Din acest complot, JetBlue Airways și United Air Lines par să aibă cele mai mari contribuții la scăderea ratei de sosire la timp.

3.4 Discretizarea automată a valorilor continue

Ploturile seus nu acceptă în mod direct variabilele continue. Dacă este furnizată o coloană continuă, aceasta este discretizată automat. De exemplu, putem crea un complot ThESEU pentru întârzieri de plecare.

ship$plot_flip(dep_delay)

În mod implicit, variabilele continue sunt discretizate astfel încât fiecare subgrup are dimensiuni de eșantion aproximativ egale, cu numărul de pubele setate la 10. Puteți modifica aceste setări trecând valoarea de retur continuous_config() la continuous argument.

ship$plot_flip(dep_delay, continuous = continuous_config(n = 5))

Acest rezultat arată că atât o scădere a plecărilor la timp, cât și o creștere a plecărilor întârziate au contribuit la scăderea ratei de sosire la timp.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.