Estadística Descriptiva - Técnicas Estadísticas en ...

24
Estadística Descriptiva Técnicas Estadísticas en Análisis de Mercados Xavi Barber Centro de Investigación Operativa Universidad Miguel Hernández de Elche 2017-03-02 Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 1 / 24

Transcript of Estadística Descriptiva - Técnicas Estadísticas en ...

Page 1: Estadística Descriptiva - Técnicas Estadísticas en ...

Estadística DescriptivaTécnicas Estadísticas en Análisis de Mercados

Xavi Barber

Centro de Investigación OperativaUniversidad Miguel Hernández de Elche

2017-03-02

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 1 / 24

Page 2: Estadística Descriptiva - Técnicas Estadísticas en ...

1 Socorro me han contratado para un estudio (I)

2 Estadísiticos Descriptivos

3 Paquetes que generas tablas bonitas

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 2 / 24

Page 3: Estadística Descriptiva - Técnicas Estadísticas en ...

Socorro me han contratado para un estudio (I)

Socorro me han contratado para un estudio (I)

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 3 / 24

Page 4: Estadística Descriptiva - Técnicas Estadísticas en ...

Socorro me han contratado para un estudio (I)

Pasos Básicos

Adaptar los DatosVariables Continuas y Categóricas.Etiquetar los Datos.Manipular las variables continuas-categóricas.

Visualizar los DatosEstudio Descriptivo y gráfico:

Barras, Histogramas, Gráficos de Caja, etc. . .Media, Desv., Percentiles (5,25,50,75,95), Máx, mín, N.

Correlaciones y Tablas de Contingencia.

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 4 / 24

Page 5: Estadística Descriptiva - Técnicas Estadísticas en ...

Socorro me han contratado para un estudio (I)

Preparar los datos

Figure 1Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 5 / 24

Page 6: Estadística Descriptiva - Técnicas Estadísticas en ...

Socorro me han contratado para un estudio (I)

Los DatosDatos obtenidod en un curso de verano. Cada observación corresponde a unestudiante.library(s20x)data(course.df)

v nombre Tipo definición

[,1] Grade factor Final grade for the course (A, B, C, D)[,2] Pass factor Passed the course (No, Yes)[,3] Exam numeric Mark in the final exam[,4] Degree factor Degree enrolled in (BA, BCom, BSc, Other)[,5] Gender factor Gender (Female, Male)[,6] Attend factor Regularly attended class (No, Yes)[,7] Assign numeric Assignment mark[,8] Test numeric Test mark[,9] B numeric Mark for the short answer section of the exam[,10] C numeric Mark for the long answer section of the exam[,11] MC numeric Mark for the multiple choice section of the exam[,12] Colour factor Colour of the exam booklet (Blue, Green, Pink, Yellow)[,13] Stage1 factor Stage one grade (A, B, C)[,14] Years.Since numeric Number of years since doing Stage 1[,15] Repeat factor Repeating the paper (No, Yes)

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 6 / 24

Page 7: Estadística Descriptiva - Técnicas Estadísticas en ...

Socorro me han contratado para un estudio (I)

Limpiar datos (I)

Revisar la definición de la variables:

Categóricas -> FactorContinuas -> Double o IntegerFechas -> DateTexto -> Character

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 7 / 24

Page 8: Estadística Descriptiva - Técnicas Estadísticas en ...

Socorro me han contratado para un estudio (I)

Factores

Hay que diferenciar entre las Variables NOMINALES y las variales ORDINALES.

Nominales -> utilizaremos factor()

Ordinales -> utilizaremos ordered()

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 8 / 24

Page 9: Estadística Descriptiva - Técnicas Estadísticas en ...

Socorro me han contratado para un estudio (I)

factor()

The function factor is used to encode a vector as a factor (the terms ‘category’ and ‘enumerated type’ arealso used for factors). If argument ordered is TRUE, the factor levels are assumed to be ordered. Forcompatibility with S there is also a function ordered.

Le podemos preguntar a una variable si es factor con is.factor(variable)

factor(x = character(), levels, labels = levels, exclude = NA,ordered = is.ordered(x), nmax = NA)

x la variable

levels= es el vector de los “valores”

labels= es el vector de las etiquetas (si inicialmente es una variable con textoslevels=labels)

exclude= vector de valores que excluiremos de levels

ordered= TRUE o FALSE

Nmax= el valor máximo del nivel, útil para descartar NA

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 9 / 24

Page 10: Estadística Descriptiva - Técnicas Estadísticas en ...

Socorro me han contratado para un estudio (I)

Reordenado niveles de un factorTenemos una variable que es un factor que al hacer un tabla nos pone:

Exfumador, Fumador y No FumadorPero nosotros queremos: No, ex y Fumador

ordena <- levels(variable)nuevaVar <- factor(var, levels = ordena[c(3, 1, 2)])

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 10 / 24

Page 11: Estadística Descriptiva - Técnicas Estadísticas en ...

Socorro me han contratado para un estudio (I)

