ESTADÍSTICA DESCRIPTIVA · PDF fileLiliana Orellana Marzo 2001, 1 ESTADÍSTICA DESCRIPTIVA
Estadística Descriptiva - Técnicas Estadísticas en ...
Transcript of 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
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
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
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
Socorro me han contratado para un estudio (I)
Preparar los datos
Figure 1Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 5 / 24
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
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
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
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
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
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
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
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
Estadísiticos Descriptivos
Estadísiticos Descriptivos
Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 14 / 24
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
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
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
Estadísiticos Descriptivos
library(pastecs)# stat.desc(course.df[,7:10])
Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 18 / 24
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
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
Paquetes que generas tablas bonitas
Paquetes que generas tablas bonitas
Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 21 / 24
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
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
Paquetes que generas tablas bonitas
¡¡¡¡Continurá!!!
Xavi Barber (@umh1480 @XaviBarberUMH) Estadística Descriptiva 2017-03-02 24 / 24