U1R

VictorCarvajalRomán

6/10/2020

Estadística aplicada

Ciencia de datos/Estadística

Definición de estadística

es la rama de las matemáticas que estudia la variabilidad, así como el proceso aleatorio que la genera siguiendo las leyes de la probabilidad.2. Como parte de la matemática, la estadística es una ciencia formal deductiva, con un conocimiento propio, dinámico y en continuo desarrollo obtenido a través del método científico formal. En ocasiones, las ciencias fácticas necesitan utilizar técnicas estadísticas durante su proceso de investigación factual, con el fin de obtener nuevos conocimientos basados en la experimentación y en la observación. En estos casos, la aplicación de la estadística permite el análisis de datos provenientes de una muestra representativa, que busca explicar las correlaciones y dependencias de un fenómeno físico o natural, de ocurrencia en forma aleatoria o condicional.

La estadística se divide en dos grandes áreas:

  • Estadística descriptiva: Se dedica a la descripción, visualización y resumen de datos originados a partir de los fenómenos de estudio. Los datos pueden ser resumidos numérica o gráficamente. Su objetivo es organizar y describir las características sobre un conjunto de datos con el propósito de facilitar su aplicación, generalmente con el apoyo de gráficas, tablas o medidas numéricas. Ejemplos básicos de parámetros estadísticos son: la media y la desviación estándar. Ejemplos gráficos son: histograma, pirámide poblacional, gráfico circular, entre otros.

  • Estadística inferencial: Se dedica a la generación de los modelos, inferencias y predicciones asociadas a los fenómenos en cuestión teniendo en cuenta la aleatoriedad de las observaciones. Se usa para modelar patrones en los datos y extraer inferencias acerca de la población bajo estudio. Estas inferencias pueden tomar la forma de respuestas a preguntas sí/no (prueba de hipótesis), estimaciones de unas características numéricas (estimación), pronósticos de futuras observaciones, descripciones de asociación (correlación) o modelamiento de relaciones entre variables (análisis de regresión). Otras técnicas de modelamiento incluyen análisis de varianza, series de tiempo y minería de datos. Su objetivo es obtener conclusiones útiles para lograr hacer deducciones acerca de la totalidad de todas las observaciones hechas, basándose en la información numérica.

Distribuciones de frecuencia

Tabla de distribución de frecuencia

dist <- fdt(datosfa, breaks="Sturges")
dist
## aborto 
##  Class limits  f   rf rf(%) cf  cf(%)
##   [24.8,35.6) 21 0.40 40.38 21  40.38
##   [35.6,46.5) 19 0.37 36.54 40  76.92
##   [46.5,57.4)  4 0.08  7.69 44  84.62
##   [57.4,68.3)  6 0.12 11.54 50  96.15
##   [68.3,79.2)  1 0.02  1.92 51  98.08
##   [79.2,90.1)  0 0.00  0.00 51  98.08
##    [90.1,101)  1 0.02  1.92 52 100.00
## 
## feminismo 
##     Class limits  f   rf rf(%) cf  cf(%)
##    [2.97,12.357) 39 0.75 75.00 39  75.00
##  [12.357,21.744)  8 0.15 15.38 47  90.38
##  [21.744,31.131)  3 0.06  5.77 50  96.15
##  [31.131,40.519)  1 0.02  1.92 51  98.08
##  [40.519,49.906)  0 0.00  0.00 51  98.08
##  [49.906,59.293)  0 0.00  0.00 51  98.08
##   [59.293,68.68)  1 0.02  1.92 52 100.00
#fdt: frequency distribution table


#nos brinda una tabla con los calculos de la distribución de frecuencias.
#Donde
#f= frecuencia absoluta
#rf= frecuencia relativa
#rf(%) frecuencia relativa porcentual
#cf= frecuencia acumulada
#cf(%)=frecuencia acumulada porcentual

Histograma de distribución de frecuencia

plot(dist, type="fh") # histograma de frecuencia absoluta

plot(dist, type="cfh") # histograma de frecuencia acumulada

plot(dist, type="rfh") # histograma de frecuencia relativa

Polígono de distribución de frecuencia

plot(dist, type="fp") # Polígono de frecuencia absoluta

plot(dist, type="cfp") # Polígono de frecuencia acumulada

plot(dist, type="rfp") # Polígono de frecuencia relativa

Medidas de tendencia central

Media

mean(datosfa$aborto)
## [1] 40.84615
mean(datosfa$feminismo)
## [1] 11.42308

Mediana

median(datosfa$aborto)
## [1] 37.5
median(datosfa$feminismo)
## [1] 8

Moda

mfv(datosfa$aborto)
## [1] 27 34
mfv(datosfa$feminismo)
## [1] 8

Ordenar de menor a mayor

