##Integrantes: ###Jorge Yanann Vasquez ###Roberto Severino
claims <- read.csv("https://raw.githubusercontent.com/DFJL/Datasets/master/unemploymentClaims.csv", sep= ";")
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(lubridate)
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
library(dlookr)
## Either Arial Narrow or Liberation Sans Narrow fonts are required to Viz.
## Please use dlookr::import_liberation() to install Liberation Sans Narrow font.
##
## Attaching package: 'dlookr'
## The following object is masked from 'package:base':
##
## transform
Previanmente he cargado el archivo con el nombre de claims
claims$date <- as.Date(claims$Filed.week.ended, format = '%m/%d/%Y')
claims2 <- claims %>%
filter(month(date)==4) %>%
mutate(year= year(date)) %>%
group_by(State,year) %>%
summarise(claims= sum(Continued.Claims)) %>%
ungroup()
## `summarise()` has grouped output by 'State'. You can override using the `.groups` argument.
claims claims2
3- Indique mediante la utilización de una función, si alguna de las variables tiene valores nulos.
diagnose(claims2)
## # A tibble: 3 × 6
## variables types missing_count missing_percent unique_count unique_rate
## <chr> <chr> <int> <dbl> <int> <dbl>
## 1 State character 0 0 53 0.5
## 2 year numeric 0 0 2 0.0189
## 3 claims integer 0 0 106 1
4- Indique mediante la utilización de una función, si alguna de las variables tiene valores negativos.
diagnose_numeric(claims2)
## # A tibble: 2 × 10
## variables min Q1 mean median Q3 max zero minus outlier
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int> <int> <int>
## 1 year 2019 2019 2020. 2020. 2020 2020 0 0 0
## 2 claims 1696 53600. 540838. 192966 571886. 6816748 0 0 12
describe(claims2)
## # A tibble: 2 × 26
## variable n na mean sd se_mean IQR skewness kurtosis p00
## <chr> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 year 106 0 2020. 0.502 4.88e-2 1 e0 0 -2.04 2019
## 2 claims 106 0 540838. 973997. 9.46e+4 5.18e5 3.88 19.2 1696
## # … with 16 more variables: p01 <dbl>, p05 <dbl>, p10 <dbl>, p20 <dbl>,
## # p25 <dbl>, p30 <dbl>, p40 <dbl>, p50 <dbl>, p60 <dbl>, p70 <dbl>,
## # p75 <dbl>, p80 <dbl>, p90 <dbl>, p95 <dbl>, p99 <dbl>, p100 <dbl>
5- Obtenga un nuevo data frame con los datos solamente del 2020.
claims2020 <- claims2 %>%
filter(year ==2020)
claims2020
## # A tibble: 53 × 3
## State year claims
## <chr> <dbl> <int>
## 1 Alabama 2020 465683
## 2 Alaska 2020 155328
## 3 Arizona 2020 549852
## 4 Arkansas 2020 303625
## 5 California 2020 6816748
## 6 Colorado 2020 640324
## 7 Connecticut 2020 952293
## 8 Delaware 2020 132447
## 9 District of Columbia 2020 173608
## 10 Florida 2020 1155944
## # … with 43 more rows
Para los datos filtrados según el ejercicio anterior:
6- Diagnostique la variable claims, mediante la función utilizada en clase.Analice los resultados
diagnose(claims2020) %>%
filter(variables=="claims")
## # A tibble: 1 × 6
## variables types missing_count missing_percent unique_count unique_rate
## <chr> <chr> <int> <dbl> <int> <dbl>
## 1 claims integer 0 0 53 1
diagnose_numeric(claims2020) %>%
filter(variables=="claims")
## # A tibble: 1 × 10
## variables min Q1 mean median Q3 max zero minus outlier
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int> <int> <int>
## 1 claims 4224 236728 964152. 549852 1155944 6816748 0 0 4
El valor mínimo de la variable claims es 4224, mientras que el máximo es 6816748, la media es 964151,9 y la mediana 549852. El primer cuartil es 236728 y el tercer cuartil 1155944. No hay observaciones con valor cero o negativos y hay 4 valores extremos.
7- Obtenga la distribución de frecuencias de la variable claims
options(scipen = 99999)
claimsDist <- claims2020 %>%
mutate(bin = binning(claims2020$claims, type = "pretty"),
bin = format(bin,digits = 3,scientific = FALSE)) %>%
group_by(bin) %>%
summarise(Freq = n()) %>%
mutate(realFreq = prop.table(Freq),
Cumulative_Freq = cumsum(Freq),
Cumulative_Relative_Freq = cumsum(realFreq)
)
claimsDist
## # A tibble: 6 × 5
## bin Freq realFreq Cumulative_Freq Cumulative_Relative_Freq
## <chr> <int> <dbl> <int> <dbl>
## 1 "(1000000,2000000]" 9 0.170 9 0.170
## 2 "(2000000,3000000]" 4 0.0755 13 0.245
## 3 "(3000000,4000000]" 1 0.0189 14 0.264
## 4 "(4000000,5000000]" 1 0.0189 15 0.283
## 5 "(6000000,7000000]" 1 0.0189 16 0.302
## 6 "[0,1000000] " 37 0.698 53 1
diagnose_outlier(claims2020)
## # A tibble: 2 × 6
## variables outliers_cnt outliers_ratio outliers_mean with_mean without_mean
## <chr> <int> <dbl> <dbl> <dbl> <dbl>
## 1 year 0 0 NaN 2020 2020
## 2 claims 4 7.55 4340036. 964152. 688570.
plot_outlier(claims2020)
8- Obtenga el histograma de la variable claims.Analicelo los resultados.
binPrettyClaims <- binning(claims2020$claims,
type = "pretty"
)
plot(binPrettyClaims, sub = "Claims Histogram")
Concentración de valores en el la primera frecuencia, la mayoría de estados tienen menos de 1 millón de claims. Menos de 5 estados tienen entre 2 y 3 millones de claims. Solo 1 estado muestra entre 3 - 4 millones de Claims, lo mismo sucede con los rangos 4 - 5 millones y 6-7 millones. No hay estados que tengan entre 5 y 6 millones de claims. Tiene outliers muy altos.
Bonus Explique que hace el código del chunk adjuntado en este documento.
Basicamente el codigo cambia el formato de la fecha separando el mes del año para poder ser manipulado de manera numerica.