Los datos a importar representan las búsquedas realizadas de los términos “animal crossing” y “nintendo switch” desde el 20 de marzo de 2020 (la fecha de lanzamiento del juego) hasta el 20 de mayo del mismo año, 2 meses después. Se piensa que existe una relación entre los dos términos, puesto cuando a principios del presente año se lanzó Animal Crossing: New Horizons, este tuvo un impacto muy grande en la cultura general, pues hasta la fecha de realizada esta práctica el juego ya ha alcanzado más de 22.4 millones de copias vendidas, superando con creces las expectativas que la compañia Nintendo tenía esperadas para toda su venta en la vida útil de la consola. Esto pudo haber tenido un impacto positivo en las ventas de la consola, por eso se buscará comprobar que hay una relación entre las búsquedas de ambos términos, siendo lo opuesto la hipótesis nula..

library(pacman)# Biblioteca del geston de paquetes de otras librerías
p_load("readr","DT","prettydoc","fdth","modeest")# Se importan las demás librerías
datossp <- read_csv("switch.csv")# Se guardan en una variable los datos
## Warning in gzfile(file, mode): cannot open compressed file 'C:/Users/adolf/
## AppData/Local/Temp/RtmpINZwDb\file3ae825861dba', probable reason 'No such file
## or directory'
## 
## -- Column specification --------------------------------------------------------
## cols(
##   Fecha = col_character(),
##   animalCrossing = col_double(),
##   nintendoSwitch = col_double()
## )
# Visualización de los datos en una tabla
datatable(datossp)

Primer repaso de la unidad 1 de la materia de estadística aplicada

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

distA <- fdt(datossp$animalCrossing, breaks="Sturges")
distN <- fdt(datossp$nintendoSwitch, breaks="Sturges")
distA
##   Class limits  f   rf rf(%) cf  cf(%)
##  [38.61,45.07)  5 0.08  8.06  5   8.06
##  [45.07,51.53) 14 0.23 22.58 19  30.65
##  [51.53,57.99) 15 0.24 24.19 34  54.84
##  [57.99,64.45) 10 0.16 16.13 44  70.97
##  [64.45,70.91)  7 0.11 11.29 51  82.26
##  [70.91,77.37)  8 0.13 12.90 59  95.16
##  [77.37,83.83)  3 0.05  4.84 62 100.00
distN
##     Class limits  f   rf rf(%) cf  cf(%)
##   [44.55,51.316)  8 0.13 12.90  8  12.90
##  [51.316,58.081) 18 0.29 29.03 26  41.94
##  [58.081,64.847) 11 0.18 17.74 37  59.68
##  [64.847,71.613)  9 0.15 14.52 46  74.19
##  [71.613,78.379) 10 0.16 16.13 56  90.32
##  [78.379,85.144)  5 0.08  8.06 61  98.39
##   [85.144,91.91)  1 0.02  1.61 62 100.00
#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(distA, type="fh") # histograma de frecuencia absoluta

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

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

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

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

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

Polígono de distribución de frecuencia

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

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

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

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

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

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

Tanto los histogramas como los polígonos en este caso nos indican que las observaciones de ambos términos de búsqueda tienden a estar un poco más cerca de intervalos con valores inferiores que incluso en la media. ## Medidas de tendencia central

Media

mean(datossp$animalCrossing)
## [1] 58.48387
mean(datossp$nintendoSwitch)
## [1] 63.25806

Mediana

median(datossp$animalCrossing)
## [1] 55.5
median(datossp$nintendoSwitch)
## [1] 61

Moda

mfv(datossp$animalCrossing, method="discrete")
## [1] 51 58
mfv(datossp$nintendoSwitch, method = "discrete")
## [1] 54 56

Ordenar datos de menor a mayor

sort(datossp$animalCrossing)
##  [1] 39 42 43 43 44 46 46 46 48 48 49 50 50 50 51 51 51 51 51 52 52 52 53 53 53
## [26] 53 54 55 55 55 55 56 56 57 58 58 58 58 58 62 62 62 63 64 65 65 67 68 69 69
## [51] 70 71 72 73 74 75 76 76 77 81 82 83
sort(datossp$nintendoSwitch)
##  [1] 45 46 47 50 50 50 51 51 52 52 54 54 54 54 55 55 55 56 56 56 56 57 57 57 58
## [26] 58 59 60 60 60 61 61 62 62 63 64 64 65 65 66 66 68 68 68 69 70 72 73 74 74
## [51] 76 76 77 78 78 78 79 79 83 83 84 91

Cuantiles

summary(datossp$animalCrossing)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   39.00   51.00   55.50   58.48   66.50   83.00
summary(datossp$nintendoSwitch)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   45.00   55.00   61.00   63.26   71.50   91.00

Como se menciona, las búsquedas se encuentran lejos de los intervalos con muchas observaciones en ambos casos. Esto puede deberse a un despegue inicial colosal en la popularidad del juego y por consiguiente de la consola, para ir estabilizándose con el paso de las semanas poco a poco hasta a un nivel relativamente normal. Esto es sobretodo observable en el resumen final, ya que es fácil notar que los primeros tres cuartiles se encuentran relativamente cerca entre sí a comparación del último cuartil.