sort(datosfa$aborto)
##  [1]  25  25  25  27  27  27  27  28  28  28  29  29  30  30  33  33  34  34  34
## [20]  34  35  36  36  36  37  37  38  38  39  39  40  40  41  41  41  42  43  43
## [39]  44  46  49  49  53  56  58  60  60  61  62  66  71 100
sort(datosfa$feminismo)
##  [1]  3  4  6  6  6  6  6  6  7  7  7  7  7  7  7  7  8  8  8  8  8  8  8  8  8
## [26]  8  8  9  9  9  9  9  9  9  9  9  9 10 10 13 14 14 15 15 15 18 21 23 24 25
## [51] 32 68

Cuantiles

summary(datosfa$aborto)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   25.00   30.00   37.50   40.85   44.50  100.00
summary(datosfa$feminismo)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    3.00    7.00    8.00   11.42   10.75   68.00

Valores máximos y mínimos

AbortoMax <- max(datosfa$aborto)
AbortoMax
## [1] 100
AbortoMin <- min(datosfa$aborto)
AbortoMin
## [1] 25
FeminismoMax <- max(datosfa$feminismo)
FeminismoMax
## [1] 68
FeminismoMin <- min(datosfa$feminismo)
FeminismoMin
## [1] 3

Gráfico (diagrama) de caja y bigote

boxplot(datosfa$aborto)

boxplot(datosfa$feminismo)

Medidas de dispersión

Amplitud (rango, alcance)

amp <- (AbortoMax - AbortoMin)
amp
## [1] 75

Varianza

var(datosfa$aborto)
## [1] 205.5053
var(datosfa$feminismo)
## [1] 96.87632

Desviación estándar

sd(datosfa$aborto)
## [1] 14.33546
sd(datosfa$feminismo)
## [1] 9.842577

Análisis de correlación

Correlación Pearson

aborto <- datosfa$aborto
feminismo <- datosfa$feminismo
busquedas <- data.frame(aborto,feminismo)

cor(busquedas)
##              aborto feminismo
## aborto    1.0000000 0.2963296
## feminismo 0.2963296 1.0000000

En los índices de correlación podemos observar un valor del 29.63% entre las búsquedas de aborto y feminismo.

cor.test(x=datosfa$aborto,y=datosfa$feminismo, method = "pearson", digits=3)
## 
##  Pearson's product-moment correlation
## 
## data:  datosfa$aborto and datosfa$feminismo
## t = 2.1939, df = 50, p-value = 0.03292
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.02549069 0.52664127
## sample estimates:
##       cor 
## 0.2963296

p-value nos indica la cantidad de valores marginales de nuestro modelo de regresión lineal, es decir, aquellos valores extremos que no están cerca de nuestra recta de mínimos cuadrados. Entre menor sea el valor de p-value, más acertado es nuestro modelo. En este caso podemos observar un valor un poco grande.

library(GGally)
## Loading required package: ggplot2
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
ggpairs(datosfa, lower=list(continuous = "smooth"), diag =list(continuous="bar", axislabels="none"))
## Warning in check_and_set_ggpairs_defaults("diag", diag, continuous =
## "densityDiag", : Changing diag$continuous from 'bar' to 'barDiag'
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Diagramas de dispersión

pairs(busquedas)

Regresión lineal simple

regresion <- lm(feminismo ~ aborto, data=busquedas)
summary(regresion)
## 
## Call:
## lm(formula = feminismo ~ aborto, data = busquedas)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -14.458  -4.072  -2.030   1.080  54.104 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  3.11265    4.01025   0.776   0.4413  
## aborto       0.20346    0.09274   2.194   0.0329 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9.494 on 50 degrees of freedom
## Multiple R-squared:  0.08781,    Adjusted R-squared:  0.06957 
## F-statistic: 4.813 on 1 and 50 DF,  p-value: 0.03292

Recta de minimos cuadrados

Ecuación de la recta

\[ 3.11265 + 0.20346x \]

Ajuste de la recta

plot(busquedas$aborto, busquedas$feminismo, xlab="Búsquedas Aborto", ylab="Búsquedas Feminismo")
abline(regresion)

Predicción