as.Date

Uno de lso principales problemas para lso no iniciados en R es el manejo de lasfechas, cuando se exporta desde Excel dependiendo del formato puede que R noreconozca la fecha.

Existen muchos paquetes que hacen manejo de datos. El más usado es date,lubridate y el paquete zoo.

Enlace: Tutorial del paquete lubridate

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 11 / 24

Page 12: Estadística Descriptiva - Técnicas Estadísticas en ...

Socorro me han contratado para un estudio (I)

Date

De las fechas es muy importarte conocer esto:

Enlace a date formats: enlaceEnlace a la ayuda del paquete zoo: enlaceFecha y hora del sistema: Sys.time() 2017-03-02 10:34:15Restar dos fechas: (existen muchas opciones)

start <- strptime("20061111", format = "%Y%m%d")end <- strptime("20081111", format = "%Y%m%d")end - start

## Time difference of 731 days

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 12 / 24

Page 13: Estadística Descriptiva - Técnicas Estadísticas en ...

Socorro me han contratado para un estudio (I)

Comporbando. . .La mejor forma para comprobar si tenemos ya todos los datos de forma correcta, esdescribir la base de datos al completo:summary(course.df)

## Grade Pass Exam Degree Gender Attend## A:32 No : 44 Min. :11.00 BA :17 Female:78 No : 46## B:29 Yes:102 1st Qu.:40.00 BCom :49 Male :68 Yes:100## C:41 Median :51.50 BSc :64## D:44 Mean :52.88 Other:16## 3rd Qu.:68.50## Max. :93.00## Assign Test B C## Min. : 0.00 Min. : 3.60 Min. : 0.000 Min. : 0.00## 1st Qu.:11.70 1st Qu.: 9.10 1st Qu.: 6.000 1st Qu.: 8.00## Median :14.80 Median :11.80 Median : 9.000 Median :12.00## Mean :13.83 Mean :11.57 Mean : 9.253 Mean :11.14## 3rd Qu.:17.20 3rd Qu.:14.50 3rd Qu.:12.750 3rd Qu.:16.00## Max. :20.00 Max. :20.00 Max. :18.000 Max. :20.00## MC Colour Stage1 Years.Since Repeat## Min. : 4.00 Blue :38 A:49 Min. :0.000 No :109## 1st Qu.:12.00 Green :38 B:46 1st Qu.:0.625 Yes: 37## Median :16.00 Pink :36 C:51 Median :1.500## Mean :16.24 Yellow:34 Mean :1.592## 3rd Qu.:20.00 3rd Qu.:2.500## Max. :29.00 Max. :4.500

Es la forma habitual y con ello podemos ver los máximos, mínimos, y si son factores el número de elementospor clase, etc.

Pero esto para un estadístico a veces se le queda corto.

Sirve para saber si hay NA’s o si hay Outliers.

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 13 / 24

Page 14: Estadística Descriptiva - Técnicas Estadísticas en ...

Estadísiticos Descriptivos

Estadísiticos Descriptivos

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 14 / 24

Page 15: Estadística Descriptiva - Técnicas Estadísticas en ...

Estadísiticos Descriptivos

Medias y otros

# get means for variables in data frame mydata excluding# missing valuessapply(course.df[, 7:10], mean, na.rm = TRUE)

## Assign Test B C## 13.827397 11.567123 9.253425 11.143836

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 15 / 24

Page 16: Estadística Descriptiva - Técnicas Estadísticas en ...

Estadísiticos Descriptivos

# Tukey min,lower-hinge, median,upper-hinge,maxfivenum(course.df$Exam)

## [1] 11.0 40.0 51.5 69.0 93.0

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 16 / 24

Page 17: Estadística Descriptiva - Técnicas Estadísticas en ...

Estadísiticos Descriptivos

library(Hmisc)describe(course.df$Exam)

## course.df$Exam## n missing distinct Info Mean Gmd .05 .10## 146 0 63 0.999 52.88 21.47 25.00 28.50## .25 .50 .75 .90 .95## 40.00 51.50 68.50 77.50 84.75#### lowest : 11 18 20 23 24, highest: 86 87 89 91 93

# n, nmiss, unique, mean, 5,10,25,50,75,90,95th percentiles 5# lowest and 5 highest scores

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 17 / 24

Page 18: Estadística Descriptiva - Técnicas Estadísticas en ...

Estadísiticos Descriptivos

library(pastecs)# stat.desc(course.df[,7:10])

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 18 / 24

Page 19: Estadística Descriptiva - Técnicas Estadísticas en ...

Estadísiticos Descriptivos

library(psych)describe(course.df[, 7:10])

## vars n mean sd median trimmed mad min max range skew## Assign 1 146 13.83 4.41 14.8 14.38 4.15 0.0 20 20.0 -1.05## Test 2 146 11.57 3.78 11.8 11.54 4.00 3.6 20 16.4 0.00## B 3 146 9.25 4.09 9.0 9.28 4.45 0.0 18 18.0 -0.01## C 4 146 11.14 5.28 12.0 11.47 5.93 0.0 20 20.0 -0.42## kurtosis se## Assign 0.50 0.36## Test -0.55 0.31## B -0.74 0.34## C -0.77 0.44

