load(here::here("/data/influence_network.RData"))
disruptions = read_csv(here::here("data/artist-disruptions_summarized.csv"))
## Parsed with column specification:
## cols(
## id = col_character(),
## name = col_character(),
## disruption_mean = col_double(),
## confidence = col_double()
## )
degrees = read_csv(here::here("data/artist-network-degrees.csv"))
## Parsed with column specification:
## cols(
## label = col_character(),
## name = col_character(),
## earliest_decade = col_double(),
## genre = col_character(),
## indegree = col_double(),
## outdegree = col_double()
## )
disruptions = disruptions %>%
left_join(degrees, by = c("id" = "label", "name"))
skimr::skim(disruptions)
## Skim summary statistics
## n obs: 14287
## n variables: 8
##
## ── Variable type:character ───
## variable missing complete n min max empty n_unique
## genre 137 14150 14287 3 14 0 20
## id 0 14287 14287 12 12 0 14287
## name 0 14287 14287 1 61 0 14129
##
## ── Variable type:numeric ─────
## variable missing complete n mean sd p0 p25
## confidence 0 14287 14287 0.8 0.12 0.49 0.75
## disruption_mean 0 14287 14287 0.17 0.19 -0.33 0.0015
## earliest_decade 1553 12734 14287 1971.14 22.09 1890 1960
## indegree 0 14287 14287 8.4 29.81 1 1
## outdegree 0 14287 14287 3.91 5.5 0 0
## p50 p75 p100 hist
## 0.75 0.88 1 ▁▁▁▂▇▁▂▃
## 0.24 0.25 0.98 ▁▁▇▇▂▁▁▁
## 1980 1990 2010 ▁▁▁▃▃▇▆▂
## 2 5 1492 ▇▁▁▁▁▁▁▁
## 1 7 36 ▇▂▁▁▁▁▁▁
disruptions %>%
filter(outdegree > 0) %>%
ggplot(aes(x = confidence, y = disruption_mean)) +
geom_point(size = .8, alpha = .4, color = "#F58A07")
disruptions %>%
filter(outdegree > 0) %>%
ggplot(aes(x = confidence)) +
geom_density(fill = "salmon")
disruptions %>%
filter(confidence > .9) %>%
ggplot(aes(x = disruption_mean)) +
stat_ecdf(geom = "line") +
labs(
x = "D",
y = "P(x < D)"
)
disruptions %>%
filter(confidence >= .9, outdegree > 0) %>%
ggplot(aes(x = disruption_mean)) +
geom_density(fill = "#F58A07", alpha = .6) +
labs(
x = "D",
y = "Density"
)
disruptions %>%
filter(confidence >= .9, outdegree > 3) %>%
summarise(
cor_d_i = cor(disruption_mean, indegree, method = "kendall"),
cor_d_o = cor(disruption_mean, outdegree, method = "kendall")
)
## # A tibble: 1 x 2
## cor_d_i cor_d_o
## <dbl> <dbl>
## 1 -0.000544 -0.198
disruptions %>%
filter(outdegree > 3) %>%
ggplot(aes(x = earliest_decade, y = confidence, group = earliest_decade)) +
geom_boxplot(coef = 1e3)
## Warning: Removed 25 rows containing missing values (stat_boxplot).
disruptions %>%
filter(confidence >= .9, outdegree >= 3) %>%
ggplot(aes(x = earliest_decade, y = disruption_mean, group = earliest_decade)) +
geom_boxplot(coef = 1e3) +
geom_jitter(width = .9, alpha = .4, color = "salmon", size = .7)
## Warning: Removed 12 rows containing missing values (stat_boxplot).
## Warning: Removed 12 rows containing missing values (geom_point).
disruptions %>%
mutate(abs_disruption = abs(disruption_mean)) %>%
filter(confidence >= .9,
indegree >= 3,
outdegree >= 3,
abs_disruption > .05,
earliest_decade >= 1950) %>%
ggplot(aes(
x = indegree,
y = outdegree,
size = abs_disruption,
color = disruption_mean
)) +
geom_point(alpha = .6) +
scale_x_log10() +
scale_y_log10() +
scale_color_gradient2(
low = "#122338",
mid = "#344065",
high = "#FF96F6",
midpoint = 0
)
With at least 3 in, 3 out connections
disruptions %>%
filter(confidence >= .9, outdegree >= 3, earliest_decade >= 1930) %>%
arrange(desc(disruption_mean)) %>%
slice(1:20) %>%
kable()
| id | name | disruption_mean | confidence | earliest_decade | genre | indegree | outdegree |
|---|---|---|---|---|---|---|---|
| mn0000150629 | Édith Piaf | 0.8165166 | 1.0000 | 1930 | Vocal | 53 | 3 |
| mn0000771297 | King Sunny Ade | 0.6912309 | 0.9992 | 1960 | International | 9 | 3 |
| mn0000793821 | Frankie Knuckles | 0.6520629 | 1.0000 | 1970 | Electronic | 30 | 3 |
| mn0001053567 | Mstislav Rostropovich | 0.5909613 | 0.9999 | 1950 | Classical | 13 | 3 |
| mn0000764636 | The Clark Sisters | 0.5904231 | 0.9999 | 1960 | Religious | 13 | 3 |
| mn0000458759 | Ofra Haza | 0.5735662 | 0.9688 | 1960 | International | 4 | 6 |
| mn0000183867 | John Cage | 0.5479167 | 1.0000 | 1930 | Classical | 168 | 3 |
| mn0001916129 | Rob Theakston | 0.5016684 | 0.9401 | 2000 | Electronic | 3 | 3 |
| mn0000806336 | Los Tigres del Norte | 0.5001526 | 0.9997 | 1970 | Latin | 15 | 7 |
| mn0000155174 | Alfred Brendel | 0.4052864 | 0.9999 | 1970 | Classical | 13 | 4 |
| mn0000591459 | Tiësto | 0.4012346 | 0.9991 | 1990 | Electronic | 10 | 4 |
| mn0000760240 | Bernard Herrmann | 0.3887194 | 1.0000 | 1930 | Stage & Screen | 25 | 4 |
| mn0000123363 | Converge | 0.3883421 | 1.0000 | 1990 | Pop/Rock | 33 | 6 |
| mn0000835749 | Scott Asheton | 0.3780321 | 0.9999 | 1960 | Pop/Rock | 18 | 7 |
| mn0000096752 | Boyracer | 0.3736559 | 0.9357 | 1990 | Pop/Rock | 3 | 4 |
| mn0000678260 | Wolfstone | 0.3716683 | 0.9348 | 1990 | Folk | 3 | 3 |
| mn0001052511 | Too $hort | 0.3503618 | 1.0000 | 1980 | Rap | 78 | 5 |
| mn0000296750 | K.M.D. | 0.3342457 | 0.9992 | 1990 | Rap | 9 | 4 |
| mn0000678769 | Darkthrone | 0.3247993 | 1.0000 | 1990 | Pop/Rock | 15 | 4 |
| mn0000416785 | Nino Rota | 0.3185582 | 0.9972 | 1950 | Stage & Screen | 7 | 4 |
Among those for which All Music has a detailed influence profile
disruptions %>%
filter(confidence >= .9, outdegree >= 10, earliest_decade >= 1930) %>%
arrange(desc(disruption_mean)) %>%
slice(1:20) %>%
kable()
| id | name | disruption_mean | confidence | earliest_decade | genre | indegree | outdegree |
|---|---|---|---|---|---|---|---|
| mn0000238115 | Sam Cooke | 0.2902225 | 1.0000 | 1950 | R&B | 196 | 10 |
| mn0000824022 | Little Richard | 0.2437560 | 1.0000 | 1950 | Pop/Rock | 118 | 14 |
| mn0000754032 | The Beatles | 0.2248293 | 1.0000 | 1960 | Pop/Rock | 1492 | 27 |
| mn0000924232 | Sun Ra | 0.1870232 | 1.0000 | 1940 | Jazz | 136 | 10 |
| mn0000079016 | Billie Holiday | 0.1563372 | 1.0000 | 1930 | Vocal | 204 | 13 |
| mn0000502371 | Missy Elliott | 0.1494450 | 1.0000 | 1990 | Rap | 58 | 10 |
| mn0000118544 | The Drifters | 0.1466490 | 0.9988 | 1950 | R&B | 55 | 10 |
| mn0000071514 | Bob Marley | 0.1389766 | 1.0000 | 1960 | Reggae | 195 | 16 |
| mn0000180228 | Elvis Presley | 0.1384287 | 1.0000 | 1950 | Pop/Rock | 299 | 25 |
| mn0000482334 | The Specials | 0.1373906 | 0.9991 | 1970 | Pop/Rock | 63 | 12 |
| mn0000066915 | Bob Dylan | 0.1358401 | 1.0000 | 1960 | Pop/Rock | 784 | 34 |
| mn0000840402 | The Velvet Underground | 0.1193616 | 1.0000 | 1960 | Pop/Rock | 507 | 12 |
| mn0000591104 | Mongo Santamaria | 0.1186894 | 0.9761 | 1950 | Latin | 21 | 15 |
| mn0000667669 | Daft Punk | 0.1043893 | 1.0000 | 1990 | Electronic | 130 | 15 |
| mn0000184502 | Ella Fitzgerald | 0.1033960 | 1.0000 | 1930 | Jazz | 146 | 17 |
| mn0000428126 | J Dilla | 0.0980411 | 1.0000 | 1980 | Rap | 69 | 12 |
| mn0000753094 | Son House | 0.0977889 | 0.9339 | 1930 | Blues | 42 | 10 |
| mn0000081083 | Bill Monroe | 0.0977678 | 0.9992 | 1940 | Country | 105 | 10 |
| mn0000642542 | Burt Bacharach | 0.0966426 | 1.0000 | 1950 | Pop/Rock | 119 | 10 |
| mn0000622805 | Stevie Wonder | 0.0965296 | 1.0000 | 1960 | R&B | 292 | 12 |
And the influentials:
disruptions %>%
filter(confidence >= .9,
outdegree >= 3,
indegree >= 200,
earliest_decade >= 1950) %>%
arrange(desc(disruption_mean)) %>%
slice(1:20) %>%
kable()
| id | name | disruption_mean | confidence | earliest_decade | genre | indegree | outdegree |
|---|---|---|---|---|---|---|---|
| mn0000754032 | The Beatles | 0.2248293 | 1.0000 | 1960 | Pop/Rock | 1492 | 27 |
| mn0000180228 | Elvis Presley | 0.1384287 | 1.0000 | 1950 | Pop/Rock | 299 | 25 |
| mn0000066915 | Bob Dylan | 0.1358401 | 1.0000 | 1960 | Pop/Rock | 784 | 34 |
| mn0000840402 | The Velvet Underground | 0.1193616 | 1.0000 | 1960 | Pop/Rock | 507 | 12 |
| mn0000622805 | Stevie Wonder | 0.0965296 | 1.0000 | 1960 | R&B | 292 | 12 |
| mn0000771438 | Black Sabbath | 0.0767394 | 1.0000 | 1960 | Pop/Rock | 368 | 14 |
| mn0000104714 | Kraftwerk | 0.0732059 | 1.0000 | 1970 | Electronic | 369 | 10 |
| mn0000316834 | Marvin Gaye | 0.0723940 | 1.0000 | 1950 | R&B | 240 | 19 |
| mn0000128099 | James Brown | 0.0705456 | 1.0000 | 1950 | R&B | 306 | 19 |
| mn0000120521 | Chuck Berry | 0.0509062 | 1.0000 | 1950 | Pop/Rock | 235 | 18 |
| mn0000270491 | Joni Mitchell | 0.0387401 | 1.0000 | 1960 | Pop/Rock | 297 | 20 |
| mn0000334193 | New Order | 0.0386445 | 1.0000 | 1980 | Pop/Rock | 250 | 17 |
| mn0000894465 | The Rolling Stones | 0.0332119 | 0.9997 | 1960 | Pop/Rock | 636 | 27 |
| mn0000816890 | Johnny Cash | 0.0301674 | 0.9682 | 1950 | Country | 234 | 21 |
| mn0000617196 | Brian Eno | 0.0224283 | 0.9999 | 1970 | Pop/Rock | 379 | 20 |
| mn0000467203 | Michael Jackson | 0.0212812 | 1.0000 | 1960 | R&B | 218 | 22 |
| mn0000645612 | Can | 0.0161475 | 0.9999 | 1960 | Pop/Rock | 237 | 12 |
| mn0000346336 | Pink Floyd | 0.0148196 | 0.9961 | 1960 | Pop/Rock | 355 | 20 |
| mn0000219203 | U2 | 0.0134884 | 1.0000 | 1970 | Pop/Rock | 223 | 21 |
| mn0000290812 | Joy Division | 0.0129287 | 0.9794 | 1970 | Pop/Rock | 259 | 15 |
With at least 3 in, 3 out connections.
These don’t seem very relevant to mention.
disruptions %>%
filter(confidence >= .9, outdegree >= 3, earliest_decade >= 1950) %>%
arrange((disruption_mean)) %>%
slice(1:20) %>%
kable()
| id | name | disruption_mean | confidence | earliest_decade | genre | indegree | outdegree |
|---|---|---|---|---|---|---|---|
| mn0000178654 | Pat Metheny Group | -0.2484710 | 0.9679 | 1970 | Jazz | 4 | 5 |
| mn0000519215 | Tommy LiPuma | -0.1600031 | 0.9699 | 1960 | Pop/Rock | 4 | 10 |
| mn0000639005 | George Carlin | -0.1175748 | 0.9743 | 1960 | Comedy/Spoken | 38 | 14 |
| mn0000077267 | Bill Hicks | -0.1132359 | 0.9954 | 1980 | Comedy/Spoken | 11 | 7 |
| mn0000077283 | Geto Boys | -0.0957698 | 1.0000 | 1980 | Rap | 115 | 9 |
| mn0000052151 | Augustus Pablo | -0.0743141 | 1.0000 | 1970 | Reggae | 18 | 10 |
| mn0000942529 | Buddy Guy | -0.0741033 | 1.0000 | 1950 | Blues | 62 | 16 |
| mn0000796661 | Edwin Hawkins | -0.0735451 | 0.9795 | 1960 | Religious | 11 | 6 |
| mn0000673114 | Marcus Miller | -0.0699319 | 0.9891 | 1970 | Jazz | 9 | 11 |
| mn0000382455 | Master P | -0.0695896 | 1.0000 | 1990 | Rap | 62 | 17 |
| mn0000061479 | The Five Satins | -0.0694257 | 0.9925 | 1950 | R&B | 6 | 5 |
| mn0000133832 | Clark Terry | -0.0683559 | 0.9862 | 1950 | Jazz | 17 | 5 |
| mn0000238245 | Denis Leary | -0.0659235 | 0.9655 | 1990 | Comedy/Spoken | 4 | 4 |
| mn0000617844 | Albert King | -0.0635637 | 1.0000 | 1950 | Blues | 88 | 11 |
| mn0000210991 | Destiny’s Child | -0.0569464 | 0.9991 | 1990 | R&B | 34 | 15 |
| mn0000066395 | The Congos | -0.0563830 | 0.9666 | 1970 | Reggae | 7 | 7 |
| mn0000631774 | The Byrds | -0.0555672 | 1.0000 | 1960 | Pop/Rock | 399 | 16 |
| mn0000100160 | The Kinks | -0.0555070 | 1.0000 | 1960 | Pop/Rock | 447 | 9 |
| mn0000032071 | Shirley Caesar | -0.0551617 | 0.9594 | 1950 | Religious | 15 | 15 |
| mn0000640338 | The Caravans | -0.0543817 | 0.9887 | 1950 | Religious | 9 | 15 |
Among those for which All Music has a detailed influence profile
disruptions %>%
filter(confidence >= .9, outdegree >= 10, earliest_decade >= 1950) %>%
arrange((disruption_mean)) %>%
slice(1:20) %>%
kable()
| id | name | disruption_mean | confidence | earliest_decade | genre | indegree | outdegree |
|---|---|---|---|---|---|---|---|
| mn0000519215 | Tommy LiPuma | -0.1600031 | 0.9699 | 1960 | Pop/Rock | 4 | 10 |
| mn0000639005 | George Carlin | -0.1175748 | 0.9743 | 1960 | Comedy/Spoken | 38 | 14 |
| mn0000052151 | Augustus Pablo | -0.0743141 | 1.0000 | 1970 | Reggae | 18 | 10 |
| mn0000942529 | Buddy Guy | -0.0741033 | 1.0000 | 1950 | Blues | 62 | 16 |
| mn0000673114 | Marcus Miller | -0.0699319 | 0.9891 | 1970 | Jazz | 9 | 11 |
| mn0000382455 | Master P | -0.0695896 | 1.0000 | 1990 | Rap | 62 | 17 |
| mn0000617844 | Albert King | -0.0635637 | 1.0000 | 1950 | Blues | 88 | 11 |
| mn0000210991 | Destiny’s Child | -0.0569464 | 0.9991 | 1990 | R&B | 34 | 15 |
| mn0000631774 | The Byrds | -0.0555672 | 1.0000 | 1960 | Pop/Rock | 399 | 16 |
| mn0000032071 | Shirley Caesar | -0.0551617 | 0.9594 | 1950 | Religious | 15 | 15 |
| mn0000640338 | The Caravans | -0.0543817 | 0.9887 | 1950 | Religious | 9 | 15 |
| mn0000641994 | Burning Spear | -0.0511519 | 0.9999 | 1970 | Reggae | 28 | 15 |
| mn0000577627 | The Who | -0.0501530 | 1.0000 | 1960 | Pop/Rock | 321 | 19 |
| mn0000190946 | Lefty Frizzell | -0.0498810 | 0.9858 | 1950 | Country | 50 | 15 |
| mn0000328014 | Peter Tosh | -0.0480335 | 1.0000 | 1960 | Reggae | 43 | 13 |
| mn0000936206 | Alabama | -0.0477514 | 0.9986 | 1970 | Country | 36 | 13 |
| mn0000028166 | Slim Harpo | -0.0429085 | 1.0000 | 1950 | Blues | 30 | 15 |
| mn0000019241 | Patty Loveless | -0.0389642 | 0.9997 | 1970 | Country | 19 | 14 |
| mn0000410219 | Merle Haggard | -0.0385216 | 0.9989 | 1960 | Country | 162 | 17 |
| mn0000085448 | The Heptones | -0.0377065 | 0.9983 | 1960 | Reggae | 12 | 17 |
And the influentials:
disruptions %>%
filter(confidence >= .9,
outdegree >= 3,
indegree >= 100,
earliest_decade >= 1950) %>%
arrange(disruption_mean) %>%
slice(1:20) %>%
kable()
| id | name | disruption_mean | confidence | earliest_decade | genre | indegree | outdegree |
|---|---|---|---|---|---|---|---|
| mn0000077283 | Geto Boys | -0.0957698 | 1.0000 | 1980 | Rap | 115 | 9 |
| mn0000631774 | The Byrds | -0.0555672 | 1.0000 | 1960 | Pop/Rock | 399 | 16 |
| mn0000100160 | The Kinks | -0.0555070 | 1.0000 | 1960 | Pop/Rock | 447 | 9 |
| mn0000577627 | The Who | -0.0501530 | 1.0000 | 1960 | Pop/Rock | 321 | 19 |
| mn0000410219 | Merle Haggard | -0.0385216 | 0.9989 | 1960 | Country | 162 | 17 |
| mn0000418740 | Sex Pistols | -0.0361565 | 1.0000 | 1970 | Pop/Rock | 279 | 24 |
| mn0000051992 | Big Star | -0.0357604 | 1.0000 | 1970 | Pop/Rock | 241 | 21 |
| mn0000022124 | Slayer | -0.0340211 | 0.9996 | 1980 | Pop/Rock | 204 | 16 |
| mn0000866786 | New York Dolls | -0.0335911 | 1.0000 | 1970 | Pop/Rock | 140 | 19 |
| mn0000852855 | Roxy Music | -0.0315301 | 1.0000 | 1970 | Pop/Rock | 179 | 17 |
| mn0000501407 | Motörhead | -0.0262632 | 1.0000 | 1970 | Pop/Rock | 126 | 15 |
| mn0000354105 | Jimi Hendrix | -0.0260625 | 1.0000 | 1960 | Pop/Rock | 422 | 35 |
| mn0000531986 | David Bowie | -0.0234814 | 1.0000 | 1960 | Pop/Rock | 535 | 25 |
| mn0000041874 | The Beach Boys | -0.0213193 | 0.9754 | 1960 | Pop/Rock | 511 | 15 |
| mn0000607448 | Al Green | -0.0208624 | 0.9690 | 1960 | R&B | 114 | 12 |
| mn0000084209 | Kiss | -0.0200609 | 1.0000 | 1970 | Pop/Rock | 159 | 23 |
| mn0000260206 | Van Halen | -0.0196030 | 0.9999 | 1970 | Pop/Rock | 108 | 23 |
| mn0000192382 | Deep Purple | -0.0192621 | 1.0000 | 1960 | Pop/Rock | 146 | 16 |
| mn0000033161 | Sly & the Family Stone | -0.0188913 | 1.0000 | 1960 | R&B | 139 | 14 |
| mn0000582313 | The Zombies | -0.0183663 | 1.0000 | 1960 | Pop/Rock | 148 | 20 |
visualize_influences = function(allmusic_id, network, node_info) {
create_focal_network(allmusic_id, network, node_info) %>%
ggraph(layout = "kk") +
# geom_node_point(aes(colour = type, shape = order), size = 4) +
geom_edge_link(aes(
start_cap = label_rect(node1.name),
end_cap = label_rect(node2.name)
),
arrow = arrow(length = unit(2, 'mm'))) +
geom_node_label(aes(label = name, color = type)) +
# geom_node_label(aes(label = name)) +
theme_void() +
NULL
}
# visualize_influences("mn0000022845", influences, nodes)
# create_focal_network("mn0000022845", influences, nodes) %>%
# activate()
#
# create_focal_network("mn0000764636", influences, nodes) %>%
# activate(nodes) %>%
# as_tibble() %>% View
#
# create_focal_network("mn0000754032", influences, nodes) %>%
# activate(nodes) %>%
# as_tibble() %>% View
#
# visualize_influences("mn0001052511", influences, nodes)
#
# create_focal_network("mn0000052151", influences, nodes) %>%
# activate(nodes) %>%
# as_tibble() %>% View