sort(aborto)
##  [1]  25  25  25  27  27  27  27  28  28  28  29  29  30  30  33  33  34  34  34
## [20]  34  35  36  36  36  37  37  38  38  39  39  40  40  41  41  41  42  43  43
## [39]  44  46  49  49  53  56  58  60  60  61  62  66  71 100
sort(feminismo)
##  [1]  3  4  6  6  6  6  6  6  7  7  7  7  7  7  7  7  8  8  8  8  8  8  8  8  8
## [26]  8  8  9  9  9  9  9  9  9  9  9  9 10 10 13 14 14 15 15 15 18 21 23 24 25
## [51] 32 68
nuevas.busquedas <- data.frame(aborto=seq(25,60)) 
predict(regresion, nuevas.busquedas)
##         1         2         3         4         5         6         7         8 
##  8.199068  8.402525  8.605982  8.809439  9.012895  9.216352  9.419809  9.623266 
##         9        10        11        12        13        14        15        16 
##  9.826723 10.030180 10.233637 10.437094 10.640550 10.844007 11.047464 11.250921 
##        17        18        19        20        21        22        23        24 
## 11.454378 11.657835 11.861292 12.064749 12.268206 12.471662 12.675119 12.878576 
##        25        26        27        28        29        30        31        32 
## 13.082033 13.285490 13.488947 13.692404 13.895861 14.099317 14.302774 14.506231 
##        33        34        35        36 
## 14.709688 14.913145 15.116602 15.320059

Intervalos de confianza

confint(regresion)
##                   2.5 %     97.5 %
## (Intercept) -4.94217034 11.1674621
## aborto       0.01718843  0.3897253
#Recta ajustada al gráfico de dispersión
plot(busquedas$aborto,busquedas$feminismo, xlab="Búsquedas Aborto", ylab="Búsquedas Feminismo")
abline(regresion)

#Intervalos de confianza para la respuesta media
# ic es una matriz con tres columnas: la rimera es la predicción, las otras dos son los extremos del intervalo
ic <- predict(regresion, nuevas.busquedas, interval='confidence')
lines(nuevas.busquedas$aborto, ic[,2],lty=2)
lines(nuevas.busquedas$aborto, ic[,3],lty=2)

#Intervalos de predicción
ic <- predict(regresion, nuevas.busquedas, interval='prediction')
lines(nuevas.busquedas$aborto, ic[,2],lty=2, col="red")
lines(nuevas.busquedas$aborto, ic[,3],lty=2, col="red")

Análisis de residuales

Análisis ANOVA (Análisis de varianza)

anova(regresion)
## Analysis of Variance Table
## 
## Response: feminismo
##           Df Sum Sq Mean Sq F value  Pr(>F)  
## aborto     1  433.8  433.85  4.8132 0.03292 *
## Residuals 50 4506.8   90.14                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Diagnóstico del modelo

residuos <- rstandard(regresion)
valores.ajustados <- fitted(regresion)
plot(valores.ajustados,residuos)

Pruebas de normalidad

qqnorm(residuos)
qqline(residuos)

Shapiro-wilk

shapiro.test(residuos)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.63406, p-value = 3.909e-10

Conclusiones del modelo de regresión lineal

  • En un principio se tenía la hipotésis de que la búsqueda de aborto y feminismo estaban relacionadas, ya que la primera al volverse tema de debate legislativo atraía el interés de las personas, y con ello también hacia el grupo feminista, principal impulsor de la despenalización del aborto.
  • Al hacer un análisis de correlación de Pearson, se obtuvo un índice de correlación de 29.63%, lo que nos indica que las variables no estan tan relacionadas como la hipótesis planteaba. También, se obtuvo p-value = 0.03292, el cual es un valor un poco grande, lo que nos indica que un modelo de regresión lineal no sería tan bueno.
  • En el diagrama de dispersión se puede observar algunas similitudes en la distribución de los valores de búsqueda. Una vez obtenida la ecuación de la recta de mínimos cuadrados, se graficó esta junto a los intervalos de confianza y predicción del modelo. y se llevó a cabo un análisis de residuales.
  • Visualmente podría parecer que nuestro modelo es bueno, pero realmente no se alcanza a ver todos los valores, varios de estos son valores extremos que afectan nuestros resultados e hipótesis, y son develados en los valores obtenidos en las pruebas de normalidad, y en los diagramas de caja y bigote. Se puede observar también cierta tendencia en los residuos.

Introducción a la probabilidad

Probabilidad

Probabilidad es el lenguaje matemático para cuantificar la incertidumbre. -Wasserman

  1. Terminología de probabilidad: espacio de resultados, eventos, funciones de probabilidad, etcétera.
  2. Interpretación frecuentista de la probabilidad.
  3. Probabilidad condicional y su relación con la independencia.

Probabilidad clásica

Es la razón entre el numero de casos (sucesos) favorables, y el numero total de casos (sucesos) posibles, siempre que nada obligue a creer que algunos de estos sucesos debe tener preferencia a los demás, lo que hace que sean igualmente posibles, es decir:

Probabilidad Clásica

Probabilidad frecuencial

Conocida también como probabilidad empírica es la que se fundamenta en los datos que se obtienen por encuestas, preguntas, etc. Se le llama probabilidad frecuencial al calculo de la probabilidad de un evento y la frecuencia relativa del mismo. Para determinar la probabilidad frecuencial, se repite un numero determinado de veces, posteriormente se registran los datos y se divide el numero de veces que se obtiene del resultado que nos intereza entre el numero de veces que se realizo el experimento.

