Trabajo elaborado para la asignatura “Programación y manejo de datos en la era del Big Data” de la Universitat de València durante el curso 2021-2022. El repo del trabajo está aquí.
La página web de la asignatura y los trabajos de mis compañeros pueden verse aquí.
El 80% de la riqueza mundial está en manos del 1% de las personas, y en 2018 las 8 personas más ricas tenían tanta riqueza como la mitad más pobre de la humanidad1.
Este trabajo tiene como objetivo mostrar cómo, según la revista Forbes, el grupo de las personas más ricas del mundo ha cambiado a lo largo de los años. Responderá a las preguntas de quiénes se encuentran entre las personas más ricas del mundo, en qué países se encuentran los multimillonarios y cómo cambia su edad y su riqueza promedio con el tiempo. Para 2021, se examinará la participación de diferentes sectores empresariales en la lista de 100 multimillonarios y para 2019, la referencia al ranking de libertad económica de los países del mundo.
A lo largo de este análisis voy a utilizar los datos sacados de la pagina web Kaggle.
#Cargo los datos previamente desgargados de la pagina Kaggle
df <- read.csv("./datos/billionaires.csv", fileEncoding="UTF-8")
bil21 <- read.csv("./datos/Billionaire 2021.csv")
bilgeo <- read.csv("./datos/forbes_billionaires_geo.csv")
ecofree19 <- read.csv("./datos/economic_freedom_index2019_data.csv")
#chequeo tipo de datos en los datasets
str(df)
#> 'data.frame': 200 obs. of 7 variables:
#> $ year : int 2021 2021 2021 2021 2021 2021 2021 2021 2021 2021 ...
#> $ rank : int 1 2 3 4 5 6 7 8 9 10 ...
#> $ name : chr "Jeff Bezos" "Elon Musk" "Bernard Arnault & family" "Bill Gates" ...
#> $ net_worth : num 177 151 150 124 97 96 93 91.5 89 84.5 ...
#> $ age : int 57 49 72 65 36 90 76 48 47 63 ...
#> $ natinality : chr "United States" "United States" "France" "United States" ...
#> $ source_wealth: chr "Amazon" "Tesla, SpaceX" "LVMH" "Microsoft" ...
names(df)
#> [1] "year" "rank" "name" "net_worth"
#> [5] "age" "natinality" "source_wealth"
str(bil21)
#> 'data.frame': 2755 obs. of 7 variables:
#> $ Name : chr "Jeff Bezos" "Elon Musk" "Bernard Arnault & family" "Bill Gates" ...
#> $ NetWorth: chr "$177 B" "$151 B" "$150 B" "$124 B" ...
#> $ Country : chr "United States" "United States" "France" "United States" ...
#> $ Source : chr "Amazon" "Tesla, SpaceX" "LVMH" "Microsoft" ...
#> $ Rank : int 1 2 3 4 5 6 7 8 9 10 ...
#> $ Age : chr "57" "49" "72" "65" ...
#> $ Industry: chr "Technology" "Automotive" "Fashion & Retail" "Technology" ...
names(bil21)
#> [1] "Name" "NetWorth" "Country" "Source" "Rank" "Age" "Industry"
str(bilgeo)
#> 'data.frame': 2755 obs. of 13 variables:
#> $ Name : chr "Jeff Bezos" "Elon Musk" "Bernard Arnault & family" "Bill Gates" ...
#> $ NetWorth : num 177 151 150 124 97 96 93 91.5 89 84.5 ...
#> $ Country : chr "United States" "United States" "France" "United States" ...
#> $ Source : chr "Amazon" "Tesla, SpaceX" "LVMH" "Microsoft" ...
#> $ Rank : int 1 2 3 4 5 6 7 8 9 10 ...
#> $ Age : num 57 49 72 65 36 90 76 48 47 64 ...
#> $ Residence : chr "Seattle, Washington" "Austin, Texas" "Paris, France" "Medina, Washington" ...
#> $ Citizenship: chr "United States" "United States" "France" "United States" ...
#> $ Status : chr "In Relationship" "In Relationship" "Married" "Divorced" ...
#> $ Children : num 4 7 5 3 2 3 4 1 3 3 ...
#> $ Education : chr "Bachelor of Arts/Science, Princeton University" "Bachelor of Arts/Science, University of Pennsylvania" "Bachelor of Arts/Science, Ecole Polytechnique de Paris" "Drop Out, Harvard University" ...
#> $ Self_made : chr "True" "True" "False" "True" ...
#> $ geometry : chr "POINT (-122.3300624 47.6038321)" "POINT (-97.74369950000001 30.2711286)" "POINT (2.3514616 48.8566969)" "POINT (-122.2264453 47.620548)" ...
names(bilgeo)
#> [1] "Name" "NetWorth" "Country" "Source" "Rank"
#> [6] "Age" "Residence" "Citizenship" "Status" "Children"
#> [11] "Education" "Self_made" "geometry"
str(ecofree19)
#> 'data.frame': 186 obs. of 34 variables:
#> $ CountryID : int 1 2 3 4 5 6 7 8 9 10 ...
#> $ Country.Name : chr "Afghanistan" "Albania" "Algeria" "Angola" ...
#> $ WEBNAME : chr "Afghanistan" "Albania" "Algeria" "Angola" ...
#> $ Region : chr "Asia-Pacific" "Europe" "Middle East and North Africa" "Sub-Saharan Africa" ...
#> $ World.Rank : chr "152" "52" "171" "156" ...
#> $ Region.Rank : chr "39" "27" "14" "33" ...
#> $ X2019.Score : chr "51.5" "66.5" "46.2" "50.6" ...
#> $ Property.Rights : chr "19.6" "54.8" "31.6" "35.9" ...
#> $ Judical.Effectiveness : chr "29.6" "30.6" "36.2" "26.6" ...
#> $ Government.Integrity : chr "25.2" "40.4" "28.9" "20.5" ...
#> $ Tax.Burden : chr "91.7" "86.3" "76.4" "83.9" ...
#> $ Gov.t.Spending : chr "80.3" "73.9" "48.7" "80.7" ...
#> $ Fiscal.Health : chr "99.3" "80.6" "18.7" "58.2" ...
#> $ Business.Freedom : chr "49.2" "69.3" "61.6" "55.7" ...
#> $ Labor.Freedom : chr "60.4" "52.7" "49.9" "58.8" ...
#> $ Monetary.Freedom : chr "76.7" "81.5" "74.9" "55.4" ...
#> $ Trade.Freedom : chr "66.0" "87.8" "67.4" "61.2" ...
#> $ Investment.Freedom : chr "10" "70" "30" "30" ...
#> $ Financial.Freedom : chr "10" "70" "30" "40" ...
#> $ Tariff.Rate.... : chr "7.0" "1.1" "8.8" "9.4" ...
#> $ Income.Tax.Rate.... : chr "20.0" "23.0" "35.0" "17.0" ...
#> $ Corporate.Tax.Rate.... : chr "20.0" "15.0" "23.0" "30.0" ...
#> $ Tax.Burden...of.GDP : chr "5.0" "24.9" "24.5" "20.6" ...
#> $ Gov.t.Expenditure...of.GDP : chr "25.6" "29.5" "41.4" "25.3" ...
#> $ Country : chr "Afghanistan" "Albania" "Algeria" "Angola" ...
#> $ Population..Millions. : chr "35.5" "2.9" "41.5" "28.2" ...
#> $ GDP..Billions..PPP. : chr "$69.6 " "$36.0 " "$632.9 " "$190.3 " ...
#> $ GDP.Growth.Rate.... : chr "2.5" "3.9" "2.0" "0.7" ...
#> $ X5.Year.GDP.Growth.Rate....: chr "2.9" "2.5" "3.1" "2.9" ...
#> $ GDP.per.Capita..PPP. : chr "$1,958" "$12,507" "$15,237" "$6,753" ...
#> $ Unemployment.... : chr "8.8" "13.9" "10.0" "8.2" ...
#> $ Inflation.... : chr "5.0" "2.0" "5.6" "31.7" ...
#> $ FDI.Inflow..Millions. : chr "53.9" "1,119.1" "1,203.0" "-2,254.5" ...
#> $ Public.Debt....of.GDP. : chr "7.3" "71.2" "25.8" "65.3" ...
names(ecofree19)
#> [1] "CountryID" "Country.Name"
#> [3] "WEBNAME" "Region"
#> [5] "World.Rank" "Region.Rank"
#> [7] "X2019.Score" "Property.Rights"
#> [9] "Judical.Effectiveness" "Government.Integrity"
#> [11] "Tax.Burden" "Gov.t.Spending"
#> [13] "Fiscal.Health" "Business.Freedom"
#> [15] "Labor.Freedom" "Monetary.Freedom"
#> [17] "Trade.Freedom" "Investment.Freedom"
#> [19] "Financial.Freedom" "Tariff.Rate...."
#> [21] "Income.Tax.Rate...." "Corporate.Tax.Rate...."
#> [23] "Tax.Burden...of.GDP" "Gov.t.Expenditure...of.GDP"
#> [25] "Country" "Population..Millions."
#> [27] "GDP..Billions..PPP." "GDP.Growth.Rate...."
#> [29] "X5.Year.GDP.Growth.Rate...." "GDP.per.Capita..PPP."
#> [31] "Unemployment...." "Inflation...."
#> [33] "FDI.Inflow..Millions." "Public.Debt....of.GDP."
#cambio el nombre de la columna en df
df <- df %>% rename(nationality = natinality)
#Conjunto dos datasets de 2021
bil21 <- bil21 %>%
select(Name, Industry)
bil21 <- left_join(bilgeo, bil21, by = "Name")
rm(bilgeo)
#ajusto el dataset a las necesidades del analisis
ecofree19 <- ecofree19 %>%
select(Country = Country.Name, World.Rank, Region) %>%
mutate(World_rank = as.integer(World.Rank), .before = Region) %>%
select(!World.Rank)
Al principio quiero examinar la situación entre los multimillonarios en 2021. Voy a comprobar quién fue más rico en el mundo según Forbes en este año, en que industrias operaban los multimillonarios y en cuales países la concentración del patrimonio fue más grande. Luego iré a los datos personales como edad o número de hijos que tienen.
En la siguiente tabla, podemos ver quién ocupó los 5 primeros lugares entre las personas más ricas del mundo según el ranking del Forbes, de qué países provienen las personas seleccionadas y cuál es la fuente de su riqueza.
#tabla
df1 <- df %>%
filter(year == 2021, rank <= 5)
photo <- c("https://besthqwallpapers.com/Uploads/12-2-2021/154136/thumb2-jeff-bezos-2021-american-entrepreneur-guys-american-celebrity.jpg", "https://s1.cdn.autoevolution.com/images/news/tesla-patents-are-now-free-for-all-company-wont-sue-if-used-in-good-faith-132103_1.jpg",
"https://robbreport.com/wp-content/uploads/2020/01/shutterstock_1106081120-digi.jpg",
"https://miro.medium.com/max/900/1*NIcdbmI2XEeF4ZgANs-nTw.jpeg", "https://cdn.images.express.co.uk/img/dynamic/59/590x/625516_1.jpg")
df1_con_fotos <- df1 %>% select(!year & !age) %>% add_column(photo) %>%
mutate(nationality = case_when(
str_detect(nationality,'France') ~ "https://raw.githubusercontent.com/BjnNowak/TdF/main/fr.png",
str_detect(nationality,'United States') ~ "https://raw.githubusercontent.com/BjnNowak/TdF/main/us.png"
))
df1_con_fotos %>% gt() %>%
gt::text_transform(locations = cells_body(columns = c(photo)),
fn = function(x) {gt::web_image(x, height = 80)}) %>%
gtExtras::gt_img_rows(columns = nationality, height = 40) %>%
gtExtras::gt_theme_nytimes() %>%
cols_label(
net_worth = md("Net worth<br>(billion $)"),
source_wealth = "source wealth") %>%
tab_style(
style = list(
cell_text(font=google_font(
name = "Roboto Condensed"
), align = "center",v_align = "middle")),
locations = cells_column_labels(
columns = c(
rank, name, net_worth, nationality, source_wealth, photo)
))
rank | name | Net worth (billion $) |
nationality | source wealth | photo |
---|---|---|---|---|---|
1 | Jeff Bezos | 177 | Amazon | ||
2 | Elon Musk | 151 | Tesla, SpaceX | ||
3 | Bernard Arnault & family | 150 | LVMH | ||
4 | Bill Gates | 124 | Microsoft | ||
5 | Mark Zuckerberg | 97 |
En el siguiente paso descubriremos qué industrias generaron riqueza para los ricos en el ranking.
# world cloud industry
D_words <- bil21 %>%
select(Industry) %>%
group_by(Industry) %>%
count(name = "Freq") %>%
arrange(desc(Freq)) %>%
ungroup()
Cl <- D_words
hwordcloud(text = Cl$Industry, size = Cl$Freq,
width = "100%", height = "320px",
theme = "darkblue")
Como podemos observar, el mayor número de empresas se encontraba en la industria financiera y de inversiones (371 empresas), seguida de la tecnología (366) y la manufactura (333 empresas). Los siguientes resultados se situaban por debajo de las 300 empresas (sanidad, inmobiliaria, alimentación y bebidas).
Ahora se mostrará en el mapa la concentración de riqueza en 2021.
#mapa concentración del patrimonio en 2021
data(World)
world <- World ; rm(World)
world1 <- world %>%
select(Country = name, geometry)
mapa1 <- bil21 %>%
select(NetWorth, Country) %>%
group_by(Country) %>%
mutate (suma = sum(NetWorth)) %>%
distinct(Country, suma)
mapa2 <- left_join(world1, mapa1, by = "Country")
ggplot() + geom_sf(data = mapa2, aes(fill = suma)) +
scale_fill_continuous_sequential(palette = "Red-blue", name = "Miles de milliones de dólares")+
labs(
title = "Concentración del patrimonio en 2021"
) + theme_void() +
theme(legend.position = "bottom", legend.key.width = unit(1, "cm"))
Definitivamente, la mayor cantidad del patrimonio de las personas con una riqueza estimada en más de un millón de dólares se encuentra en los Estados Unidos, seguida de China. Al mismo tiempo, las personas con una riqueza igual o superior a mil millones de dólares se encuentran en prácticamente todos los continentes.
En esta parte, voy a analizar disponibles datos personales de personas del ranking Forbes. Primero comenzaré mostrando una tabla con los resultados extremos y medios de edad, patrimonio y número de hijos para el año 2021.
#edad
age <- bil21 %>%
select(Age) %>%
drop_na()
min <- age %>%
slice_min(Age, n = 1) %>%
rename(Min = Age)
max <- age %>%
slice_max(Age, n = 1) %>%
rename(Max = Age)
mean <- age %>%
summarise(Mean = mean(Age, na.rm = TRUE))
#patrimonio
Net <- bil21 %>%
select(NetWorth)
Nmin <- Net %>%
slice_min(NetWorth, n = 1) %>%
rename(Min = NetWorth)
Nmax <- Net %>%
slice_max(NetWorth, n = 1) %>%
rename(Max = NetWorth)
Nmean <- Net %>%
summarise(Mean = mean(NetWorth, na.rm = TRUE))
#hijos
Child <- bil21 %>%
select(Children) %>%
drop_na()
Cmin <- Child %>%
slice_min(Children, n = 1) %>%
rename(Min = Children)
Cmax <- Child %>%
slice_max(Children, n = 1) %>%
rename(Max = Children)
Cmean <- Child %>%
summarise(Mean = mean(Children, na.rm = TRUE))
# Tabla data
TablaMean <- mean %>%
rbind(Nmean, Cmean)
TablaMax <- max %>%
rbind(Nmax, Cmax)
TablaMin <- min %>%
rbind(1, 0)
Tabla21 <- bind_cols(" " = rbind("Age", "Net Worth (billion $)", "Children")) %>%
bind_cols(TablaMin, TablaMean, TablaMax)
rm(min, max, mean, Nmin, Nmax, Nmean, Cmin, Cmax, Cmean, TablaMin, TablaMax, TablaMean, Child)
# Tabla
kbl(Tabla21) %>%
kable_material_dark()
Min | Mean | Max | |
---|---|---|---|
Age | 18 | 63.265175 | 99 |
Net Worth (billion $) | 1 | 4.744730 | 177 |
Children | 0 | 2.976834 | 23 |
Generalmente, el multimillonario más joven en 2021 tiene 18 años, y el multimillonario más mayor tiene 99 años. La edad promedio en la lista es 63. Lo que muestra que un gran grupo de las 2761 personas que están en la lista son personas de mediana edad y mayores.
Para aparecer en la lista, el patrimonio neto debe ser de 1 mil millones de dólares, por lo tanto, este es el mínimo. El patrimonio neto promedio fue casi 5 mil millones, y el número uno en el ranking de los multimillonarios es una riqueza de 177 mil millones de dólares.
Podemos afirmar que los multimillonarios tienen un promedio de tres hijos y el poseedor del récord en la lista tiene hasta 23 hijos y este es Roman Avdeev de Russia.
En el gráfico de barras se mostrará la distribución de edad de los multimillonarios.
age <- bil21 %>%
select(Age) %>%
drop_na()
age_mean <- bil21 %>%
select(Name, Rank, Age, NetWorth, Children, Education) %>%
summarise(Mean = mean(Age, na.rm = TRUE), Des = sd(Age, na.rm = TRUE))
ggplot(age, aes(Age)) +
geom_histogram(binwidth = 1, aes(y=..density..), color="darkgrey", fill = "steelblue", alpha = 0.5)+
geom_density( color="purple", size = 1) +
stat_function(fun = dnorm, colour = "red", size = 1, args = list(mean = age_mean$Mean, sd = age_mean$Des)) +
xlim(c(15, 100)) +
theme_minimal()+
theme(axis.text.x=element_text(colour = "grey20", size = 8), axis.text.y=element_text(colour = "grey20", size = 8)) +
annotate(geom = "text", x = 63.26, y = 0.033, label = "mean age = 63", size = 4.5, color = "darkblue") +
#annotate(geom = "point", x = 63.26, y = 0.0297, colour = "firebrick3", size = 5, shape = 8) %>%
annotate("segment", x = 63.26, xend = 63.26, y = 0.0297, yend = 0.0319, colour = "darkblue", arrow = arrow(length = unit(2, "mm")))
Podemos notar que la mayor densidad de personas se encuentra en el rango de edad de 50 a 75 años. La edad promedio de las personas en la lista de Forbes es de aproximadamente 63 años. La densidad más alta está por delante del punto medio, como lo confirma la línea de desviación típica, en púrpura.
age_min <- bil21 %>%
select(Name, Age, Rank, NetWorth, Country, Children, Education) %>%
slice_min(Age, n=5)
ggplot(age_min, aes(x=Name, y=Age, label = Country)) +
geom_segment(aes(x=Name, xend=Name, y=0, yend=Age), color="orange", size = 1, linetype="dotdash") +
geom_point(color="red", size=8, alpha=0.6) +
geom_text(data = age_min, aes(label = Age), color = "yellow", size = 4) +
coord_flip() +
theme_light() +
geom_label_repel()
El más joven de la lista es Kevin DavidLehmann, de 18 años, de Alemania. Él es la única persona en la lista de menores de 20 años. Este es un logro notable, a pesar de que la fortuna es patrimonio familiar y no proviene de su propio negocio. Entre las 5 personas más jóvenes también hay hermanos de Noruega y un ciudadano chino de 24 años. La lista la cierra Austin Russell, de 26 años, de Estados Unidos, que es el único que es el creador de su propia fortuna. Como dice wikipedia: “Su empresa Luminar Technologies se especializa en tecnologías lidar y percepción de máquinas, utilizadas principalmente en automóviles autónomos” 2.
# age vs networth
AgeNet <- bil21 %>%
select(Age, NetWorth) %>%
drop_na()
ggplot(AgeNet, aes(Age, NetWorth)) +
geom_point() +
geom_jitter(color = "skyblue", alpha = 0.2) +
coord_flip() +
theme_minimal() +
labs(
title = "Relación entre edad y patrimonio neto",
y = "Net worth"
)
Como se puede ver en el gráfico, la mayor cantidad de personas tiene activos que no superan los 25 mil millones dólares, y entre ellos, como vimos en el gráfico anterior, el grupo de edad más grande son las personas entre 50 y 75 años. Al mismo tiempo, es difícil percibir la relación entre edad y riqueza, aunque las personas con el patrimonio neto más alto no son extremadamente jóvenes (menos de 35) o extremadamente mayores (más de 90). Entonces, parece que la construcción de una fortuna no depende de la edad, sino de la capacidad empresarial o del patrimonio familiar.
age_max <- bil21 %>%
select(Name, Age, Rank, NetWorth, Country, Children, Education) %>%
slice_max(Age, n=5)
ggplot(age_max, aes(x=Name, y=Age)) +
geom_segment(aes(x=Name, xend=Name, y=0, yend=Age), color="skyblue") +
geom_point(color="darkblue", size=7, alpha=0.6) +
geom_segment(aes(x=Name, xend=Name, y=0, yend=Children), color="skyblue") +
geom_point(data = age_max, aes(Name, Children, color="pink", size=7, alpha=0.6)) +
geom_text(data = age_max, aes(label = Age), color = "lightpink", size = 4) +
theme_light() +
coord_flip() +
labs(
title = "Número de hijos y edad",
subtitle = "Las 6 personas más ancianas en el ranking en 2021",
y = "Number of children and age"
) +
theme(legend.position = "none") +
annotate(geom = "text", x = "Robert Kuok", y = 8, label = "8", size = 4, color = "darkblue") +
annotate(geom = "text", x = "Masatoshi Ito", y = 3, label = "3", size = 4, color = "darkblue") +
annotate(geom = "text", x = "George Joseph", y = 5, label = "5", size = 4, color = "darkblue") +
annotate(geom = "text", x = "David Murdock", y = 3, label = "3", size = 4, color = "darkblue") +
annotate(geom = "text", x = "Charles Munger", y = 8, label = "8", size = 4, color = "darkblue") +
annotate(geom = "text", x = "Masatoshi Ito", y = 49, label = "Número de hijos", size = 4, color = "darkblue") +
annotate(geom = "curve", x = "Masatoshi Ito", y = 33, xend = "Robert Kuok", yend = 10,
curvature = .3, color = "skyblue", arrow = arrow(length = unit(2, "mm"))) +
annotate(geom = "curve", x = "Masatoshi Ito", y = 33, xend = "Masatoshi Ito", yend = 5,
curvature = .3, color = "skyblue", arrow = arrow(length = unit(2, "mm"))) +
annotate(geom = "curve", x = "Masatoshi Ito", y = 33, xend = "George Joseph", yend = 7,
curvature = .3, color = "skyblue", arrow = arrow(length = unit(2, "mm")))+
annotate(geom = "curve", x = "Masatoshi Ito", y = 33, xend = "David Murdock", yend = 5,
curvature = .3, color = "skyblue", arrow = arrow(length = unit(2, "mm"))) +
annotate(geom = "curve", x = "Masatoshi Ito", y = 33, xend = "Charles Munger", yend = 10,
curvature = .2, color = "skyblue", arrow = arrow(length = unit(2, "mm"))) +
annotate(geom = "text", x = "David Murdock", y = 56, label = "Edad", size = 4, color = "darkblue") +
annotate(geom = "curve", x = "David Murdock", y = 63, xend = "Robert Kuok", yend = 94,
curvature = .3, color = "skyblue", arrow = arrow(length = unit(2, "mm"))) +
annotate(geom = "curve", x = "David Murdock", y = 63, xend = "Masatoshi Ito", yend = 94,
curvature = .3, color = "skyblue", arrow = arrow(length = unit(2, "mm"))) +
annotate(geom = "curve", x = "David Murdock", y = 63, xend = "George Joseph", yend = 95,
curvature = .3, color = "skyblue", arrow = arrow(length = unit(2, "mm")))+
annotate(geom = "curve", x = "David Murdock", y = 63, xend = "David Murdock", yend = 95,
curvature = .3, color = "skyblue", arrow = arrow(length = unit(2, "mm"))) +
annotate(geom = "curve", x = "David Murdock", y = 63, xend = "Charles Munger", yend = 94,
curvature = .2, color = "skyblue", arrow = arrow(length = unit(2, "mm"))) +
annotate(geom = "curve", x = "David Murdock", y = 63, xend = "Ana Maria Brescia Cafferata", yend = 94,
curvature = .2, color = "skyblue", arrow = arrow(length = unit(2, "mm")))
El gráfico muestra a las personas que ocupan los primeros 5 lugares entre las personas más ancianos de la lista. De hecho, el gráfico muestra los primeros 3 lugares con 6 personas, ya que el tercer lugar son las personas del mismo año, a la impresionante edad de 97 años. Los datos disponibles indican que 5 de los 6 multimillonarios más ancianos son hombres y tienen al menos tres hijos.
Al tener una fortuna muy grande, es extremadamente importante tener herederos. Por lo tanto, muy a menudo las personas más ricas del mundo tienen muchos descendientes a quienes pueden transmitir su riqueza. Ahora comprobaremos quiénes son las personas con el mayor número de hijos, cuántos años tienen, de qué países son, cuánto patrimonio tienen y qué puesto ocupan en la lista de Forbes.
Rec <- bil21 %>%
select(Name, Children, Age, Country, NetWorth, Rank, Source) %>%
slice_max(Children, n = 5)
kbl(Rec, align = "c") %>%
kable_minimal() %>%
column_spec(2, bold = T, color = "lightcoral") %>%
column_spec(1, bold = T) %>%
kable_styling(fixed_thead = list(enabled = T,
background = "lightcoral"))
Name | Children | Age | Country | NetWorth | Rank | Source |
---|---|---|---|---|---|---|
Roman Avdeev | 23 | 53 | Russia | 1.8 | 1750 | banking, development |
Suhail Bahwan | 15 | 82 | Oman | 2.3 | 1362 | diversified |
Frank VanderSloot | 14 | 72 | United States | 3.4 | 891 | nutrition, wellness products |
David Siegel | 13 | 86 | United States | 6.5 | 404 | hedge funds |
Farris Wilks | 11 | 69 | United States | 1.3 | 2263 | natural gas |
Dan Gertler | 11 | 47 | Israel | 1.2 | 2378 | mining |
Como muestran los datos de la tabla, el poseedor del récord es Roman Avdeev de Rusia, que tiene 23 hijos. Los siguientes lugares en el ranking pertenecen a los ciudadanos de Omán, Estados Unidos e Israel. Todas las personas de la lista son hombres y cada uno tiene más de 10 descendientes.
NetChild <- bil21 %>%
select(Name, NetWorth, Children) %>%
drop_na()
ggplot(NetChild, aes(NetWorth, Children)) +
geom_point(color = "lightpink3", size = 2) +
geom_point(shape = 1, color = "pink4") +
geom_jitter(color = "mistyrose1", alpha = 0.2) +
theme_minimal() +
labs(
title = "Relación entre patrimonio neto y numero de hijos",
x = "Number of children",
y = "Net worth"
) +
annotate(geom = "text", x = 23, y = 24, label = "23 hijos, 1.8 mil millones $", color = "pink4") +
annotate(geom = "text", x = 171, y = 8, angle=90, label = " 177 mil millones $, 4 hijos", color = "pink4")
El gráfico muestra que el grupo más grande no tiene más de 5 hijos y, al mismo tiempo, tiene una riqueza de hasta 25 mil millones dólares. Los extremos son 23 niños y 1,8 mil millones dólares del patrimonio neto de Roman Avdeev, y 177 mil millones dólares y 4 niños, un resultado que pertenece a Jeff Bezos.
Al final de esta parte del análisis, en el gráfico circular, veremos el estado civil de las personas con más de 1 mil millones dólares del patrimonio.
stan <- bil21 %>%
select(Status) %>%
group_by(Status) %>%
summarise(NN = n()) %>%
arrange(desc(NN)) %>%
ungroup()
stan[2, 1] <- "Unknown"
ggplot(stan, aes(x = "", y = NN, fill = Status))+
geom_bar(width = 1, stat = "identity") +
coord_polar("y", start=0) +
scale_fill_discrete_sequential(palette = "Hawaii") +
theme_minimal() +
labs(title = "Civil status",
x = " ",
y = " ")
Definitivamente más del 60% de las personas están casadas, las partes más pequeñas están ocupadas por personas divorciadas, viudas o solteras. Aproximadamente el 25% de los datos son de “estado desconocido”.
En la segunda parte voy a usar los datos de los años 2002 - 2021, que indican las 10 personas más ricas en cada año. El database contiene también el tamaño del patrimonio neto, edad nacionalidad y la fuente de riqueza. Intentaré comprobar cómo cambian los resultados a lo largo del tiempo.
Ahora venimos a ilustrar el cambio en el tamaño del patrimonio en el período 2002-2021. Además podremos observar los cambios de las personas (o familias) en los seleccionados puestos del ranking.
Fortune <- df %>%
group_by(year)
ggplot( Fortune,
aes(year, net_worth, group = rank, color = factor(rank))
) +
geom_line() +
scale_color_viridis_d() +
geom_text(check_overlap = TRUE, show.legend = FALSE, hjust = 1, vjust = 0, nudge_y = 2, aes(label = name)) +
labs(x = "Year",
y = "Net worth",
color = "Rank") +
theme_minimal() +
theme(legend.position = "bottom", legend.key.width = unit(0.5, "cm")) +
scale_x_continuous(breaks = seq(2000, 2025, 5), limits = c(2000, 2025)) +
transition_reveal(year) +
view_follow()
En general, la tendencia es creciente, lo que significa, que el patrimonio en los 10 primeros puestos de la lista de Forbes es mayor casi cada año, o podemos decir, que el patrimonio aumenta en oleadas. Vale la pena mencionar que en 2002 el tamaño del patrimonio neto en el primer puesto de la lista fue 60 mil millones dólares, mientras que en el año 2021 es 177 mil millones dólares. Esto confirma la tesis de que los ricos se están volviendo más ricos y que la desigualdad de ingresos en el mundo se está profundizando3.
En la siguiente animación podemos observar como cambia la edad media entre 2002 y 2021. Un tono más rojo, significa un promedio de edad más alto, el tinte amarillo - la edad media más baja. En el primer periodo la edad promedio creció, después fue variable pero alcanzó el más alto resultado en 2015, cuando fue de 74.3 años. Es importante destacar que desde 2003 la edad media de las 10 personas más ricas en el mundo no cayó por debajo de 60 años.
AgeMean <- df %>%
group_by(year) %>%
summarise(Mean = mean(age))
ggplot(AgeMean, aes(year, Mean, fill = Mean)) +
geom_col()+
theme_minimal() +
xlab("Year") +
theme(
panel.grid = element_blank(),
panel.grid.major.y = element_line(color = "white"),
panel.ontop = TRUE,
legend.position = "none"
) +
scale_fill_continuous_sequential(palette = "OrYel") +
scale_y_continuous(breaks = seq(0, 80, 20), limits = c(0, 80)) +
transition_states(year, wrap = FALSE) +
shadow_mark()
En el mapa de abajo se muestra el cambio en la concentración de la riqueza que pertenece a las 10 personas más ricas del mundo, desglosado por país.
data(World)
world <- World ; rm(World)
world1 <- world %>%
select(Country = name, geometry)
mapa2 <- df %>%
select(year, net_worth, Country = nationality) %>%
group_by(year, Country) %>%
mutate (suma = sum(net_worth)) %>%
distinct(year, Country, suma)
mapa3 <- left_join(world1, mapa2, by = "Country")%>%
drop_na()
ggplot() +
geom_sf(data = world1) +
geom_sf(data = mapa3, aes(fill = suma)) +
scale_fill_continuous_sequential(palette = "Dark Mint", name = "Miles de milliones de dólares")+
labs(
title = "Year: {current_frame}"
) + theme_void() +
theme(legend.position = "bottom", legend.key.width = unit(1, "cm")) +
transition_manual(year)
Es bastante obvio que en cada año, los Estados Unidos son marcados en el mapa, pero lo más interesante es, que la variedad de los países a la vanguardia disminuye cada año y los Estados Unidos concentran más y más de la riqueza. España desaparece del mapa en 2021, con la desaparición de la lista de las 10 personas más ricas de Amancio Ortega. Aunque, curiosamente se sitúa justo fuera de los 10 mejores puestos, en el puesto 114.
Teniendo en cuenta que la riqueza tarda años en acumularse, decidí que tal comparación podría tener sentido. Para las necesidades de esta comparación, construí el ranking de países. El mejor puesto tiene el país que apareció más veces en la lista de los 10 multimillonarios en los años 2002-2019. Por otro lado, usaba el ranking de la libertad económica del 2019. Podemos observar los resultados en la tabla y en el gráfico. Los puntos azules marcan las posiciones de los países en el ranking de los multimillonarios y los cuadrados indican lugares en el ranking de libertad económica.
rank1 <- df %>%
filter(year <= 2019) %>%
select(Country = nationality) %>%
count(Country) %>%
rename(Observations = n) %>%
arrange(desc(Observations)) %>%
mutate(Rank = c(1:13)) %>%
select(!Observations)
rank1 <- left_join(rank1, ecofree19, by = "Country")
rank1 <- rank1 %>%
rename("RankE" = "World_rank")
kbl(rank1) %>%
kable_minimal() %>%
scroll_box(width = "420px", height = "160px") %>%
kable_styling(position = "c")
Country | Rank | RankE | Region |
---|---|---|---|
United States | 1 | 12 | Americas |
Mexico | 2 | 66 | Americas |
India | 3 | 129 | Asia-Pacific |
Spain | 4 | 57 | Europe |
France | 5 | 71 | Europe |
Germany | 6 | 24 | Europe |
Sweden | 7 | 19 | Europe |
Hong Kong | 8 | 1 | Asia-Pacific |
Saudi Arabia | 9 | 91 | Middle East and North Africa |
Brazil | 10 | 150 | Americas |
Canada | 11 | 8 | Americas |
Japan | 12 | 30 | Asia-Pacific |
Russia | 13 | 98 | Europe |
ggplot(rank1) +
geom_segment(aes(x = Rank, xend = Rank, y = Rank, yend = RankE), color = "lightsteelblue3") +
geom_point(aes(x = Rank, y = Rank), color = "midnightblue", shape = 20, size = 3, fill = "lightcyan1", stroke = 1) +
geom_point(aes(x = Rank, y = RankE), color = "midnightblue", shape = 22, size = 3, fill = "oldlace", stroke = 1) +
scale_x_reverse(breaks = seq(1, 13, 1), label = c("United States", "Mexico", "India", "Spain", "France", "Germany", "Sweden", "Hong Kong", "Saudi Arabia", "Brazil", "Canada", "Japan", "Russia" )) +
coord_flip() +
theme_minimal() +
labs(
title = "Los puestos en dos rankings",
x = "Country"
) +
scale_y_continuous(breaks = seq(1, 150, 149))
Analizando los resultados, como se puede ver, los Estados Unidos son el lugar que aparece con mayor frecuencia en la lista de las personas más ricas del mundo. También aparecieron allí varios países europeos, entre ellos España. Cuando comparamos los resultados de estos países en el ranking de libertad económica, a veces los puestos en ambos rankings son muy altos, pero para los países como Brasil, India o Rusia los resultados son divergentes. Estos países se situaban en la lista de los multimillonarios (esto ya es una distinción), pero su libertad económica no está en un puesto alto. Así que la comparación del ranking de los países más populares en la lista de los multimillonarios y el ranking de la libertad económica para estos países nos muestra que no hay una conexión entre estos factores.
Al final, un pequeño bonus. ¿Cuál es la presencia del único representante de España entre las 10 personas más ricas del mundo? En primer lugar, un poquito de datos sobre este célebre español, del año 2021. Luego un dibujo que muestra su imagen y por último, el cambio de su patrimonio neto a lo largo del tiempo.
ortega <- df %>%
filter(name == "Amancio Ortega")
ortegaT <- ortega %>%
filter(year == 2020) %>%
select(name, age, nationality, source = source_wealth)
kbl(ortegaT, align = "c") %>%
kable_paper() %>%
row_spec(1, bold = T, color = "white", background = "chocolate")
name | age | nationality | source |
---|---|---|---|
Amancio Ortega | 84 | Spain | Inditex, Zara |
knitr::include_graphics(here::here("./assets/ortega3.jpeg"))
ortegaG <- ortega %>%
select(year, net_worth, rank)
ggplot(ortegaG, aes(year, net_worth)) +
geom_line(color = "darkolivegreen3") +
geom_point(color = "chocolate4", shape = 1, size = 3) +
theme_minimal() +
scale_x_continuous(breaks = seq(2007, 2021, 2), limits = c(2007, 2021)) +
labs(
title = "El cambio del patrimonio de Amancio Ortega",
x = "Year",
y = "Net worth (billion $)"
) +
annotate(geom = "text", x = 2007, y = 27, label = "24.0", size = 4) +
annotate(geom = "text", x = 2017, y = 74, label = "71.3", size = 4) +
annotate(geom = "point", shape = 1, x = 2017, y = 71.3, size = 3, color = "chocolate4") +
transition_reveal(year)
Para este análisis, utilicé las siguientes fuentes de Internet:
- Session info ---------------------------------------------------------------
setting value
version R version 4.1.1 (2021-08-10)
os Windows 10 x64
system x86_64, mingw32
ui RTerm
language (EN)
collate Polish_Poland.1250
ctype Polish_Poland.1250
tz Europe/Warsaw
date 2022-01-06
- Packages -------------------------------------------------------------------
package * version date lib source
abind 1.4-5 2016-07-21 [1] CRAN (R 4.1.0)
assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.1.1)
backports 1.2.1 2020-12-09 [1] CRAN (R 4.1.0)
base64enc 0.1-3 2015-07-28 [1] CRAN (R 4.1.0)
broom 0.7.9 2021-07-27 [1] CRAN (R 4.1.1)
bslib 0.3.1 2021-10-06 [1] CRAN (R 4.1.2)
cellranger 1.1.0 2016-07-27 [1] CRAN (R 4.1.1)
checkmate 2.0.0 2020-02-06 [1] CRAN (R 4.1.1)
class 7.3-19 2021-05-03 [2] CRAN (R 4.1.1)
classInt 0.4-3 2020-04-07 [1] CRAN (R 4.1.1)
cli 3.0.1 2021-07-17 [1] CRAN (R 4.1.1)
clipr 0.7.1 2020-10-08 [1] CRAN (R 4.1.1)
codetools 0.2-18 2020-11-04 [2] CRAN (R 4.1.1)
colorspace * 2.0-2 2021-06-24 [1] CRAN (R 4.1.1)
commonmark 1.7 2018-12-01 [1] CRAN (R 4.1.1)
crayon 1.4.2 2021-10-29 [1] CRAN (R 4.1.2)
crosstalk 1.2.0 2021-11-04 [1] CRAN (R 4.1.2)
DBI 1.1.1 2021-01-15 [1] CRAN (R 4.1.1)
dbplyr 2.1.1 2021-04-06 [1] CRAN (R 4.1.1)
desc 1.4.0 2021-09-28 [1] CRAN (R 4.1.2)
details 0.2.1 2020-01-12 [1] CRAN (R 4.1.1)
dichromat 2.0-0 2013-01-24 [1] CRAN (R 4.1.0)
digest 0.6.27 2020-10-24 [1] CRAN (R 4.1.1)
dplyr * 1.0.7 2021-06-18 [1] CRAN (R 4.1.1)
e1071 1.7-9 2021-09-16 [1] CRAN (R 4.1.2)
ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.1.1)
evaluate 0.14 2019-05-28 [1] CRAN (R 4.1.1)
fansi 0.5.0 2021-05-25 [1] CRAN (R 4.1.1)
farver 2.1.0 2021-02-28 [1] CRAN (R 4.1.1)
fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.1.1)
fontawesome 0.2.2 2021-07-02 [1] CRAN (R 4.1.2)
forcats * 0.5.1 2021-01-27 [1] CRAN (R 4.1.1)
fs 1.5.0 2020-07-31 [1] CRAN (R 4.1.1)
generics 0.1.1 2021-10-25 [1] CRAN (R 4.1.2)
gganimate * 1.0.7 2020-10-15 [1] CRAN (R 4.1.1)
ggplot2 * 3.3.5 2021-06-25 [1] CRAN (R 4.1.1)
ggrepel * 0.9.1 2021-01-15 [1] CRAN (R 4.1.1)
gifski 1.4.3-1 2021-05-02 [1] CRAN (R 4.1.1)
glue 1.4.2 2020-08-27 [1] CRAN (R 4.1.1)
gridExtra 2.3 2017-09-09 [1] CRAN (R 4.1.1)
gt * 0.3.1.9000 2021-11-26 [1] Github (rstudio/gt@e441737)
gtable 0.3.0 2019-03-25 [1] CRAN (R 4.1.1)
gtExtras * 0.2.2.12 2021-11-26 [1] Github (jthomasmock/gtExtras@540a392)
haven 2.4.3 2021-08-04 [1] CRAN (R 4.1.1)
here 1.0.1 2020-12-13 [1] CRAN (R 4.1.1)
highr 0.9 2021-04-16 [1] CRAN (R 4.1.1)
hms 1.1.1 2021-09-26 [1] CRAN (R 4.1.2)
htmltools 0.5.2 2021-08-25 [1] CRAN (R 4.1.1)
htmlwidgets 1.5.4 2021-09-08 [1] CRAN (R 4.1.1)
httr 1.4.2 2020-07-20 [1] CRAN (R 4.1.1)
hwordcloud * 0.1.0 2019-08-07 [1] CRAN (R 4.1.2)
jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.1.1)
jsonlite 1.7.2 2020-12-09 [1] CRAN (R 4.1.1)
kableExtra * 1.3.4 2021-02-20 [1] CRAN (R 4.1.1)
KernSmooth 2.23-20 2021-05-03 [2] CRAN (R 4.1.1)
klippy * 0.0.0.9500 2021-11-18 [1] Github (rlesur/klippy@378c247)
knitr * 1.33 2021-04-24 [1] CRAN (R 4.1.1)
labeling 0.4.2 2020-10-20 [1] CRAN (R 4.1.0)
lattice 0.20-44 2021-05-02 [1] CRAN (R 4.1.1)
leafem 0.1.6 2021-05-24 [1] CRAN (R 4.1.1)
leaflet 2.0.4.1 2021-01-07 [1] CRAN (R 4.1.1)
leafsync 0.1.0 2019-03-05 [1] CRAN (R 4.1.1)
lifecycle 1.0.1 2021-09-24 [1] CRAN (R 4.1.2)
lubridate 1.7.10 2021-02-26 [1] CRAN (R 4.1.1)
lwgeom 0.2-7 2021-07-28 [1] CRAN (R 4.1.1)
magrittr 2.0.1 2020-11-17 [1] CRAN (R 4.1.1)
modelr 0.1.8 2020-05-19 [1] CRAN (R 4.1.1)
munsell 0.5.0 2018-06-12 [1] CRAN (R 4.1.1)
paletteer 1.4.0 2021-07-20 [1] CRAN (R 4.1.1)
pillar 1.6.4 2021-10-18 [1] CRAN (R 4.1.2)
pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.1.1)
plyr 1.8.6 2020-03-03 [1] CRAN (R 4.1.1)
png 0.1-7 2013-12-03 [1] CRAN (R 4.1.0)
prettyunits 1.1.1 2020-01-24 [1] CRAN (R 4.1.1)
progress 1.2.2 2019-05-16 [1] CRAN (R 4.1.1)
proxy 0.4-26 2021-06-07 [1] CRAN (R 4.1.1)
purrr * 0.3.4 2020-04-17 [1] CRAN (R 4.1.1)
R6 2.5.1 2021-08-19 [1] CRAN (R 4.1.1)
raster 3.4-13 2021-06-18 [1] CRAN (R 4.1.1)
RColorBrewer * 1.1-2 2014-12-07 [1] CRAN (R 4.1.0)
Rcpp 1.0.7 2021-07-07 [1] CRAN (R 4.1.1)
readr * 2.0.1 2021-08-10 [1] CRAN (R 4.1.1)
readxl 1.3.1 2019-03-13 [1] CRAN (R 4.1.1)
rematch2 2.1.2 2020-05-01 [1] CRAN (R 4.1.1)
reprex 2.0.1 2021-08-05 [1] CRAN (R 4.1.1)
rlang 0.4.11 2021-04-30 [1] CRAN (R 4.1.1)
rmarkdown 2.10 2021-08-06 [1] CRAN (R 4.1.1)
rprojroot 2.0.2 2020-11-15 [1] CRAN (R 4.1.1)
rstudioapi 0.13 2020-11-12 [1] CRAN (R 4.1.1)
rvest 1.0.1 2021-07-26 [1] CRAN (R 4.1.1)
s2 1.0.7 2021-09-28 [1] CRAN (R 4.1.2)
sass 0.4.0 2021-05-12 [1] CRAN (R 4.1.1)
scales 1.1.1 2020-05-11 [1] CRAN (R 4.1.1)
sessioninfo 1.1.1 2018-11-05 [1] CRAN (R 4.1.1)
sf 1.0-4 2021-11-14 [1] CRAN (R 4.1.2)
sp 1.4-5 2021-01-10 [1] CRAN (R 4.1.1)
stars 0.5-3 2021-06-08 [1] CRAN (R 4.1.1)
stringi 1.7.4 2021-08-25 [1] CRAN (R 4.1.1)
stringr * 1.4.0 2019-02-10 [1] CRAN (R 4.1.1)
svglite 2.0.0 2021-02-20 [1] CRAN (R 4.1.1)
systemfonts 1.0.3 2021-10-13 [1] CRAN (R 4.1.1)
tibble * 3.1.4 2021-08-25 [1] CRAN (R 4.1.1)
tidyr * 1.1.3 2021-03-03 [1] CRAN (R 4.1.1)
tidyselect 1.1.1 2021-04-30 [1] CRAN (R 4.1.1)
tidyverse * 1.3.1 2021-04-15 [1] CRAN (R 4.1.1)
tmap * 3.3-2 2021-06-16 [1] CRAN (R 4.1.1)
tmaptools 3.1-1 2021-01-19 [1] CRAN (R 4.1.1)
tweenr 1.0.2 2021-03-23 [1] CRAN (R 4.1.1)
tzdb 0.1.2 2021-07-20 [1] CRAN (R 4.1.1)
units 0.7-2 2021-06-08 [1] CRAN (R 4.1.1)
utf8 1.2.2 2021-07-24 [1] CRAN (R 4.1.1)
vctrs 0.3.8 2021-04-29 [1] CRAN (R 4.1.1)
viridis * 0.6.2 2021-10-13 [1] CRAN (R 4.1.2)
viridisLite * 0.4.0 2021-04-13 [1] CRAN (R 4.1.1)
webshot 0.5.2 2019-11-22 [1] CRAN (R 4.1.1)
withr 2.4.3 2021-11-30 [1] CRAN (R 4.1.2)
wk 0.5.0 2021-07-13 [1] CRAN (R 4.1.1)
wordcloud2 * 0.2.1 2018-01-03 [1] CRAN (R 4.1.2)
xfun 0.25 2021-08-06 [1] CRAN (R 4.1.1)
XML 3.99-0.7 2021-08-17 [1] CRAN (R 4.1.1)
xml2 1.3.2 2020-04-23 [1] CRAN (R 4.1.1)
yaml 2.2.1 2020-02-01 [1] CRAN (R 4.1.0)
[1] C:/Users/Alicja/Documents/R/win-library/4.1
[2] C:/Program Files/R/R-4.1.1/library