Valores máximos y mínimos

# Valores máximos y mínimos para las búsquedas de Nintendo Switch en el intervalo mencionado
busqAMax <- max(datossp$animalCrossing)
busqAMin <- min(datossp$animalCrossing)
busqAMax
## [1] 83
busqAMin
## [1] 39
# Valores máximos y mínimos para las búsquedas de Nintendo Switch en el intervalo mencionado
busqMaxN <- max(datossp$nintendoSwitch)
busqMinN <- min(datossp$nintendoSwitch)
busqMaxN
## [1] 91
busqMinN
## [1] 45

Gráfico (diagrama) de caja y bigote

boxplot(datossp$animalCrossing)

boxplot(datossp$nintendoSwitch)

En estas gráficas se vuelve más evidente todo lo mencionado anteriormente, aunque cabe mencionaar que no hay señal de valores atípicos en los datos.

Medidas de dispersión

Amplitud (rango, alcance)

# Amplitud para las búsquedas de Animal Crossing
amp <- (busqAMax - busqAMin)

# Amplitud para las búsquedas de Nintendo Switch
ampN <- (busqMaxN - busqMinN)

amp
## [1] 44
ampN
## [1] 46
# Ambos términos de búsqueda poseen rangos o amplitudes similares

Varianza

var(datossp$animalCrossing)
## [1] 119.926
var(datossp$nintendoSwitch)
## [1] 117.7356

Desviación estándar

sd(datossp$animalCrossing)
## [1] 10.95107
sd(datossp$nintendoSwitch)
## [1] 10.8506

Para este caso de estudio, se puede decir que tanto la varianza y desviación estándar son bastante altas e indican que los valores no se acercan demasiado a la media.

Análisis de correlación

Correlación pearson

ac <- datossp$animalCrossing
ns <- datossp$nintendoSwitch
nintendo <- data.frame(ac, ns)

cor(nintendo)
##           ac        ns
## ac 1.0000000 0.7602066
## ns 0.7602066 1.0000000

Diagramas de dispersión

pairs(nintendo)

Regresión lineal simple

regresion <- lm(ns ~ ac, data = nintendo)
summary(regresion)
## 
## Call:
## lm(formula = ns ~ ac, data = nintendo)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -13.3742  -5.1600   0.2621   4.2233  19.1323 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  19.2061     4.9434   3.885 0.000258 ***
## ac            0.7532     0.0831   9.064 7.71e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.108 on 60 degrees of freedom
## Multiple R-squared:  0.5779, Adjusted R-squared:  0.5709 
## F-statistic: 82.15 on 1 and 60 DF,  p-value: 7.712e-13

Recta de minimos cuadrados

Ecuación de la recta

\[ y = 19.2061 + 0.7532x\] Con un grado de correlación de aproximadamente 0.76, se puede decir que efectivamente estas variables guardan cierta relación entre sí, pero no necesariamente que una causa a la otra, ya que probablemente ambas se deban a un tercer suceso que esté propiciando el incremento en ambas búsquedas.

Predicción

sort(ac)# Ordenar de menor a mayor los datos de búsquedas de Animal Crossing
##  [1] 39 42 43 43 44 46 46 46 48 48 49 50 50 50 51 51 51 51 51 52 52 52 53 53 53
## [26] 53 54 55 55 55 55 56 56 57 58 58 58 58 58 62 62 62 63 64 65 65 67 68 69 69
## [51] 70 71 72 73 74 75 76 76 77 81 82 83
sort(ns)# Ordenar de menor a mayor los datos de búsquedas de Nintendo Switch
##  [1] 45 46 47 50 50 50 51 51 52 52 54 54 54 54 55 55 55 56 56 56 56 57 57 57 58
## [26] 58 59 60 60 60 61 61 62 62 63 64 64 65 65 66 66 68 68 68 69 70 72 73 74 74
## [51] 76 76 77 78 78 78 79 79 83 83 84 91
nuevas.ac <- data.frame(ac = seq(0, 100))
nuevas.ns <- data.frame(ns = seq(0, 100))