Probabilidad frecuencial

Distribuciones de probabilidad

Funciones en R En R, cada distribución de probabilidad se nombre mediante una palabra clave o alias. Las palabras clave para las distribuciones más importantes son:

  • Distribución Alias
  • Distribución binomal: binom
  • Distribución de Poisson: pois
  • Distribución normal: norm
  • Distribución exponencial: exp
  • Distribución t de Student: t
  • Distribución Chi^2 (\(\chi^2\)): chisq
  • Distribución F: f
$$ \[\begin{array}{l|l|l|c} \text{Función} & \text{Significado} & \text{Uso}& \text{Observación}\\ \hline p & \text{probability} & \text{Calcula probabilidades acumuladas (cdf)} & \text{---}\\ q & \text{quantile} & \text{Calcula cuantiles (percentiles)} & \text{---}\\ d & \text{density} & \text{Calcula probabilidades puntuales} & \text{Sólo uso gráfico en el caso continuo}\\ r & \text{random} & \text{Genera datos aleatorios según una distribución específica} & \text{---}\\ \hline \end{array}\]

$$

Distribución normal

Distribución normal

  • e.g. Si \(X\) es una variable aleatoria, con distribución normal de media 3, y su desviación típica (o estándar) es de 0.5, la probabilidad de que \(X\) sea menor que 3.5 se calcula en R de esta forma:
pnorm(3.5, mean=3, sd=0.5) #standar deviation
## [1] 0.8413447
  • Para calcular el cuantil 0.7 de una variable aleatoria (v.a.) normal estándar Z, es decir, un valor x tal que
qnorm(0.7)
## [1] 0.5244005
  • Para calcular el mismo cuantil pero para variable aleatoria (v.a.) normal de media 0 y una desviación típica (DT) 0.5
qnorm(0.7, sd=0.5)
## [1] 0.2622003

El valor \(z_\alpha\) que aparece en muchas de las fórmulas para intervalos y constrastes se obtiene con el qnorm(1-alfa). Algunos ejemplos:

qnorm(0.975)
## [1] 1.959964
  • Para generar una muestra de tamaño 100 de una población normal de media 10 y desviación típica 1 (y guardarla en un vector x):
x <- rnorm(100, mean=10, sd=1)
x
##   [1]  8.991208 10.972581  9.419005  8.661966  7.983963 10.020179 10.416703
##   [8] 10.394457 10.138795  9.752640  9.629059  9.206407  8.774111  7.510129
##  [15]  9.241996 10.102448  8.689850  9.695929 10.043491 10.322634  9.130006
##  [22] 10.265580  8.434277 11.011981 12.087332  9.630055 10.082904 10.060604
##  [29] 10.511089 10.023813 10.522384  8.683504  9.104795 11.863188 10.031130
##  [36]  9.400299 10.946775 11.205842  9.445767  9.069729  9.589248  9.381560
##  [43]  8.441591  9.004911 10.324239  9.284710 10.050691 10.036662  8.691383
##  [50] 10.735885  8.206879 12.674012  7.794877 10.447133 11.606072  9.272793
##  [57]  9.954937  8.770654 10.914672 11.828801 10.395523  8.681999  8.730656
##  [64]  9.863029 11.621190  9.342267 10.416701  9.256241 10.606402  9.527511
##  [71] 10.232569 10.547228  8.930203 12.120073 10.129430 10.159922  9.601996
##  [78] 11.014874  9.867278  9.929564  9.689129  9.615031  9.506951  9.620527
##  [85] 10.357458 10.014220 10.008331  9.079707 10.830875 10.212791  9.244030
##  [92]  9.895715 11.229098  9.882216  9.893210  9.631575  9.620908 11.186836
##  [99] 10.268753  9.714935
  • Para estimar el promedio de x
mean(x)
## [1] 9.889673
  • Histograma de frecuencias
hist(x)

  • Gráfico de cajas y bigote
boxplot(x)

  • Histograma de la muestra (normalizado para que la suma de las áreas de los rectángulos sea 1) junto con la densidad de la población
hist(x, freq=FALSE) #freq=FALSE, para que el área del histograma sea 1, es decir, lo estamos normalizando
curve(dnorm(x, mean=10, sd=1), from=7, to=13, add=TRUE)

Distribución binomial
x <- rbinom(20,1,0.5)  # r: random
x
##  [1] 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 0
#Genera 20 observaciones con distribución B(1,0.5)
  • Conteo de éxitos (1) vs fracasos (0)
table(x)
## x
##  0  1 
##  8 12
Distribución exponencial
curve(dexp(x), from = 0, to = 10)

#Representa la densidad de probabilidades puntuales de media 1 entre 0 y 10