Extraemos la data
library(htmltab)
linkPage="https://en.m.wikipedia.org/wiki/List_of_countries_by_GDP_(nominal)_per_capita"
linkTabla="///table/tbody/tr[2]/td[1]/table/tbody"
IMF=htmltab(doc = linkPage, which = linkTabla)
Función gsub
IMF$`US$`=gsub(",","",IMF$`US$`)
Observando nuestra dataā¦
str(IMF)
## 'data.frame': 193 obs. of 3 variables:
## $ Rank : chr "1" "2" "ā" "3" ...
## $ Country/Territory: chr "Ā Ā Luxembourg" "Ā Ā Ā Switzerland" "Ā Ā Macau" "Ā Ā Norway" ...
## $ US$ : chr "114234" "82950" "82388" "81695" ...
Convirtiendo la data:
IMF$`US$`=as.numeric(IMF$`US$`)
#Parte 1. Exploración GrÔfica NOTA: Las variables numéricas no requieren tablas de frecuencia para ser exploradas.
El grƔfico inicial a usar es el histograma:
library(ggplot2)
base1=ggplot(IMF, aes(x=`US$`))
histNum= base1 + geom_histogram(bins = 7)
histNum
La exploración numérica nos debe sugerir:
Si la media es representativo o no. Si hay asimetrĆa, y hacia donde se concentran los datos. Si hay valores atĆpicos. Del grĆ”fico podemos decir que, como no es simĆ©trico, informar la media de accidentes no serĆ” muy representativa (la mediana serĆ” la mejor opción); por otro lado, como la asimetrĆa nos muestra que los accidentes son en su mayorĆa pocos. Hay un numero de accidentes que se aleja hacia valores altos, pero no estamos seguros si estĆ” tan lejos del ācentroā para ser atĆpico.
Los atĆpicos se ven claramente en un boxplot:
base2=ggplot(IMF, aes(y=`US$`))
cuad=base2 + geom_boxplot() + coord_flip()
cuad
Podemos apreciar varios atĆpicos Para ser mĆ”s precisos en nuestra exploración, debemos calcular diversos indicadores estadĆsticos.
Los estadigrafos aparecen rapidamente asĆ:
summary(IMF$`US$`)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 303 2085 5899 14806 18032 114234
PodrĆamos graficarlos en el boxplot:
library(ggplot2)
estadigrafos=round(as.vector(summary(IMF$`US$`)),2)
cuad + scale_y_continuous(breaks = estadigrafos)
Nota: Si la media es mayor a la mediana, la asimetrĆa tiende a ser positiva (cola a la derecha). Hay tendencia a la asimetrĆa negativa (cola a la izquierda) cuando la mediana es mayor que la media.
ĀæTe das cuenta por que hay asimetrĆa? AquĆ se nota claramente que hay asimetrĆa, pero podemos confirmarla calculando el coeficiente respectivo:
library(DescTools)
Skew(IMF$`US$`,conf.level = 0.05)
## skew lwr.ci upr.ci
## 2.083208 2.144606 2.180387
La distancia intercuartilica es importante saberla:
IQR(IMF$`US$`)
## [1] 15947
Es decir, entre el primer y tercer cuartil hay 15947 valores; asi, el 50% de los valores centrales varian en 15947 valores. AsĆ, podemos proponer que un atĆpico es aquel que estĆ” a una distancia lejana de estos valores centrales. Este umbral, tradicionalmente se calcula asĆ:
#cuartil tres
q3=as.numeric(summary(IMF$`US$`)[5])
#calculando umbral (distancia del q3)
umbral= q3+1.5*IQR(IMF$`US$`)
umbral
## [1] 41952.5
Osea, en teorĆa, todo valor mayor que 41952.5 serĆ” considerado un atĆpico:
IMF[IMF$`US$`>umbral,]
## Rank Country/Territory US$
## 2 1 Ā Ā Luxembourg 114234
## 3 2 Ā Ā Ā Switzerland 82950
## 4 ā Ā Ā Macau 82388
## 5 3 Ā Ā Norway 81695
## 6 4 Ā Ā Ireland 76099
## 7 5 Ā Ā Iceland 74278
## 8 6 Ā Ā Qatar 70780
## 9 7 Ā Ā Singapore 64041
## 10 8 Ā Ā United States 62606
## 11 9 Ā Ā Denmark 60692
## 12 10 Ā Ā Australia 56352
## 13 11 Ā Ā Sweden 53873
## 14 12 Ā Ā Netherlands 53106
## 15 13 Ā Ā Austria 51509
## 16 14 Ā Ā Finland 49845
## 17 15 Ā Ā San Marino 48946
## 18 ā Ā Ā Hong Kong 48517
## 19 16 Ā Ā Germany 48264
## 20 17 Ā Ā Belgium 46724
## 21 18 Ā Ā Canada 46261
## 22 19 Ā Ā France 42878
## 23 20 Ā Ā United Kingdom 42558
Ahora podemos representarlo por GINI
Gini(IMF$`US$`,conf.level = 0.95)
## gini lwr.ci upr.ci
## 0.6315895 0.5976137 0.6671288
Si el Gini es 0, todas las empresas causan la misma cantidad de accidentes; si fuera 1, una sola empresa causa todos los accidentes.
Normalmente al Gini le acompaƱa la curva de Lorenz:
library(gglorenz)
## Registered S3 methods overwritten by 'ineq':
## method from
## plot.Lc DescTools
## lines.Lc DescTools
base1 + gglorenz::stat_lorenz(color="red") +
geom_abline(linetype = "dashed") + coord_fixed() +
labs(x = "%PaĆses ordenados por monto en el IMF",
y = "%Monto en el IMF",
title = "Relación paĆs / monto",
caption = "Fuente: Wikipedia")
Si la curva se acerca a la diagonal, hay igualdad de distribución: cada empresa contribuye con la misma cantidad de accidentes (Gini = 0).