Cargando el conjunto de datos.

Simularemos una data de 1000 casos con las siguientes variables: PBI, IDH, DEM y ECON.

Se puede observar dos variables numéricas, una variable categórica y una dicotómica.

set.seed(123)
data<-data.frame(
  "pbi" = rnorm(1000, mean=5, sd=.7),
  "idh" = rnorm(1000, mean=21, sd=5),
  "dem" = as.character(rbinom(1000,5,0.7)),
  "econ"= as.character(rbinom(1000,1,0.5))
)

Explorando el conjunto de datos

mean(data$pbi)
## [1] 5.01129
mean(data$idh)
## [1] 21.21233
#install.packages("memisc")
library(memisc)
## Loading required package: lattice
## Loading required package: MASS
## 
## Attaching package: 'memisc'
## The following objects are masked from 'package:stats':
## 
##     contr.sum, contr.treatment, contrasts
## The following object is masked from 'package:base':
## 
##     as.array
codebook(data)
## ================================================================================
## 
##    pbi
## 
## --------------------------------------------------------------------------------
## 
##    Storage mode: double
## 
##         Min:  3.033
##         Max:  7.269
##        Mean:  5.011
##    Std.Dev.:  0.694
##    Skewness:  0.065
##    Kurtosis: -0.074
## 
## ================================================================================
## 
##    idh
## 
## --------------------------------------------------------------------------------
## 
##    Storage mode: double
## 
##         Min:  5.761
##         Max: 37.952
##        Mean: 21.212
##    Std.Dev.:  5.046
##    Skewness: -0.011
##    Kurtosis: -0.066
## 
## ================================================================================
## 
##    dem
## 
## --------------------------------------------------------------------------------
## 
##    Storage mode: character
## 
##      tab: NULL
##    descr: c("\"0\"", "\"5\"")
## 
## ================================================================================
## 
##    econ
## 
## --------------------------------------------------------------------------------
## 
##    Storage mode: character
## 
##      tab: NULL
##    descr: c("\"0\"", "\"1\"")
#describe(data)

Prueba T para una muestra - Numérica

Two sided = dos lados de la distribución

H0= El valor de prueba (valor cero) es igual a la media en la población.

P>0.05 - No significativo, acepta la H0 P<0.05 - Significativo, rechaza la H0

t.test(data$idh, alternative="two.sided", conf.level = 0.95)
## 
##  One Sample t-test
## 
## data:  data$idh
## t = 132.87, df = 999, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  20.89905 21.52560
## sample estimates:
## mean of x 
##  21.21233

Conclusión: Rechazamos la hipótesis nula, por lo tanto la media no es igual a cero.

Comparación con medias definidas previamente

¿Podemos afirmar que la media de la población es igual a 22?

H0= El valor de la media es igual a 22

P>0.05 - No significativo, acepta la H0 P<0.05 - Significativo, rechaza la H0

t.test(data$idh, alternative="two.sided", conf.level = 0.95, mu=22)
## 
##  One Sample t-test
## 
## data:  data$idh
## t = -4.934, df = 999, p-value = 9.435e-07
## alternative hypothesis: true mean is not equal to 22
## 95 percent confidence interval:
##  20.89905 21.52560
## sample estimates:
## mean of x 
##  21.21233

Conclusión: Observando el valor del P-value se rechaza la Hipótesis nula, por lo tanto el valor de la media no es igual a 25

Prueba Binomial - categóricas

Preguntamos por la proporción de una variable a un determinado nivel.

A partir de la muestra, es posible afirmar que: ¿La proporción de categoría 0 es mayor a la categoría 1 en la población?

#H0: Proporción de categoría 0 es igual al 50%

tabla<-table(data$econ)
tabla
## 
##   0   1 
## 507 493
binom.test(507,1000, 0.5, conf.level = 0.95)
## 
##  Exact binomial test
## 
## data:  507 and 1000
## number of successes = 507, number of trials = 1000, p-value = 0.681
## alternative hypothesis: true probability of success is not equal to 0.5
## 95 percent confidence interval:
##  0.4755315 0.5384271
## sample estimates:
## probability of success 
##                  0.507

Conclusión: Se acepta la H0, por lo tanto la proporción de 0 es igual al 50% y en 1 también.

En el caso que quiera aplicar otras proporciones, es necesario cambiar el tercer argumento por la proporción deseada.

Ejemplo:

A partir de la muestra, ¿ Podemos afirmar que la categoría 0, representa al 40% de la población?

binom.test(507,1000, 0.3, conf.level = 0.95)
## 
##  Exact binomial test
## 
## data:  507 and 1000
## number of successes = 507, number of trials = 1000, p-value < 2.2e-16
## alternative hypothesis: true probability of success is not equal to 0.3
## 95 percent confidence interval:
##  0.4755315 0.5384271
## sample estimates:
## probability of success 
##                  0.507

Prueba de Chi2

Comprueba si la distribución observada es igual a la distribución teórica (uniforme).

#H0: La distribución es uniforme (todas las categorías son iguales)

tabla1<-table(data$dem) #asume proporciones similares.
chisq.test(tabla1)
## 
##  Chi-squared test for given probabilities
## 
## data:  tabla1
## X-squared = 693.37, df = 5, p-value < 2.2e-16

#Conclusión: se rechaza la H0 de que la variable tenga una distribución uniforme.

Definiendo otras proporciones en la distribución

#Creando una variable de nombre dem2:

data$dem2[data$dem == "0" ] <- 1
data$dem2[data$dem == "1" ] <- 1
data$dem2[data$dem == "2" ] <- 1
data$dem2[data$dem == "5" ] <- 1
data$dem2[data$dem == "3" ] <- 2
data$dem2[data$dem == "4" ] <- 3

tabla2<-table(data$dem2)

#H0: La variable tiene la siguiente distribución de un 1/3 para cada categoría:

res <- chisq.test(tabla2, p = c(1/3, 1/3,1/3))
res
## 
##  Chi-squared test for given probabilities
## 
## data:  tabla2
## X-squared = 4.298, df = 2, p-value = 0.1166

#Conclusión: Se acepta la Ho, por lo tanto, la variable Dem2 tiene una distribución de 1/3 para cada categoría.

Pruebas de normalidad

Hipótesis:

H0: La muestra proviene de una distribución normal H1: La muestra no proviene de una distribución normal

Nivel de significancia:

Si P< Alfa se rechaza H0 Si P>= Alfa no se rechaza H0

Shapiro Wilk (datas pequeñas - 50 casos)

shapiro.test(data$pbi)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$pbi
## W = 0.99838, p-value = 0.4765

Kolgomorov Smirnov (datas grandes + 50 casos)

#install.packages("nortest")
library(nortest)
lillie.test(data$pbi)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  data$pbi
## D = 0.014963, p-value = 0.8484

Otras pruebas para medir la normalidad:

Anderson Darling

ad.test(data$pbi)
## 
##  Anderson-Darling normality test
## 
## data:  data$pbi
## A = 0.29653, p-value = 0.592

Shapiro Francia

sf.test(data$pbi)
## 
##  Shapiro-Francia normality test
## 
## data:  data$pbi
## W = 0.99867, p-value = 0.6031