**Cuidado con los factores!!!!!!!!!!**

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 19 / 24

Page 20: Estadística Descriptiva - Técnicas Estadísticas en ...

Estadísiticos Descriptivos

kablePero estas tablas anteriores carecen de vistosidad, se pueden mejorarlibrary(data.table)tablita <- stat.desc(course.df[, 7:10])tablita <- data.table(Estadistico = rownames(tablita), tablita)kable(tablita, caption = "MI PRIMERA TABLA BONITA", digits = 3)

Table 2: MI PRIMERA TABLA BONITA

Estadistico Assign Test B C

nbr.val 146.000 146.000 146.000 146.000nbr.null 1.000 0.000 2.000 5.000nbr.na 0.000 0.000 0.000 0.000min 0.000 3.600 0.000 0.000max 20.000 20.000 18.000 20.000range 20.000 16.400 18.000 20.000sum 2018.800 1688.800 1351.000 1627.000median 14.800 11.800 9.000 12.000mean 13.827 11.567 9.253 11.144SE.mean 0.365 0.313 0.338 0.437CI.mean.0.95 0.721 0.618 0.668 0.864var 19.405 14.283 16.701 27.890std.dev 4.405 3.779 4.087 5.281coef.var 0.319 0.327 0.442 0.474

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 20 / 24

Page 21: Estadística Descriptiva - Técnicas Estadísticas en ...

Paquetes que generas tablas bonitas

Paquetes que generas tablas bonitas

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 21 / 24

Page 22: Estadística Descriptiva - Técnicas Estadísticas en ...

Paquetes que generas tablas bonitas

stargazerEste paquete sirve para más cosas a parte de mostrar un descriptivo decente, peropara empezar es muy fácil de utilizar:library(stargazer)stargazer(course.df)

% Table created by stargazer v.5.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu %Date and time: jue, mar 02, 2017 - 10:34:16

Table 3

Statistic N Mean St. Dev. Min MaxExam 146 52.877 18.678 11 93Assign 146 13.827 4.405 0.000 20.000Test 146 11.567 3.779 3.600 20.000B 146 9.253 4.087 0 18C 146 11.144 5.281 0 20MC 146 16.240 5.774 4 29Years.Since 146 1.592 1.057 0.000 4.500

Como única preucaución hay que poner en el chunk lo siguiente:results=’asis’, message=FALSE y dentro del comando header=FALSE.Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 22 / 24

Page 23: Estadística Descriptiva - Técnicas Estadísticas en ...

Paquetes que generas tablas bonitas

Las opciones más interesantes de stargazer son:stargazer( ..., type = "latex", title = "", style = "default", summary = NULL, out = NULL,

out.header = FALSE, column.labels = NULL, column.separate = NULL, covariate.labels = NULL,dep.var.caption = NULL, dep.var.labels = NULL, dep.var.labels.include = TRUE, align = FALSE,coef = NULL, se = NULL, t = NULL, p = NULL, t.auto = TRUE, p.auto = TRUE, ci = FALSE,ci.custom = NULL, ci.level = 0.95, ci.separator = NULL, add.lines = NULL, apply.coef = NULL,apply.se = NULL, apply.t = NULL, apply.p = NULL, apply.ci = NULL, colnames = NULL,column.sep.width = "5pt", decimal.mark = NULL, df = TRUE, digit.separate = NULL,digit.separator = NULL, digits = NULL, digits.extra = NULL, flip = FALSE, float = TRUE,float.env="table", font.size = NULL, header = TRUE, initial.zero = NULL, intercept.bottom =TRUE, intercept.top = FALSE, keep = NULL, keep.stat = NULL, label = "", model.names = NULL,model.numbers = NULL, multicolumn = TRUE, no.space = NULL, notes = NULL, notes.align = NULL,notes.append = TRUE, notes.label = NULL, object.names = FALSE, omit = NULL, omit.labels =NULL, omit.stat = NULL, omit.summary.stat = NULL, omit.table.layout = NULL, omit.yes.no =c("Yes", "No"), order = NULL, ord.intercepts = FALSE, perl = FALSE, report = NULL, rownames= NULL, rq.se = "nid", selection.equation = FALSE, single.row = FALSE, star.char = NULL,star.cutoffs = NULL, suppress.errors = FALSE, table.layout = NULL, table.placement ="!htbp", zero.component = FALSE, summary.logical = TRUE, summary.stat = NULL, nobs = TRUE,mean.sd = TRUE, min.max = TRUE, median = FALSE, iqr = FALSE )

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 23 / 24

Page 24: Estadística Descriptiva - Técnicas Estadísticas en ...

Paquetes que generas tablas bonitas

¡¡¡¡Continurá!!!

Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 24 / 24