# Predecir las búsquedas de Animal Crossing
predict(regresion, nuevas.ac)
##        1        2        3        4        5        6        7        8 
## 19.20613 19.95936 20.71259 21.46583 22.21906 22.97229 23.72552 24.47875 
##        9       10       11       12       13       14       15       16 
## 25.23199 25.98522 26.73845 27.49168 28.24492 28.99815 29.75138 30.50461 
##       17       18       19       20       21       22       23       24 
## 31.25784 32.01108 32.76431 33.51754 34.27077 35.02401 35.77724 36.53047 
##       25       26       27       28       29       30       31       32 
## 37.28370 38.03693 38.79017 39.54340 40.29663 41.04986 41.80310 42.55633 
##       33       34       35       36       37       38       39       40 
## 43.30956 44.06279 44.81602 45.56926 46.32249 47.07572 47.82895 48.58219 
##       41       42       43       44       45       46       47       48 
## 49.33542 50.08865 50.84188 51.59511 52.34835 53.10158 53.85481 54.60804 
##       49       50       51       52       53       54       55       56 
## 55.36128 56.11451 56.86774 57.62097 58.37420 59.12744 59.88067 60.63390 
##       57       58       59       60       61       62       63       64 
## 61.38713 62.14037 62.89360 63.64683 64.40006 65.15329 65.90653 66.65976 
##       65       66       67       68       69       70       71       72 
## 67.41299 68.16622 68.91945 69.67269 70.42592 71.17915 71.93238 72.68562 
##       73       74       75       76       77       78       79       80 
## 73.43885 74.19208 74.94531 75.69854 76.45178 77.20501 77.95824 78.71147 
##       81       82       83       84       85       86       87       88 
## 79.46471 80.21794 80.97117 81.72440 82.47763 83.23087 83.98410 84.73733 
##       89       90       91       92       93       94       95       96 
## 85.49056 86.24380 86.99703 87.75026 88.50349 89.25672 90.00996 90.76319 
##       97       98       99      100      101 
## 91.51642 92.26965 93.02289 93.77612 94.52935

Intervalos de confianza

confint(regresion)
##                 2.5 %    97.5 %
## (Intercept) 9.3179241 29.094334
## ac          0.5869994  0.919465
nuevas.ac <- data.frame(ac=seq(0, 100))

#Recta ajustada al gráfico de dispersión
plot(nintendo$ac, nintendo$ns, xlab = "Animal Crossing", ylab="Nintendo Switch")
abline(regresion)

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

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

Los intervalls de confianza no son muy grandes, lo cual es bueno, pero pese a ello, no todos los datos se encuentran dentro de esos intervalos de confianza, sino que se encuentra dentro de los intervalos de predicción realizados por el modelo, teniendo únicamente 2 valores por encima y considerados como atípicos.

Análisis de residuales

##" Análisis ANOVA (Análisis de varianza)

anova(regresion)
## Analysis of Variance Table
## 
## Response: ns
##           Df Sum Sq Mean Sq F value    Pr(>F)    
## ac         1 4150.5  4150.5  82.151 7.712e-13 ***
## Residuals 60 3031.4    50.5                      
## ---
## 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

  • Como no es posible identificar patrones especiales, se asume que tanto la homocedasticidad como la linealidad resultan hipótesis razonables.

  • La hipótesis de normalidad se suele comprobar mediante un QQ plot de los residuos. El siguiente código sirve para obtenerlo:

qqnorm(residuos)
qqline(residuos)

Shapiro-wilk

shapiro.test(residuos)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.97672, p-value = 0.2859

Redacción personal

Con todo lo anterior realizado, se puede inferir que el modelo es hasta cierto punto confiable, sin embargo, no hay suficientes datos ni se ha comparado con otras variables como para indicar que la causa del aumento de búsquedas de “nintendo switch” es causa de incremento en “animal crossing”. Muy posiblemente, la verdadera razón radique en el hecho que el juego tenga temática que incentive a la interacción social entre jugadores, por lo cual en tiempos de aislamiento debido a la pandemia que transcurre desde hace 8 meses hasta el día de hoy esa interacción se propicia muchísimo, al darse de una manera poco común y aprovechando el tiempo libre de las personas.

Introducción a la probabilidad

Probabilidad clásica

La probabilidad clásica o teórica, es referente al cociente de los eventos de los que se desea saber su posibilidad entre los casos posibles. Para que esto se tome como correcto, se debe asumir que todos los casos o eventos son equiprobales, es decir, son igualmente posibles de suceder.

Probabilidad distribuida

Se refiere a la forma en que se espera que las probabilidades varían según los datos que se tienen y los análisis realizados. Algunos tipos son binomial, normal y exponencial.

Distribuciones de frecuencia

Es el acomodo en forma de tabla de las distintas frecuencias con que se repiten los intervalos o clases en los datos de la variable en cuestión, ya sea absoluta, relativa o acumulada.

Distribución normal

Es la distribución de los datos en la cual la mayoría de casos poseen valores cercanos a la media, dejando un porcentaje pequeño, aproximadamente del 5% de la población por debajo o arriba de las deviaciones estándar de la media. Su histograma tiene forma de campana.

Ejemplo de como una tabla de distribución normal

Distribución binomial

Se refiere al tipo de probabilidad en la cual solo existen dos sucesos y estos son opuestos entre sí, por lo que si el resultado es uno de ellos, obviamente no será el otro resultado. Muerto o vivo, caliente o frío, enfermo o saludable son ejemplos de estos casos anteriormente mencionados.

Ejemplo de como una tabla de distribución de binomial

Distribución exponencial

Es un tipo de distribución en la cual la es necesario conocer el tiempo transcurrido hasta que suceda ese evento buscado.

Ejemplo de como una tabla de distribución de exponencial