¿Qué es y porqué necesitamos de la estadística?

La Estadística es la parte de las Matemáticas que se encarga del estudio de una determinada característica en una población, recogiendo los datos, organizándolos en tablas, representándolos gráficamente y analizándolos para sacar conclusiones de dicha población.

Necesitamos de la estadística porque nos ayuda a tomar decisiones cuando tenemos incertidumbre con los datos. Porque nos ayuda a entender el comportamiento de ellos y como representarlos.

Es necesario la estadística en ciencias ambientales porque en nuestro andar académico siempre se obtendrán datos en campo o históricos para su estudio y serán necesarios analizarlo con métodos estadísticos para una mejor comprensión y decisión.

Técnicas de muestreo

Utilizaremos la base de datos iris que se encuentra precargada por default en r

 data("iris")
 head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
 summary(iris)
  Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
 Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
 Median :5.800   Median :3.000   Median :4.350   Median :1.300  
 Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
 Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
       Species  
 setosa    :50  
 versicolor:50  
 virginica :50  
                
                
                

Muestreo aleatorio simple

En un muestreo aleatorio simple todos los individuos tienen la misma probabilidad de ser seleccionados. La seleccion de la muestra puede realizarse a traves de cualquier mecanismo probabilistico en el que todos los elementos tengan las mismas opciones de salir.

La función es ‘sample()’, el cual tiene como primer argumento el vector de datos, luego la cantidad a muestrear y por último un T/F si queremos con reemplazo o no.

Ejemplos

1.- Realizar un muestreo aleatorio simple sin reemplazo obteniendo 60 muestras de la variable Sepal.Length. Primero encontramos los indices en un muestreo aleatorio simple sin reemplazo

  indices.muestra<- sample(1:nrow(iris),size=60,replace=F) #Ver, que lo que se obtiene son los indices de la base de datos
  indices.muestra
 [1] 117  96  54   9 125  39  67  85 113  80  89  77  60 110  62  92  20 122  19
[20] 119  35  97 126 143 116 121  88  81 138  37  64  94  57 100  93  73  78 132
[39]  36  84 145   5  86  34  71 111  75 134  95 106  63  58  15  30  38   7  28
[58] 141  14 104

Posteriormente obtenemos los valores de los indices aleatorizados

  Muestra.SepalL<- iris$Sepal.Length[indices.muestra]
  Muestra.SepalL
 [1] 6.5 5.7 5.5 4.4 6.7 4.4 5.6 5.4 6.8 5.7 5.6 6.8 5.2 7.2 5.9 6.1 5.1 5.6 5.7
[20] 7.7 4.9 5.7 7.2 5.8 6.4 6.9 6.3 5.5 6.4 5.5 6.1 5.0 6.3 5.7 5.8 6.3 6.7 7.9
[39] 5.0 6.0 6.7 5.0 6.0 5.5 5.9 6.5 6.4 6.3 5.6 7.6 6.0 4.9 5.8 4.7 4.9 4.6 5.2
[58] 6.7 4.3 6.3

Si lo que queremos es realizar un muestreo aleatorio simple con repetición unicamente cambiamos la F por T, como en el siguiente ejemplo

2.- Realizar un muestreo aleatorio simple con repetición de la variable Petal.width de 50 muestras.

Nuevamente buscamos los indices por el muetreo de la siguiente forma

  indices.muestra<-sample(1:nrow(iris),50,T) # Al decir con reemplazo no necesariamente se va a repetir sino que puede ser que si o puede ser que ninguno se repita.
  indices.muestra
 [1]  32  60  92  50 104  16  43  54  83 114  43  79  97  23  25  42  57  98  37
[20] 105  94   2 132  22  56  69  74  20 143  67  35 144  50  86  72 132  21  11
[39]  67  87  18 140  93  22 142  31 106 100  15  53
  Muestra.PetalW<- iris$Petal.Width[indices.muestra]

Muestreo aleatorio sistemático

Consistente en escoger un individuo inicial de forma aleatoria entre la población y, a continuación, seleccionar para la muestra a cada enésimo individuo disponible en el marco muestral.

El muestreo sistemático es un proceso muy simple y que sólo requiere la elección de un individuo al azar. El resto del proceso es trivial y rápido. Los resultados que obtenemos son representativos de la población, de forma similar al muestreo aleatorio simple,

Proceso

De forma concreta, el proceso que seguiríamos en un muestreo sistemático sería el siguiente:

  1. Elaboramos una lista ordenada de los N individuos de la población, lo que sería el marco muestral.

  2. Dividimos el marco muestral en n fragmentos, donde n es el tamaño de muestra que deseamos. El tamaño de estos fragmentos será: k=N/n, donde k recibe el nombre de intervalo o coeficiente de elevación.

  3. Número de inicio: obtenemos un número aleatorio entero A, menor o igual al intervalo. Este número corresponderá al primer sujeto que seleccionaremos para la muestra dentro del primer fragmento en que hemos dividido la población.

  4. Selección de los n-1 individuos restantes: Seleccionamos los siguientes individuos a partir del individuo seleccionado aleatoriamente, mediante una sucesión aritmética, seleccionando a los individuos del resto de fragmentos en que hemos dividido la muestra que ocupan la misma posición que el sujeto inicial. Esto equivale a decir que seleccionaremos los individuos:

A, A + K, A + 2K, A + 3K, …., A + (n-1)K

Ejemplos 1.- Supongamos que tenemos un marco muestral de 5000 individuos y deseamos obtener una muestra de 100 de ellos.

   Marco.muestral<- 1:5000
   N<- 5000
   n<- 100
   k<- N/n
   A<- sample(1:k,1,F)
   indices<- seq(from=A,to=N,by=k)
   Muestra<- Marco.muestral[indices]
   Muestra
 [1]   11   61  111  161  211  261  311  361  411  461  511  561  611  661  711
[16]  761  811  861  911  961 1011 1061 1111 1161 1211 1261 1311 1361 1411 1461
[31] 1511 1561 1611 1661 1711 1761 1811 1861 1911 1961 2011 2061 2111 2161 2211
[46] 2261 2311 2361 2411 2461 2511 2561 2611 2661 2711 2761 2811 2861 2911 2961
[61] 3011 3061 3111 3161 3211 3261 3311 3361 3411 3461 3511 3561 3611 3661 3711
 [ reached getOption("max.print") -- omitted 25 entries ]

2.- Realizar un muestreo aleatorio sistemático de la base de datos Iris y la variable Sepal.Width, tomando una muestra de 80 valores

  Total<- length(iris$Sepal.Width)  #Agrego una variable que me proporcione el valor total de sepal.width
  Marco.muestral<- iris$Sepal.Width
  N<- Total
  n<- 60
  k<- N/n
  A<- sample(1:k,1,F)
  indices<- seq(A,N,by=k) 
  Muestra<- Marco.muestral[indices]
  Muestra
 [1] 3.0 3.1 3.4 2.9 3.4 3.0 3.9 3.8 3.7 3.3 3.4 3.4 3.4 4.2 3.5 3.0 2.3 3.5 3.8
[20] 3.7 3.2 2.3 3.3 2.9 3.0 2.9 3.0 2.2 2.8 2.8 2.8 2.9 2.4 2.7 3.1 3.0 3.0 2.3
[39] 2.9 2.5 2.7 2.9 2.5 2.5 2.7 2.5 3.0 2.6 2.8 2.7 2.8 2.8 3.8 2.8 3.4 3.0 3.1
[58] 3.2 2.5 3.4

Muestreo aleatorio estratificado

Consiste en considerar categorías típicas diferentes entre sí (estratos) que poseen gran homogeneidad respecto a alguna característica (se puede estratificar, por ejemplo, según la profesión, el municipio de residencia, el sexo, el estado civil, etc.). Lo que se pretende con este tipo de muestreo es asegurarse de que todos los estratos de interés estarán representados adecuadamente en la muestra. Cada estrato funciona independientemente, pudiendo aplicarse dentro de ellos el muestreo aleatorio simple o el estratificado para elegir los elementos concretos que formarán parte de la muestra. Es utilizado cuando tenemos grupos homogéneos

Ejemplos

1.- Realizar el muestreo estratificado sin reemplazo de la base de datos iris utilizando como estratos a la variable Species, obteniendo muestras de 20,20 y 15 por cada estrato.

   library( sampling )
   estratos <- strata( iris, stratanames = c("Species"), size = c(20,20,15), method = "srswor" ) #El método srswor nos indica que es sin reemplazo, el size nos indica las muestras de cada estrato y no debe ser menor o mayor a la cantidad de estratos
   iris.muestreado <- getdata( iris, estratos ) #obtenemos las muestras de cada estrato
   iris.muestreado
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species ID_unit Prob
2           4.9         3.0          1.4         0.2  setosa       2  0.4
3           4.7         3.2          1.3         0.2  setosa       3  0.4
13          4.8         3.0          1.4         0.1  setosa      13  0.4
16          5.7         4.4          1.5         0.4  setosa      16  0.4
18          5.1         3.5          1.4         0.3  setosa      18  0.4
24          5.1         3.3          1.7         0.5  setosa      24  0.4
25          4.8         3.4          1.9         0.2  setosa      25  0.4
26          5.0         3.0          1.6         0.2  setosa      26  0.4
28          5.2         3.5          1.5         0.2  setosa      28  0.4
   Stratum
2        1
3        1
13       1
16       1
18       1
24       1
25       1
26       1
28       1
 [ reached 'max' / getOption("max.print") -- omitted 46 rows ]

2.- Realizar el muestreo estratificado con reemplazo de la base de datos iris utilizando como estratos a la variable Species, obteniendo muestras de 10,30 y 20 por cada estrato.

   library( sampling )
   estratos <- strata(iris, stratanames = c("Species"), size = c(10,30,20), method = "srswr" ) #el metodo srswr nos indica que es con reemplazo
   iris.muestreado <- getdata(iris, estratos)
   iris.muestreado
    Sepal.Length Sepal.Width Petal.Length Petal.Width Species ID_unit      Prob
1            5.1         3.5          1.4         0.2  setosa       1 0.1829272
1.1          5.1         3.5          1.4         0.2  setosa       1 0.1829272
8            5.0         3.4          1.5         0.2  setosa       8 0.1829272
12           4.8         3.4          1.6         0.2  setosa      12 0.1829272
14           4.3         3.0          1.1         0.1  setosa      14 0.1829272
16           5.7         4.4          1.5         0.4  setosa      16 0.1829272
27           5.0         3.4          1.6         0.4  setosa      27 0.1829272
28           5.2         3.5          1.5         0.2  setosa      28 0.1829272
33           5.2         4.1          1.5         0.1  setosa      33 0.1829272
    Stratum
1         1
1.1       1
8         1
12        1
14        1
16        1
27        1
28        1
33        1
 [ reached 'max' / getOption("max.print") -- omitted 51 rows ]

Muestreo por conglomerados

El muestreo por conglomerados consiste en seleccionar aleatoriamente un cierto numero de conglomerados (el necesario para alcanzar el tamaño muestral establecido) y en investigar después todos los elementos pertenecientes a los conglomerados elegidos. Es utilizado cuando tenemos grupos heterogéneos. Las unidades hospitalarias los departamentos universitarios, una caja de determinado producto, etc., son conglomerados naturales. En otras ocasiones se pueden utilizar conglomerados no naturales como, por ejemplo, las urnas electorales. Cuando los conglomerados son áreas geográficas suele hablarse de “muestreo por áreas”. Este método es utilizado tambien cuando no es viable, o es imposible, elaborar una lista exacta de los elementos de una población. Para llevarlo a cabo, los detalles de dicha población ya deben estar agrupados en poblaciones, es decir que las listas ya deben existir, o se pueden crear.

Ejemplo

1- Un investigador decide realizar una investigación sobre México, pero dividir en grupos a toda la población del país sería difícil e impráctico. Por lo tanto, aprovecha y utiliza la separación natural por ciudades. Así, a partir de cada ciudad (o se eligen aleatoriamente las ciudades para le muestreo), elige individuos de forma aleatoria para conformar la muestra.

Organización de datos, tablas y gráficas

En estadística y en especial en la programación en R es muy importante tener los datos almacenados como tablas o como columnas, es por eso que, es muy importante colocar en Excel o algún otro programa los datos en forma de columna. El lenguaje R, utiliza la estructura dataframe para almacenar de esa forma. Y debemos saber leer los archivos de tipo Excel, texto o cvs para poder cargar nuestros datos a R y comenzar a trabajar con ellos. Tambien otra estructura útil para trabajar en estadistica con R es la estructura Tabla que es útil para obtener los marginales por filas o columnas.

Ejemplos

Ejemplo 1 Ejemplo 2
Archivo no adecuado Archivo no adecuado
Archivo adecuado Archivo adecuado

Medidas de tendencia central

Las medidas de tendencia central son medidas estadísticas que pretenden resumir en un solo valor a un conjunto de valores. Representan un centro en torno al cual se encuentra ubicado el conjunto de los datos. Las medidas de tendencia central más utilizadas son: media, mediana y moda.

Para conocer las funciones de estas medidas utilizaremos el siguiente archivo que cargaremos en R.

   url <- 'http://cc.sisal.unam.mx/Guias/ASAP.csv'
datos <- read.csv(file=url, header=T)
head(datos)  # Para ver el encabezado de la base de datos
  Estacion L.T Bactina   E1Fa   Rpl7 Sexo
1    E6-T1 3.4  23.025 25.060 18.720    M
2    E6-T1 2.0  23.775 21.535 18.215    H
3    E6-T1 2.4  22.330 25.975 18.850    M
4    E6-T1 2.5  22.060 22.580 17.735    H
5    E6-T1 3.5  21.170 24.685 18.605    H
6    E6-T1 1.6  23.320 22.695 18.395    M

La media o promedio

Es la obtención de un número que presenta el punto central de los datos pero que no necesariamente tiene que pertenecer a ellos, el promedio puedo o no estar en los datos y se utiliza para balancear los datos, su formula es: La suma de cada uno de los valores divididos entre el total, sin embargo en R nos ahorramos todo eso porque ya tiene una función que realiza esa formula y nos arroja el resultado, esta función es: mean(x, na.rm=F)
donde:
x: Representa a los datos númericos para obtener su mediana.
na.rm: Representa una booleano que nos indica si no toma en cuenta a los na o valores nulos. por defaut es F. Este argumento se puede o no poner, o mas bien ponerlo en T cuando tenemos valores na o nans.

Ejemplos

   #Obtener el promedio de la variable Bactina
   Promedio.Bactina<- mean(datos$Bactina)
   Promedio.Bactina
[1] 23.44773
   #Obtener el promedio de la varia L.T
   Media.LT<- mean(datos$L.T)
   Media.LT
[1] 3.059375
   #Obtener el promedio de la variable Rpl7 dado que contiene un valor NA, vea que si no colocamos el na.rm=T entonces realiza el promedio con este NA y el resultado seria NA y no es lo que buscamos sino que buscamos el promedio de los números excepto el NA.
   Media.Rpl7<- mean(datos$Rpl7, na.rm=T)
   Media.Rpl7
[1] 19.62487
   #Obtener el promedio de la variable Sexo
   Media.sexo<- mean(datos$Sexo) # la variable sexo no es numerico para determinar su media
Warning in mean.default(datos$Sexo): argument is not numeric or logical:
returning NA

Ahora como podemos hacer para determinar el promedio pero agrupandolo por sexo es decir se requiere obtener el promedio de la variable Bactina pero por sexo.

   #Obtener el promedio de la variable Bactina para cada uno de los sexos.
   #Convertimos a factor la variable sexo dado que es una variable discreta
   datos$Sexo<- factor(datos$Sexo)
   #Aplicamos la función tapply colocando primero la variable a buscar su media, luego la variable discreta o factor y por último el nombre de la función a buscar que en este caso es la media.
   Media.Bac.Sexo<- tapply(datos$Bactina,datos$Sexo,mean)
   Media.Bac.Sexo
       H        M 
23.80464 23.17014 
   #Tambien podemos buscar la media de cada uno de las estaciones que estan en formato cadena(chr), realizando lo mismo que en el ejemplo anterior solo que esta vez estamos buscando el promedio de LT con respecto a cada estación.
   Media.LT.Est<- tapply(datos$L.T,datos$Estacion,mean)
   Media.LT.Est
  E10-T1   E13-T1   E19-T1   E22-T1   E25-T1    E6-T1    E9-T1 
3.366667 4.700000 3.666667 2.800000 2.581818 2.290000 2.777778 

Mediana

Es la obtención de un número que presenta el punto central de los datos, en este caso si el número de datos totales es impar entonces se toma el valor central de ellos siendo ese valor perteneciente a los datos, ahora si el número total es par entonces se toma los dos valores centrales de los datos y se toma el punto central de ellos dos (tambien se dice que es el promedio de ellos dos) por lo tanto seria el punto central de los dos centrales y este no se encontraria en los datos, claro esta que para buscar este punto central los datos deben estar ordenados de menor a mayor, a diferencia del promedio que no importaba el ordenamiento en la mediana es muy importante. su formula es:
1) Ordenar los datos de menor a mayor
2) Determinar si el total de datos es par o impar
3) Si es impar tomar el valor que quede justo enmedio de los datos.
4) Si es par tomar el promedio de los dos valores centrales.

Sin embargo en R nos ahorramos todo eso porque ya tiene una función que realiza esta formula y nos arroja el resultado, esta función es median(x, na.rm = F)
donde:
x: Representa a los datos númericos para obtener su mediana
na.rm: Representa una booleano que nos indica si no toma en cuenta a los na o valores nulos. por defaut es F. Este argumento se agregar o no, o mas bien ponerlo en T cuando tenemos valores na o nans.
La importancia de la mediana es vital cuando tenemos valores extremos de tal manera que el promedio no nos garantiza ser el valor central ya que este tipo de valores jala o sesga el valor central de los datos.

Ejemplos

    # Obtener la mediana de la variable Rpl7
    # Nuevamente ponemos el na.rm=T para que no tome en cuenta el NA al momento de hacer el cálculo
    Mediana.Rpl7<- median(datos$Rpl7, na.rm=T)
    Mediana.Rpl7
[1] 18.775
    #obtener la mediana de la variable E1fa
    Mediana.E1fa<- median(datos$E1Fa)
    Mediana.E1fa
[1] 24.6775
    #Nuevamente podemos obtener la mediana de las variables anteriores pero por sexo y por estación esto es
    Mediana.Rpl7.Sexo<- tapply(datos$Rpl7, datos$Sexo, median)
    Mediana.Rpl7.Sexo
     H      M 
18.690 18.805 
    Mediana.E1FA.Est<- tapply(datos$E1Fa,datos$Estacion,median)
    Mediana.E1FA.Est
 E10-T1  E13-T1  E19-T1  E22-T1  E25-T1   E6-T1   E9-T1 
23.6550 23.6975 24.8500 24.8825 25.7250 24.9350 23.1800 

Moda

La moda se caracteriza por encontrar el valor que más se repite en un conjunto de datos. En la moda se pueden dar las siguientes casos:
1) Unimodal (Una moda)
2) Bimodal (Dos modas)
3) Multimodal (Más de dos modas)
4) Sin moda (Ninguna moda)

Para encontrar la moda es necesario instalar el paquete modeest y puego llamarlo con library

   # Instalar el paquete modeest
   #install.packages(modeest) # En caso de tenerlo instalado no correr esta línea
   library(modeest) # carga el paquete modeest

Dentro de esta libreria se encuentra la función mvf(x, na_rm=F)
Donde:
x: Los datos a encontrar la moda.
na_rm: Representa una booleano que nos indica si no toma en cuenta a los na o valores nulos. por defaut es F. Este argumento se puede o no poner o mas bien ponerlo en T cuando tenemos valores na o nans.

Ejemplos

  #Obtener la moda de la variable L.T
  Moda.LT<- mfv(datos$L.T) # calcula la moda 
  Moda.LT
[1] 3.2
  #Obtener la moda de la variable Estacion
  Moda.estacion<- mfv(datos$Estacion)
  Moda.estacion 
[1] "E25-T1"
  #Obtener la moda para los datos de L.T de acuerdo a su sexo
  Moda.LT.Sexo<- tapply(datos$L.T,datos$Sexo,mfv)
  Moda.LT.Sexo
  H   M 
3.2 2.8 

Medidas de dispersión

Las medidas de dispersión en cambio miden el grado de dispersión de los valores de la variable. Dicho en otros términos las medidas de dispersión pretenden evaluar en qué medida los datos difieren entre sí. De esta forma, ambos tipos de medidas usadas en conjunto permiten describir un conjunto de datos entregando información acerca de su posición y su dispersión.

Desviación Estándar

La desviación estándar es un índice numérico de la dispersión de un conjunto de datos (o población). Mientras mayor es la desviación estándar, mayor es la dispersión de la población. La desviación estándar es un promedio de las desviaciones individuales de cada observación con respecto a la media de una distribución.
la función en R para hallar la desviación estándar es: sd(x, na.rm = FALSE), donde los parámetros son iguales a las funciones anteriores.

Ejemplos

   #Obtener la desviación estandar de la variable Rpl7
   sd.Rpl7<- sd(datos$Rpl7, na.rm=T)
   sd.Rpl7
[1] 2.514864
   #Obtener la desviación estándar de la variable L.T
   sd.LT<- sd(datos$L.T)
   sd.LT
[1] 0.9459553
   #Obtener la desviación estandar de la variable Bactina por sexo y por estación
   sd.Bac.sexo<- tapply(datos$Bactina, datos$Sexo, sd)
   sd.Bac.sexo
       H        M 
2.484745 1.904508 
   sd.Bac.Est<- tapply(datos$Bactina,datos$Estacion,sd)
   sd.Bac.Est
  E10-T1   E13-T1   E19-T1   E22-T1   E25-T1    E6-T1    E9-T1 
2.341902 3.334153 2.397716 1.299509 1.011166 1.273408 2.033498 
   #Obtener la desviación estandar por sexo de la variable Rpl7
   #En este caso como tenemos NA en la variable Rpl7 debemos agregar un parámetro más a la función que es na.rm=T.
   sd.Rpl7.Sexo<- tapply(datos$Rpl7,datos$Sexo,sd,na.rm=T)
   sd.Rpl7.Sexo
       H        M 
1.733131 2.959989 

Varianza

La varianza es una medida de dispersión que representa la variabilidad de una serie de datos respecto a su media. Formalmente se calcula como la suma de los residuos al cuadrado divididos entre el total de observaciones. También se puede calcular como la desviación estándar al cuadrado.
La funcion en R para la varianza es: var(x, na.rm = FALSE), donde los parámetros son iguales a las funciones anteriores.

Ejemplos

   #Obtener la varianza de la variable Bactina
   var.Bac<- var(datos$Bactina)
   var.Bac
[1] 4.761713
   #Obtener la varianza de la variable Rpl7
   var.Rpl7<- var(datos$Rpl7,na.rm=T)
   var.Rpl7
[1] 6.32454
   #Obtener la varainza de la variable Rpl7 por cada estación
   var.Rpl7.Est<- tapply(datos$Rpl7,datos$Estacion,var,na.rm=T)
   var.Rpl7.Est
    E10-T1     E13-T1     E19-T1     E22-T1     E25-T1      E6-T1      E9-T1 
 0.2693125  9.5199367 11.5702319 15.7569322  0.5690341  0.2444292  4.5006090 

Rango

Se define como la diferencia entre el mayor valor de la variable y el menor valor de la variable.
La función en R es: range(x, na.rm = FALSE) donde los parámetros de entrada son iguales a las funciones anteriores pero esta función devuelve dos valores que son el mínimo y el máximo por lo que debermos realizar la resta para obtener el valor del rango

Ejemplos

   #Obtener el rango de la variable E1FA
   Rango.E1FA<- range(datos$E1Fa)
   Rango.E1FA[2]-Rango.E1FA[1]
[1] 8.88
   #Obtener el rango de la variable Rpl7
   Rango.Rpl7<- range(datos$Rpl7,na.rm=T)
   Rango.Rpl7[2]-Rango.Rpl7[1]
[1] 11.89
   #Obtener el rango de la variable L.T
   Rango.LT<- range(datos$L.T)
   Rango.LT[2]- Rango.LT[1]
[1] 5
   #Obtener el rango de la variable Bactina por sexo
   Rango.Bac.Sexo<- tapply(datos$Bactina,datos$Sexo,range)
   #En este caso lo que devuelve es una lista por lo que debemos utilizar el comando $ para acceder a los elementos de la lista.
   Rango.Bac.Sexo$H[2]-Rango.Bac.Sexo$H[1]  # Rango por sexo masculino
[1] 11.43
   Rango.Bac.Sexo$M[2]-Rango.Bac.Sexo$M[1]  # Rango por sexo femenino
[1] 9.915
   #Obtener el rango de la variable Rpl7 por sexo
   Rango.Rpl7.Sexo<- tapply(datos$Rpl7,datos$Sexo,range,na.rm=T)
   Rango.Rpl7.Sexo$H[2]-Rango.Rpl7.Sexo$H[1]  # Rango por sexo masculino
[1] 7.445
   Rango.Rpl7.Sexo$M[2]-Rango.Rpl7.Sexo$M[1]  # Rango por sexo femenino
[1] 11.89

Coeficiente de variación

Es una medida de la dispersión relativa de los datos. Se define como la desviación estándar de la muestra expresada como porcentaje de la media muestral.

Es de particular utilidad para comparar la dispersión entre variables con distintas unidades de medida. Esto porque el coeficiente de variación, a diferencia de la desviación estándar, es independiente de la unidad de medida de la variable de estudio.

El coeficiente de variación permite comparar las dispersiones de dos distribuciones distintas, siempre que sus medias sean positivas.

Se calcula para cada una de las distribuciones y los valores que se obtienen se comparan entre sí.

La formula estadística es: CV= (sd/media)*100
Se multiplica por 100 para representarlo como porcentaje.

Ejemplos

   # Comparar de acuerdo a su coeficiente de variación qué variable tiene mayor dispersión si Bactina o E1fa
    CV.Bactina<- (sd(datos$Bactina)/mean(datos$Bactina))*100 
    CV.Bactina
[1] 9.306379
    CV.E1Fa<- (sd(datos$E1Fa)/mean(datos$E1Fa))*100
    CV.E1Fa
[1] 6.945332
    #Conclusión
    # De acuerdo a los dos CV podemos observar que la variable Bactina tiene mayor dispersión que la variable E1Fa, ya que Bactina tiene un 9% y E1Fa tiene un 7% de CV.
    
   #Comparar de acuerdo a su C.V si los Hombres o las mujeres varian mas con respecto a su Rpl7
    CV.Rpl7.Sexo<- (tapply(datos$Rpl7,datos$Sexo,sd,na.rm=T)/tapply(datos$Rpl7,datos$Sexo,mean,na.rm=T))*100
    CV.Rpl7.Sexo
        H         M 
 9.044893 14.810815 
    #Conclusión
    #De acuerdo al CV podemos ver que las mujeres(15% de CV) tienen mayor dispersión en la variable Rpl7 que los hombres(9% de CV)

Error estandar

El error estándar es la desviación estándar de la distribución muestral de un estadístico muestral. El término se refiere también a una estimación de la desviación estándar, derivada de una muestra particular usada para calcular la estimación.

La formula estadistica es: SE=sd/√N
Donde:
sd: Desviación estandar de la población o muestra.
N: Es el tamaño de la población o de la muestra.

Ejemplos

    #Obtener el error estandar de la variable Bactina
    SE.Bactina<- sd(datos$Bactina)/sqrt(length(datos$Bactina))
    SE.Bactina
[1] 0.2727669
    #Obtener el error estandar de la variable E1Fa
    SE.E1fa<- sd(datos$E1Fa)/sqrt(length(datos$E1Fa))
    SE.E1fa
[1] 0.2132753
    #Obtener el error estandar de la variable Rpl7
    # En este caso la función length para calcular el tamaño del vector de datos no cuenta con el parametro na.rm por lo que acudiremos a otra funcion llamada na.omit que lo que hace es omitir los na y luego con la función lenght obtener el tamaño del vector sin los na.
    val.sina<- na.omit(datos$Rpl7)  #valores sin na
    SE.Rpl7<- sd(datos$Rpl7)/sqrt(length(val.sina))
    SE.Rpl7
[1] 0.314358
    #Obtener el error estandar de la variable L.T por sexo
    SE.LT.sexo<- tapply(datos$L.T, datos$Sexo, sd)/sqrt(tapply(datos$L.T, datos$Sexo, length))
    SE.LT.sexo
        H         M 
0.2241639 0.1068509 
    #Obtener el error estandar de la variable Rpl7 por cada estación
    #En este caso como la función lenght no tiene para eliminar o no tomar en cuenta los na, debemos eliminar todas las filas de nuestra base de datos que tenga na, esto es
    #Encontramos los indices donde estan los na de nuestra variable de estudio
     ind.bol<- is.na(datos$Rpl7)
     #Eliminamos toda la fila y creamos otro conjunto de datos sin los na de la variable Rpl7
     datos.sina<- datos[!ind.bol,] #El simbolo ! significa que obtenemos lo contrario es el not de conjuntos.
     ##Ojo: esto solo hacerlo en caso de que las funciones no tengan los parametros para omitir el na
     
    #Ahora si buscamos los erorres por estación
    SE.Rpl7.Est<- tapply(datos.sina$Rpl7, datos.sina$Estacion, sd)/sqrt(tapply(datos.sina$Rpl7, datos.sina$Estacion, length))
    SE.Rpl7.Est
   E10-T1    E13-T1    E19-T1    E22-T1    E25-T1     E6-T1     E9-T1 
0.1729844 1.2596254 1.1338348 1.2552662 0.2274431 0.1563423 0.7071546 

Medidas de posición.

Las medidas de posición son valores que permiten dividir el conjunto de datos en partes porcentuales iguales y se usan para clasificar una observación dentro de una población o muestra. Las medidas de posición más usuales son los cuartiles, los deciles, quintiles y los percentiles. Por default la función esta en cuartiles.

En la práctica el más utilizado es el cuartil y el percentil.

En R la funcion que obtiene los cuartiles es: quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE) y como verán modificando la secuencia se pueden obtener los deciles, los quintiles y los percentiles.

Nota importante: Para R el porcentaje del cuál hablamos anteriormente se expresa de 0 a 1 y los cortes de los distintas partes(cuartil, decil, quintil y percentil) se expresa en decimal menor a 1, ya que el 1 seria el 100%.

Cuartiles

Divide al conjunto de datos en 4 partes, teniendo 3 cortes que se le llaman cuartil 1, 2 y 3. El primer cuartil representa el 25% de los datos, el segundo cuartil representa el 50% de los datos, el tercer cuartil el 75% de los datos. El segundo cuartil coincide con la mediana.

Ejemplos

  #Obtener los cuartiles de la variable Bactina
    cuartiles.Bac<- quantile(datos$Bactina)
    cuartiles.Bac
     0%     25%     50%     75%    100% 
20.2650 22.2375 23.1325 24.0900 31.7350 
    #Obtener los cuartiles de la variable Bactina por sexo
    cuartiles.Bac.Sexo<- tapply(datos$Bactina, datos$Sexo, quantile)
    cuartiles.Bac.Sexo
$H
      0%      25%      50%      75%     100% 
20.30500 22.36875 23.61750 24.00000 31.73500 

$M
      0%      25%      50%      75%     100% 
20.26500 22.08250 22.96000 24.09125 30.18000 

Deciles

Divide el conjunto de datos en 10 partes, donde cada parte representa un 10% de ellos, esto es, el decil 1 representa el 10% de los datos, el decil 2, representa el 20% …. hasta el decil 9 que representa el 90% de los datos y el decil 10 el 100%.

###Ejemplos

 #Obtener los deciles de la variable Rpl7
    deciles.Rpl7<- quantile(datos$Rpl7, probs=seq(0,1,0.10), na.rm=T)
    deciles.Rpl7
      0%      10%      20%      30%      40%      50%      60%      70% 
16.68000 17.92100 18.36700 18.58150 18.64433 18.77500 18.87400 19.00600 
     80%      90%     100% 
19.85400 23.47500 28.57000 
    #Obtener los deciles de la variable Rpl7 por estación
    deciles.Rpl7.Est<- tapply(datos$Rpl7,datos$Estacion,quantile,na.rm=T, seq(0,1,0.1))
    deciles.Rpl7.Est
$`E10-T1`
    0%    10%    20%    30%    40%    50%    60%    70%    80%    90%   100% 
18.040 18.448 18.598 18.676 18.754 18.790 18.814 18.901 18.975 19.203 19.995 

$`E13-T1`
     0%     10%     20%     30%     40%     50%     60%     70%     80%     90% 
18.4050 18.4650 18.5250 19.0800 19.6350 19.6975 19.7600 22.2425 24.7250 24.9525 
   100% 
25.1800 

$`E19-T1`
    0%    10%    20%    30%    40%    50%    60%    70%    80%    90%   100% 
17.900 18.096 18.430 18.622 18.820 19.600 19.636 20.872 22.434 24.505 28.325 

$`E22-T1`
     0%     10%     20%     30%     40%     50%     60%     70%     80%     90% 
17.7500 18.2135 18.3130 18.5070 18.7620 18.8800 18.8900 18.9380 20.6650 27.3955 
   100% 
28.5700 

$`E25-T1`
    0%    10%    20%    30%    40%    50%    60%    70%    80%    90%   100% 
16.680 17.770 17.810 18.585 18.675 18.755 18.775 18.845 18.880 18.880 19.395 

$`E6-T1`
      0%      10%      20%      30%      40%      50%      60%      70% 
17.25000 17.68650 18.11900 18.34100 18.45200 18.51750 18.56900 18.61450 
     80%      90%     100% 
18.65333 18.73300 18.85000 

$`E9-T1`
    0%    10%    20%    30%    40%    50%    60%    70%    80%    90%   100% 
17.970 18.614 18.775 18.775 19.065 20.225 20.305 20.727 21.917 23.452 24.060 

Quintiles

Divide el conjunto de datos en 5 partes, donde cada parte representa un 20% de ellos, es decir, el quintil 1 representa el 20% de los datos, el quintil 2 representa el 40% de los datos …. quintil 4 representa el 80% y el quintil 5 el 100% de los datos.

Ejemplos

   #Obtener los quintiles de la variable L.T
    quintiles.LT<- quantile(datos$L.T, probs=seq(0,1,0.20))
    quintiles.LT
  0%  20%  40%  60%  80% 100% 
1.60 2.40 2.80 3.20 3.44 6.60 
    #Obtener los quintiles de la variable E1Fa por estación
    quintiles.E1Fa<- tapply(datos$E1Fa,datos$Estacion,quantile,seq(0,1,0.20))
    quintiles.E1Fa
$`E10-T1`
    0%    20%    40%    60%    80%   100% 
22.205 23.141 23.583 23.755 25.479 29.780 

$`E13-T1`
    0%    20%    40%    60%    80%   100% 
20.900 21.810 23.520 23.875 24.045 28.095 

$`E19-T1`
    0%    20%    40%    60%    80%   100% 
24.260 24.577 24.722 25.554 25.832 26.405 

$`E22-T1`
    0%    20%    40%    60%    80%   100% 
22.735 23.447 24.339 25.130 25.805 26.225 

$`E25-T1`
    0%    20%    40%    60%    80%   100% 
22.240 25.105 25.725 25.740 26.685 27.110 

$`E6-T1`
    0%    20%    40%    60%    80%   100% 
21.535 22.672 24.760 25.296 25.733 25.975 

$`E9-T1`
    0%    20%    40%    60%    80%   100% 
21.390 22.431 22.956 23.548 24.360 25.570 

Percentiles

Divide a los datos en 100 partes, donde cada parte representa el 1% de los datos de ellos, es decir, el percentil 1 representa el 1%, el percentil 2 el 2%, …. el percentil 99 representa el 99% de los datos y el percentil 100 el 100% de los datos.

Ejemplos

    #Obtener los percentiles de la variable E1Fa
    percentiles.E1Fa<- quantile(datos$E1Fa, probs=seq(0,1,0.01))
    percentiles.E1Fa
      0%       1%       2%       3%       4%       5%       6%       7% 
20.90000 21.20870 21.42770 21.51905 21.67800 21.83250 21.92700 22.06045 
      8%       9%      10%      11%      12%      13%      14%      15% 
22.20640 22.22845 22.34200 22.55620 22.64440 22.70260 22.72780 22.73950 
     16%      17%      18%      19%      20%      21%      22%      23% 
22.75220 22.80890 22.85710 22.89805 23.06800 23.21105 23.29610 23.32970 
     24%      25%      26%      27%      28%      29%      30%      31% 
23.36120 23.44625 23.49520 23.52045 23.54880 23.58525 23.63250 23.64795 
     32%      33%      34%      35%      36%      37%      38%      39% 
23.67500 23.75375 23.80940 23.85125 23.86700 23.92770 24.03480 24.09345 
     40%      41%      42%      43%      44%      45%      46%      47% 
24.15300 24.22545 24.25190 24.27935 24.41480 24.53450 24.64160 24.65720 
     48%      49%      50%      51%      52%      53%      54%      55% 
24.66620 24.66935 24.67750 24.68565 24.68880 24.69585 24.70710 24.77325 
     56%      57%      58%      59%      60%      61%      62%      63% 
24.82120 24.84640 24.96340 25.06680 25.09200 25.10215 25.10920 25.15330 
     64%      65%      66%      67%      68%      69%      70%      71% 
25.30140 25.55025 25.60770 25.63815 25.64760 25.67585 25.70700 25.71960 
     72%      73%      74% 
25.72500 25.72500 25.72810 
 [ reached getOption("max.print") -- omitted 26 entries ]
    #Obtener los percentiles de la variable RPl7
    percentiles.Rpl7<- quantile(datos$Rpl7,probs = seq(0,1,0.01),na.rm=T)
    percentiles.Rpl7
      0%       1%       2%       3%       4%       5%       6%       7% 
16.68000 17.03910 17.37610 17.68165 17.74280 17.75300 17.76560 17.78640 
      8%       9%      10%      11%      12%      13%      14%      15% 
17.81360 17.87030 17.92100 17.96510 18.00920 18.05995 18.12610 18.17650 
     16%      17%      18%      19%      20%      21%      22%      23% 
18.21900 18.25050 18.28540 18.32320 18.36700 18.39730 18.40360 18.44665 
     24%      25%      26%      27%      28%      29%      30%      31% 
18.49420 18.51625 18.53260 18.54505 18.54820 18.55945 18.58150 18.58500 
     32%      33%      34%      35%      36%      37%      38%      39% 
18.58820 18.60080 18.61130 18.62025 18.62340 18.62655 18.62970 18.63380 
     40%      41%      42%      43%      44%      45%      46%      47% 
18.64433 18.66848 18.69570 18.72225 18.73800 18.74850 18.75480 18.76720 
     48%      49%      50%      51%      52%      53%      54%      55% 
18.77500 18.77500 18.77500 18.77500 18.77500 18.78085 18.79060 18.80950 
     56%      57%      58%      59%      60%      61%      62%      63% 
18.82700 18.84275 18.84770 18.85510 18.87400 18.88000 18.88000 18.88000 
     64%      65%      66%      67%      68%      69%      70%      71% 
18.88000 18.88000 18.89450 18.91550 18.94700 18.97850 19.00600 19.01230 
     72%      73%      74% 
19.15180 19.39120 19.52210 
 [ reached getOption("max.print") -- omitted 26 entries ]

Representación gráfica de medidas de ubicación y dispersión

La forma de representar en forma gráfica las medidas de posición y dispersión es mediante la grafica de caja y bigotes mejor conocida como boxplot, esta gráfica muestra por medio de una caja la división en cuartiles de los datos asi como posibles outliers.

Es una gráfica que describe características importantes, tanto la dispersión como la simetría además de sus valores mínimo máximo

Gráfica Boxplot de R

La forma de crear este gráfico en R, es mediante la función boxplot(formula, data = NULL, ..., subset, na.action = NULL,xlab = mklab(y_var = horizontal),ylab = mklab(y_var =!horizontal),add = FALSE, ann = !add, horizontal = FALSE,drop = FALSE, sep = ".", lex.order = FALSE)

Todos estos parámetros recibe la función sin embargo vean que solo el primero es el que debemos colocar y los demas solo se modificarian si es necesario ya que tienen valores por default. Los parámetros para ponerle nombres a los ejes son xlab='Nombre eje x' y ylab='Nombre eje y’`

Ejemplos

    #Obtener la gráfica de caja y bigote de la variable Bactina
    # Vean como se tienen 4 valores que se pueden considerar atípicos o outliers, la caja esta ligeramente desfasada del centro o mediana por lo que los datos no son simetricos, el valor minimo esta en 20 su maximo en 25, su rango intercuartilico RI=Q3-Q1 es 1.
    boxplot(datos$Bactina)

   #Obtener la gráfica de caja y bigotes de la variable E1Fa
   #En esta gráfica podemos ver como colocamos de manera horizontal la caja y le colocamos un nombre en el eje de las x.
   boxplot(datos$E1Fa, xlab='E1Fa', horizontal = T)

   #¿Que conclusión puedes dar?

Cuando queremos graficar mas de un boxplot debemos colocar una formula en la función esto es algo parecido a y=x donde x es la variable independiente normalmente es un factor o una cadena y la variable y es la variable dependiente y debe ser una variable numérica. La forma de colocar en R es y~x.

 #Obtener la gráfica de cajas y bigote (Boxplot) de la variable Rpl7 por estación
  boxplot(datos$Rpl7~datos$Estacion, xlab='Estación',ylab='Rpl7')

  #En este caso no es necesario eliminar el na ya que la función por default no lo considera
  # Por otro lado en esta gráfica podemos ver como varia la dispersión de los datos por estación, esto es que la estación E13-T1 tiene mayor dispersión de sus datos con respecto a todos los demás, tambien la estación E10-T1 tiene muy poca dispersión con respecto a los demás y la estación E22-T1 presenta dos valores atípicos que estan por encima de su mediana.

  #Obtener la gráfica de boxplot de LT con respecto al sexo
  boxplot(datos$L.T~datos$Sexo, xlab='Sexo', ylab='Longitud Total(L.T)')

  #¿Que conclusión puedes dar?

Gráfica Boxplot con la libreria ggplot2

La gráfica anterior que vimos es mediante la funcion boxplot que trae por default R, ahora tambien existe una libreria especializada en gráficas en R que son mucho mas vistosas y con una apariencia mas novedosa y moderna. Esta libreria es ggplot2 que invito a que la descarguen e instalen en R.

La función es: ggplot(datos,aes(x=variable x, y=variable y)) + geom_boxplot() donde: datos: Es un dataframe que contiene los datos a graficar variable x: Es el nombre de la variable que estará en el eje x variable y: Es el nombre de la variable que estará en el eje y geom_boxplot: Es el figura o geometria que se dibujara en este caso es una gráfica de caja y bigote

Ejemplos

  #Cargamos la libreria para ser utilizada
  library(ggplot2)
  
  #Vamos a realizar los mismos ejercicios que se realizó con la funcion Boxplot.
  #Obtener la grafica de caja y bigotes de la variable Bactina
  ggplot(datos,aes(y=Bactina)) + geom_boxplot() 

  #Obtener la gráfica de caja y bigotes de la variable E1Fa
  ggplot(datos,aes(x=E1Fa)) + geom_boxplot() 

  #Obtener la gráfica de cajas y bigote (Boxplot) de la variable Rpl7 por estación
  ggplot(datos,aes(x=Estacion, y=Rpl7)) + geom_boxplot() 

  #Obtener la gráfica de boxplot de LT con respecto al sexo
  ggplot(datos,aes(x=Sexo, y=L.T)) + geom_boxplot() 

  #Veamos que otras cosas se pueden hacer con esta libreria que esta muy padre
  ggplot(datos,aes(x=Sexo, y=L.T, color=Sexo)) + 
  geom_boxplot(outlier.colour="red", outlier.shape=8,outlier.size=3) +  #colocamos el outlier en rojo de acuerdo a cierta forma y tamaño
  stat_summary(fun=mean, geom="point", shape=23, size=4) + #Colocamos el punto donde se encuentra su media 
  geom_dotplot(binaxis='y', stackdir='center', dotsize=0.5) + #Colocamos la geometria de sus puntos
  scale_color_manual(values=c("pink", "blue")) + #Colocamos los colores que deseemos en este caso rosa para las hembras y azul para los machos en ese orden porque asi estan los datos.
  theme_dark() #Tambien podemos elegir entre distintos temas de fondo.
`stat_bindot()` using `bins = 30`. Pick better value with `binwidth`.

Distribuciones teóricas de probabilidad

Las distribuciones teóricas de la probabilidad se refiere a las distintas formas en que los datos se comportan para generar ciertas gráficas ya estudiadas para calcular sus probabilidades de ocurrencia. Estas probabilidades pueden ser de manera puntual o sea una cierta probabilidad P(X=x) o una probabilidad acumulada P(X<=x). Por default en R al obtener el acumulado siempre lo hace de esa forma siendo escricto en el menor e igual, que al buscar el otro lado entonces ya no considera el mayor o igual o sea P(X>x) es decir solo el mayor.

Una distribución o densidad de probabilidad de una variable aleatoria x, es la función de distribución de la probabilidad de dicha variable. Las distribuciones probabilidad pueden ser: discretas o continuas, esto es de acuerdo al tipo de variable aleatoria que manejen los datos.

Distribuciones Discretas: Sus valores son puros numeros enteros y no hay valores enmedio de ellos, en pocas palabras no tiene valores decimales. Su gráfica de su distribución esta siempre cortada.
Ejemplo: Número de personas que fuman, Cantidad de peces en un pecera.

Distribuciones Continuas: Sus valores pueden contener números decimales debido a que en un par de números puede haber una infinidad de valores. Su gráfica de su distribución es continua o no se corta.
Ejemplo: Peso, Altura.

El Área de la curva entre 2 puntos representa la probabilidad de que ocurra un suceso entre esos dos puntos si la variable aleatoria es continua y la sumatoria entre esos dos puntos si la variable es discreta.

Si es discreta la suma de todos los valores debe dar 1 y si es continua el área bajo la curva de la curva debe ser 1.

Distribuciones discretas

Distribución Binomial

En estadística, la distribución binomial es una distribución de probabilidad discreta que cuenta el número de éxitos en una secuencia de n ensayos de Bernoulli independientes entre sí, con una probabilidad fija p de ocurrencia del éxito entre los ensayos. Un experimento de Bernoulli se caracteriza por ser dicotómico, esto es, solo dos resultados son posibles. A uno de estos se denomina «éxito» y tiene una probabilidad de ocurrencia p y al otro, «fracaso», con una probabilidad q = 1 - p. En la distribución binomial el anterior experimento se repite n veces, de forma independiente, y se trata de calcular la probabilidad de un determinado número de éxitos. Para n = 1, la binomial se convierte, de hecho, en una distribución de Bernoulli.

Para representar que una variable aleatoria X sigue una distribución binomial de parámetros n y p en R, se escribe: X~ B(n,p)

Ejemplos

  1. La probabilidad de éxito de una determinada vacuna es 0.72. Calcula la probabilidad de que una vez administrada a 15 pacientes:
  1. Ninguno sufra la enfermedad
  2. Todos sufran la enfermedad
  3. Dos de ellos contraigan la enfermedad
  4. Mayor a dos contraigan la enfermedad
  5. Menor o igual a dos contraigan la enfermedad
  #P(X=k)=dbinom(x,n,p) 
  #P(X<=k)=pbinom(x,n,p) 
  n<- 15
  p<- 0.72

  #a)Ninguno sufra la enfermedad 
  x<- 15
  dbinom(x,n,p)
[1] 0.00724415
  #b) Todos sufran la enfermedad 
  x<- 0
  dbinom(x,n,p)
[1] 5.097655e-09
  #c) Dos contraigan la enfermedad 
  x<- 13
  dbinom(x,n,p)
[1] 0.1150344
  #d) Mayor a dos contraigan la enfermedad #P(X<12)
  x<-12
  prob<- pbinom(x,n,p) 


#e) Menor o igual a dos  contraigan la enfermedad P(X<=13)
  x<- 13
  pbinom(x,n,p)
[1] 0.9504983
  1. Suponga que un grupo de agentes de tránsito sale a una vía principal para revisar el estado de los autobuses de transporte intermunicipal. De datos históricos se sabe que un 10% de los autobuses generan una mayor cantidad de humo de la permitida. En cada jornada los agentes revisan siempre 18 autobuses, asuma que el estado de un autobus es independiente del estado de los otros autobuses.
  1. Calcular la probabilidad de que se encuentren exactamente 2 autobuses que generan una mayor cantidad de humo de la permitida.
   # Probabilidad exacta cuando son 2 autobuses de 18
   dbinom(x=2, size=18, prob=0.10)
[1] 0.2835121
  1. Calcular la probabilidad de que el número de autobuses que sobrepasan el límite de generación de gases sea al menos 4.
  # Lo realizamos de dos formas: 
  #1) Por la sumatoria de 4, 5, 6, 7 ...18 
  sum(dbinom(x=4:18, size=18, prob=0.10))
[1] 0.09819684
  #2) Por medio de su probabilidad acumulada mas la probabilidad cuando es exactamente 4
  # P(X>4) + ^P(X=4) esto es 4 autobuses o más.
  pbinom(4,18,0.10,lower.tail = F) +  dbinom(4,18,0.10)
[1] 0.09819684
  1. Calcular la probabilidad de que tres o menos autobuses emitan gases por encima de lo permitido en la norma.
   # Utilizamos la probabilidad acumulada P(X<=3)
   pbinom(q=3, size=18, prob=0.10)
[1] 0.9018032
  1. Dibujar la función de masa de probabilidad.
   x <- 0:18  # Soporte (dominio) de la variable
   Probabilidad <- dbinom(x=x, size=18, prob=0.1)
   # Graficamos con la función plot
   plot(x=x, y=Probabilidad, type='h', las=1, lwd=6)

  1. Generar con 100 de una distribución Binomial(n=18,p=0.1) y luego calcular las frecuencias muestrales y compararlas con las probabilidades teóricas.
  m <- rbinom(n=100, size=18, prob=0.1)
  m  # Para ver lo que hay dentro de m
 [1] 1 5 3 2 4 3 4 3 0 1 3 0 3 2 1 1 2 1 1 1 0 2 0 5 4 0 1 0 3 1 3 3 3 1 0 1 0 3
[39] 1 4 0 1 4 2 1 1 0 1 3 2 0 1 0 2 1 1 1 0 0 1 3 0 1 4 1 2 2 3 0 1 3 1 3 2 2
 [ reached getOption("max.print") -- omitted 25 entries ]
  #Obtenemos los marginales de la tabla para comparar con el ejercicio anterior
  prop.table(table(m)) 
m
   0    1    2    3    4    5 
0.20 0.33 0.15 0.21 0.09 0.02 

Distribución Poisson

La distribución de Poisson es una distribución de probabilidad discreta que expresa, a partir de una frecuencia de ocurrencia media, la probabilidad de que ocurra un determinado número de eventos durante cierto período de tiempo. Concretamente, se especializa en la probabilidad de ocurrencia de sucesos con probabilidades muy pequeñas, o sucesos “raros”.

Para representar que una variable aleatoria X sigue una distribución poisson de parámetros k y λ en R, se escribe: X~ P(k,λ)
donde:
k: es el número de ocurrencias del evento o fenómeno (la función nos da la probabilidad de que el evento suceda precisamente k veces).

λ: es un parámetro positivo que representa el número de veces que se espera que ocurra el fenómeno durante un intervalo dado. Por ejemplo, si el suceso estudiado tiene lugar en promedio 4 veces por minuto y estamos interesados en la probabilidad de que ocurra k veces dentro de un intervalo de 10 minutos, usaremos un modelo de distribución de Poisson con λ = 10×4 = 40.

Ejemplos

  1. Cierta enfermedad tiene una probabilidad muy baja de ocurrir, p=1/100,000. Calcular la probabilidad de que en una ciudad con 500,000 habitantes haya más de 3 personas con dicha enfermedad. Calcular el número esperado de habitantes que la padecen.
   n<- 500000
   p<- 1/100000
   l<- n*p

  #a) Calcular la probabilidad de que 3 o más tengan la enfermedad
  x<- 3
  ppois(x,l,lower.tail = F)
[1] 0.7349741
  # Como obtenemos la parte de la cola izquierda al sacar la cola derecha el 
  # valor exacto del 3 no se toma en cuenta por eso debemos agregarselo
  # Es decir P(X<=3) es la cola derecha por default en R para la cola izquierda seria P(X>3) es estrictamente mayor y por eso si en el problema me piden el valor de 3 y mas entonces debo agregarle la probabilidad de exactamente 3 para convertilo en P(X>=3).
    # Forma 1
    1-ppois(x,l) + dpois(x,l)
[1] 0.875348
    # Forma 2 
    ppois(x,l,lower.tail=F) + dpois(x,l)
[1] 0.875348
  #b) el valor esperado es la media el cual es lambda=5
  l
[1] 5
  #Grafica fp
  plot(dpois(0:5,l),type="h",xlab="k",ylab="P(X=k)",main="Función de Probabilidad P(l)")

  #Grafica cdf
  plot(stepfun(0:3,ppois(0:4,l)),xlab="k",ylab="F(k)",main="Función de distribución P(l)")

  1. En una editorial se asume que todo libro de 250 páginas tiene en promedio 50 errores.
  1. Encuentre la probabilidad de que en una página cualquiera no se encuentren errores.
   #P(X=0) 
   #lambda= 50 errore/250 paginas
   l<- 50/250;
   dpois(x=0, lambda=l)
[1] 0.8187308

Distribución Hypergeometrica

La distribución hipergeométrica suele aparecer en procesos muestrales sin reemplazo, en los que se investiga la presencia o ausencia de cierta característica. Piénsese, por ejemplo, en un procedimiento de control de calidad en una empresa farmacéutica, durante el cual se extraen muestras de las cápsulas fabricadas y se someten a análisis para determinar su composición. Durante las pruebas, las cápsulas son destruidas y no pueden ser devueltas al lote del que provienen. En esta situación, la variable que cuenta el número de cápsulas que no cumplen los criterios de calidad establecidos sigue una distribución hipergeométrica. Por tanto, esta distribución es la equivalente a la binomial, pero cuando el muestreo se hace sin reemplazo, de forma que la probabilidad de éxito no permanece constante a lo largo de las n pruebas, a diferencia de la distribución binomial.

Esta distribución se puede ilustrar del modo siguiente: se tiene una población finita con N elementos, de los cuales R tienen una determinada característica que se llama “éxito” (diabetes, obesidad, hábito de fumar, etc.). El número de “éxitos” en una muestra aleatoria de tamaño n, extraída sin reemplazo de la población, es una variable aleatoria con distribución hipergeométrica de parámetros N, R y n.

Para representar que una variable aleatoria X que sigue una distribución hipergeométrica de parámetros m, n y k en R, se escribe: X~ Hyper(m,n,k)
donde:
m: Número de éxitos
n: Número de fracasos
k: Cantidad de la muestra aleatoria

Ejemplos

  1. Se sabe que el 7% de los útiles quirúrgicos en un lote de 100 no cumplen ciertas especificaciones de calidad. Tomada una muestra al azar de 10 unidades sin reemplazo, interesa conocer la probabilidad de que no más de dos sean defectuosas.
  # P(x<=2)
  x<- 2
  # numero de exitos
  m<- 7
  #numero de fracasos
  n<- 93
  #muestra aleatoria
  r<- 10

  phyper(x,m,n,r)
[1] 0.9792397
  #Grafica fp
  plot(dhyper(0:2,7,93,10),type="h",xlab="k",ylab="P(X=k)",main="Función de Probabilidad   Hipergeometrica")

  #Grafica cdf
  plot(stepfun(0:2,phyper(0:3,7,93,10)),xlab="k",ylab="F(k)",main="Función de distribución acumulada hipergeométrica")

  1. Un lote de partes para ensamblar en una empresa está formado por 100 elementos del proveedor A y 200 elementos del proveedor B. Se selecciona una muestra de 4 partes al azar sin reemplazo de las 300 para una revisión de calidad.
  1. Calcular la probabilidad de que todas las 4 partes de la muestra sean del proveedor A.
   dhyper(x=4, m=100, k=4, n=200)
[1] 0.01185408
  1. Calcular la probabilidad de que dos o más de las partes sean del proveedor A.
  sum(dhyper(x=2:4, m=100, k=4, n=200))
[1] 0.4074057
  phyper(2, m=100, k=4, n=200, lower.tail = F) + dhyper(x=2, m=100, k=4, n=200)
[1] 0.4074057

Distribución geométrica

Supóngase que se efectúa repetidamente un experimento o prueba, que las repeticiones son independientes y que se está interesado en la ocurrencia o no de un suceso al que se refiere como “éxito”, siendo la probabilidad de este suceso p. La distribución geométrica permite calcular la probabilidad de que tenga que realizarse un número k de repeticiones antes de obtener un éxito por primera vez; esta probabilidad decrece a medida que aumenta k con lo que la función de masa de probabilidad es siempre decreciente. Así pues, se diferencia de la distribución binomial en que el número de repeticiones no está predeterminado, sino que es la variable aleatoria que se mide y, por otra parte, el conjunto de valores posibles de la variable es ilimitado. La distribución geométrica se utiliza en la distribución de tiempos de espera, de manera que si los ensayos se realizan a intervalos regulares de tiempo, esta variable aleatoria proporciona el tiempo transcurrido hasta el primer éxito. Esta distribución presenta la propiedad denominada “falta de memoria”, que implica que la probabilidad de tener que esperar un tiempo t no depende del tiempo que ya haya transcurrido.

Para representar que una variable aleatoria X que sigue una distribución geométrica de parámetros x, prob en R, se escribe: X~ Geom(prob)
Donde:
prob: La probabilidad de éxito en cada intento

Ejemplos

  1. La probabilidad de que cierto examen médico dé lugar a una reacción “positiva” es igual a 0,8, ¿cuál es la probabilidad de que ocurran menos de 5 reacciones “negativas” antes de la primera positiva?
   # P(x<=5)
    x<- 4
   #Probabilidad de éxito
   prob<- 0.8

   pgeom(x,prob)
[1] 0.99968
   #Si P(X>5)
   1-pgeom(5,prob)
[1] 6.4e-05
  #o
  pgeom(5,prob,lower.tail = F)
[1] 6.4e-05
  #Grafica fp
  plot(dgeom(0:5,prob),type="h",xlab="k",ylab="P(X=k)",main="Función de Probabilidad Geometrica")

  #Grafica cdf
  plot(stepfun(0:5,pgeom(0:6,prob)),xlab="k",ylab="F(k)",main="Función de distribución acumulada Geométrica")

  1. En una línea de producción de bombillos se sabe que sólo el 1% de los bombillos son defectuosos. Una máquina automática toma un bombillo y lo prueba, si el bombillo enciende, se siguen probando los bombillos hasta que se encuentre un bombillo defectuoso, ahí se para la línea de producción y se toman los correctivos necesarios para mejorar el proceso.
  1. Calcular la probabilidad de que se necesiten probar 125 bombillos para encontrar el primer bombillo defectuoso.
  dgeom(x=125, prob=0.01)
[1] 0.002847078
  1. Calcular P(X≤50).
   pgeom(q=50, prob=0.01)
[1] 0.401044
  1. Encontrar el cuantil q tal que P(X≤q)=0.40
   #Como nos estan pidiendo el cuartil entonces utilizamos el prefijo q  y asi obtenemos el valor en ese cuantil
   qgeom(p=0.4, prob=0.01)
[1] 50

Distribuciones Continuas

Distribución Normal

La distribución normal es, sin duda, la distribución de probabilidad más importante del Cálculo de probabilidades y de la Estadística. Fue descubierta, como aproximación de la distribución binomial, por Abraham De Moivre (1667-1754) y publicada en 1733 en su libro The Doctrine of Chances; estos resultados fueron ampliados por Pierre-Simon Laplace (1749- 1827), quién también realizó aportaciones importantes. En 1809, Carl Friedrich Gauss (1777- 1855) publicó un libro sobre el movimiento de los cuerpos celestes donde asumía errores normales, por este motivo esta distribución también es conocida como distribución Gaussiana.

La importancia de la distribución normal queda totalmente consolidada por ser la distribución límite de numerosas variables aleatorias, discretas y continuas, como se demuestra a través de los teoremas centrales del límite. Las consecuencias de estos teoremas implican la casi universal presencia de la distribución normal en todos los campos de las ciencias empíricas: biología, medicina, psicología, física, economía, etc. En particular, muchas medidas de datos continuos en medicina y en biología (talla, presión arterial, etc.) se aproximan a la distribución normal.

Junto a lo anterior, no es menos importante el interés que supone la simplicidad de sus características y de que de ella derivan, entre otras, tres distribuciones (ji-cuadrado, t de Student y F de Snedecor) que se mencionarán más adelante, de importancia clave en el campo del contraste de hipótesis estadísticas. La distribución normal queda totalmente definida mediante dos parámetros: la media (mu) y la desviación estándar o desviación típica (sigma). Su función de densidad es simétrica respecto a la media y la desviación estándar nos indica el mayor o menor grado de apertura de la curva que, por su aspecto, se suele llamar campana de Gauss. Esta distribución se denota por N(mu,sigma).

Cuando la distribución normal tiene como parámetros mu = 0 y sigma = 1 recibe el nombre de distribución normal estándar. Cualquier variable X que siga una distribución normal de parámetros mu y sigma se puede transformar en otra variable Y= (X-mu)/sigma que sigue una distribución normal estándar; este proceso se denomina estandarización, tipificación o normalización.

Para representar que una variable aleatoria X que sigue una distribución normal de parámetros x, media, y desviación esandar en R, se escribe: X~ norm(mean,sd)
Donde:
mean: La media de los datos.
sd: La desviación estandar de los datos.

Ejemplos

  1. Se supone que el nivel de colesterol de los enfermos de un hospital sigue una distribución normal con una media de 179.1 mg/dL y una desviación estándar de 28.2 mg/ dL.
  1. ¿Cuál es el porcentaje o probabilidad de enfermos con un nivel de colesterol inferior e igual a 169 mg/dL?
  #P(X<=169)
  pnorm(169,179.1,28.2) 
[1] 0.3601133
  #P(X<169)  si queresmos estrictamente el inferior entonces debemos restar el valor exacto esto es
   pnorm(169,179.1,28.2) - dnorm(169,179.1,28.2)
[1] 0.3468453
  1. ¿Cuál será el valor del nivel de colesterol a partir del cual se encuentra el 90% de los enfermos del hospital?
  #En este caso buscamos cual es el corte de acuerdo a un porcentaje de enfermos por lo tanto utilizamos el prefijo q de quantile.
  qnorm(0.9,179.1,28.2)
[1] 215.2398
  1. Considere un proceso de elaboración de tornillos en una empresa y suponga que el diámetro de los tornillos sigue una distribución normal con media de 10mm y varianza de 4mm2.
  1. Un tornillo se considera que cumple las especificaciones si su diámetro está entre 9 y 11 mm. ¿Qué porcentaje de los tornillos cumplen las especificaciones?
   #P(9<=x<=11)
   pnorm(q=11, mean=10, sd=2) - pnorm(q=9, mean=10, sd=2)
[1] 0.3829249
  1. Un tornillo con un diámetro mayor a 11 mm se puede reprocesar y recuperar. ¿Cuál es el porcentaje de reprocesos en la empresa?
  #P(X>11)
  pnorm(q=11, mean=10, sd=2, lower.tail=FALSE)
[1] 0.3085375
  1. El 5% de los tornillos más delgados no se pueden reprocesar y por lo tanto son desperdicio. ¿Qué diámetro debe tener un tornillo para ser clasificado como desperdicio?
    # Percentil 5%  es igual 0.05 son considerados pequeños
    qnorm(p=0.05, mean=10, sd=2)
[1] 6.710293
  1. El 10% de los tornillos más gruesos son considerados como sobredimensionados. ¿cuál es el diámetro mínimo de un tornillo para que sea considerado como sobredimensionado?
   # Percentil 10% de la cola derecha es considerado gruesos sobredimensionados
   qnorm(p=0.10, mean=10, sd=2, lower.tail=FALSE)
[1] 12.5631

Distribución t-student

Esta distribución fue propuesta y tabulada por William Sealy Gosset (1876-1937), más conocido por el seudónimo de Student, como resultado de un estudio sobre la estimación de la media cuando el tamaño de muestra es pequeño, estos resultados fueron publicados en 1908 en el artículo The Probable Error of a Mean La distribución t de Student queda completamente definida por medio de sus grados de libertad, n, y se denota por tn. Surge cuando se plantea estudiar el cociente entre una variable aleatoria con distribución normal estándar y la raíz cuadrada del cociente entre una variable aleatoria con distribución ji-cuadrado y sus grados de libertad (n), siendo las dos variables independientes. Esta distribución desempeña un papel muy importante en la inferencia estadística asociada a la teoría de muestras pequeñas y es usada habitualmente en el contraste de hipótesis para la media de una población o para comparar medias de dos poblaciones. En cuanto a la forma que presenta su función de densidad cabe destacar las similitudes que mantiene con la función de densidad de la distribución normal estándar: forma acampanada, simétrica y centrada en el origen; la única diferencia existente entre ambas distribuciones es que la función de densidad de la t de Student presenta unas colas más pesadas (mayor dispersión) que la normal. Cabe destacar que el programa sólo permite realizar el cálculo para una distribución t de Student con 150 grados de libertad o menos. Esto no supone una limitación ya que, a medida que aumentan los grados de libertad, esta distribución se va aproximando a la normal estándar, de forma que a partir de ese valor de n pueden considerarse prácticamente idénticas.

Para representar que una variable aleatoria X que sigue una distribución t-student de parámetros x, prob en R, se escribe: X~ t(df)
Donde:
df: Grados de libertad o es lo mismo el total de los datos menos 1 (n-1)

Ejemplo

La distribución t de Student se aproxima a la normal a medida que aumentan los grados de libertad. 1. Calcular, para una distribución N(0,1), el punto que deja a la derecha una cola de probabilidad 0.05.

  p<- qnorm(0.05,0,1)
  p
[1] -1.644854
  1. Calcular, para una distribución t de Student, la probabilidad de que la variable tome un valor a la derecha de ese punto. Tomar como grados de libertad sucesivamente n = 10 y n = 150.
   gl<- 10
   pt(p,gl,lower.tail = F)
[1] 0.9344872
   gl<- 150
   pt(p,gl,lower.tail = F)
[1] 0.948953

Distribución Uniforme

La distribución uniforme es útil para describir una variable aleatoria con probabilidad constante sobre el intervalo (a,b) en el que está definida y se denota por U(a,b). También es conocida con el nombre de distribución rectangular por el aspecto de su función de densidad. Una peculiaridad importante de esta distribución es que la probabilidad de un suceso depende exclusivamente de la amplitud del intervalo considerado y no de su posición en el campo de variación de la variable.

Para representar que una variable aleatoria X que sigue una distribución uniforme de parámetros x, prob en R, se escribe: X~ Unif(min,max)
Donde:
min: El valor mínimo de los datos.
max: El valor máximo de los datos

Ejemplos

  1. Supóngase una variable que se distribuye uniformemente entre 380 y 1,200. Determínese: a). La probabilidad de que el valor de la variable sea superior a mil.
   #P(x>1000)
   x<- 1000
   min<- 380
   max<- 1200
   punif(x,min,max,lower.tail = F)
[1] 0.2439024

b). La media y la desviación estándar de dicha variable.

  #media= (a+b)/2 var=(b-a)^2/12
   media<- (min+max)/2
   var<- ((max-min)^2)/12
  1. Un contratista A está preparando una oferta sobre un nuevo proyecto de construcción. La oferta sigue una distribución uniforme entre 55 y 75 miles de pesos. Determínese: a). La probabilidad de que la oferta sea superior a 60 mil pesos.
   #P(x>60)
   x<- 60
   min<- 55
   max<- 75
   punif(x,min,max,lower.tail = F)
[1] 0.75

B. La media y la desviación estándar de la oferta

  #media= (a+b)/2 var=(b-a)^2/12
   media<- (min+max)/2
   var<- ((max-min)^2)/12

Estimación de parámetros mediante intervalos de confianza

Es nn rango de valores que se construye a partir de datos de la muestra de modo que el parámetro ocurre dentro de dicho rango con una probabilidad específica, la probabilidad específica se conoce como nivel de confianza, es decir, una estimación de un parámetro de la población dada por dos números, entre los cuales se puede considerar encajado al parámetro, se llama una estimación de intervalo de confianza del parámetro.
Las estimaciones de intervalo indican la precisión de una estimación y son preferibles a las estimaciones de punto.

Cuando se tienen pocos datos(menor de 30) la distribución a utilizar es la t-student.

Intervalo de confianza para estimar la media con varianza conocida.

Ejemplo

Se desea estudiar el peso en gramos del fruto producido por una planta. Para ello se tomó una muestra de 16 plantas observando los siguientes pesos: 506, 508, 499, 503, 504, 510, 497, 512, 514, 505, 493, 496, 506, 502, 509, 496. El peso del fruto de cada planta es una v.a. Normal con desviación típica 5 gr. Obtener un intervalo de confianza al nivel de confianza 0.9 para el peso medio del fruto de esta planta.

  #Obtenemos el vector de los pesos
  Pesos<- c(506, 508, 499, 503, 504, 510, 497, 512, 514, 505, 493, 496, 506, 502, 509, 496)

  #Obtenemos el total de datos
  n<- length(Pesos)
  
  # Calculamos la media
  Media<- mean(Pesos)
  
  # Obtenemos la desviación estandar poblacional que nos da el problema
  sd.p<- 5
  
  #Nivel de confianza 1-a = 1-0.90=0.10
  a<- 0.10
  
  #Obtención de los valores de una curva normal estandar 
  # Se utiliza el q de percentiles por que nos dan un porcentaje y queremos el valor de corte y se divide entre 2 porque queremos ambas colas de la normal.
  cola.izq<- qnorm(a/2,0,1)
  cola.der<- qnorm(a/2,0,1,lower.tail = F)
  
  #Obtención del intervalo según la formula
  Lim.izq<- Media+(cola.izq*sd.p/sqrt(n)) # se coloca mas porque el menos lo tiene el valor de la cola.izq al obtener el valor de la distribución normal
  Lim.der<- Media+(cola.der*sd.p/sqrt(n))
  c(Lim.izq,Lim.der)
[1] 501.6939 505.8061

Intervalo de confianza para estimar la media con varianza desconocida y con muestras pequeñas.

Ejemplo

Se desea estudiar el peso en gramos del fruto producido por una planta. Para ello se tomó una muestra de 16 plantas observando los siguientes pesos: 506, 508, 499, 503, 504, 510, 497, 512, 514, 505, 493, 496, 506, 502, 509, 496. Del peso del fruto sólo se conoce que es una v.a. Normal. Obtener un intervalo de confianza al nivel de confianza 0.9 para el peso medio del fruto de esta planta.

   #Obtenemos el vector de los pesos
  Pesos<- c(506, 508, 499, 503, 504, 510, 497, 512, 514, 505, 493, 496, 506, 502, 509, 496)

  #Obtenemos el total de datos
  n<- length(Pesos)
  
  # Calculamos la media
  Media<- mean(Pesos)
  
  # No tenemos la desviación estandar poblacional por lo que calculamos la desviación estandar de la muestra y lo utilizamos como estimador de la poblacional.
  sd.m<- sd(Pesos)
  
  #Nivel de confianza 1-a = 1-0.90=0.10
  a<- 0.10
  
  #Obtención de los valores de una curva normal estandar 
  # Se utiliza el q de percentiles por que nos dan un porcentaje y queremos el valor de corte y se divide entre 2 porque queremos ambas colas de la normal.
  cola.izq<- qt(a/2,n-1)
  cola.der<- qt(a/2,n-1,lower.tail = F)
  
  #Obtención del intervalo según la formula
  Lim.izq<- Media+(cola.izq*sd.m/sqrt(n))
  Lim.der<- Media+(cola.der*sd.m/sqrt(n))
  c(Lim.izq,Lim.der)
[1] 501.0318 506.4682

Intervalo de confianza para estimar la varianza con media desconocida

Ejemplo

Se desea estimar la varianza del nivel de nistamina en un ungüento. Se conoce por larga experiencia que su distribución sigue una ley Normal. Se toma una muestra de 9 ungüentos, dando el nivel siguiente (en millones de unidades/gr): 1, 0.9, 1.5, 2.8, 3.1, 3.2, 2.5, 1.9, 2. Estimar la varianza mediante dos intervalos de confianza al nivel de confianza del 95%.

    #Obtenemos el vector de nivel de unguentos
    nu<- c(1, 0.9, 1.5, 2.8, 3.1, 3.2, 2.5, 1.9, 2)

    #Obtenemos su longitud
    n<- length(nu)
   
    #Obtenemos su sd muestral
    sd<- sd(nu)
    
    #Valor de 1-a
    a<- 0.05
    
    #Obtenemos su valor de la distribución chi cuadrada
    cola.izq<- qchisq(a/2,n-1)
    cola.der<- qchisq(a/2,n-1, lower.tail = F)
    
    #Obtenemos el intervalo de confianza por la formula
    Lim.izq<- (n-1)*(sd^2)/cola.izq
    Lim.der<-  (n-1)*(sd^2)/cola.der
    c(Lim.izq,Lim.der)
[1] 2.7159318 0.3376192

Intervalo de confianza para estimar la diferencia de medias con varianza conocida

Ejemplo

Se están utilizando normalmente en una granja avícola dos tipos de piensos compuestos A y B. Queriendo comparar la media de engorde con ambos piensos, para un nivel de confianza 0.9, se alimentan a 20 aves durante cierto tiempo con el pienso A obteniéndose una ganancia media de peso de 0.4 Kgr por ave. Simultáneamente a otras 19 aves se les alimenta con el pienso B y se obtiene un engorde medio de 0.5 Kgr. Se conoce por experiencias previas que las variables objeto de estudio, engorde con cada uno de los piensos, son normales con varianzas de 0.05 para el pienso A y 0.1 para pienso B. Estimar la diferencia de engorde medio.

    #Obtener los valores que se requieren para el intervalo.
    media.A<- 0.4
    n.A<- 20
    var.A<- 0.05
    media.B<- 0.5
    n.B<- 19
    var.B<- 0.1
    a<- 0.10
    
    #Obtención de los valores de una curva normal estandar 
  # Se utiliza el q de percentiles por que nos dan un porcentaje y queremos el valor de corte y se divide entre 2 porque queremos ambas colas de la normal.
  cola.izq<- qnorm(a/2,0,1)
  cola.der<- qnorm(a/2,0,1,lower.tail = F)
  
    # Obtenemos el intervalo de confianza para la diferencia de medias
    Lim.izq<- (media.A-media.B)+cola.izq*sqrt(var.A/n.A + var.B/n.B)
    Lim.der<- (media.A-media.B)+cola.der*sqrt(var.A/n.A + var.B/n.B)
    c(Lim.izq,Lim.der)
[1] -0.24492605  0.04492605

Intervalo de confianza para estimar la diferencia de medias con varianza desconocida pero iguales y muestras pequeñas

Ejemplo

Se están utilizando normalmente en una granja avícola dos tipos de piensos compuestos A y B. Queriendo comparar la media de engorde con ambos piensos, para un nivel de confianza 0.9, se alimentan a 22 aves durante cierto tiempo con el pienso A obteniéndose una ganancia media de peso de 0.4 Kgr por ave con una varianza de 0.03. Simultáneamente a otras 20 aves se les alimenta con el pienso B y se obtiene un engorde medio de 0.5 Kgr con una varianza de 0.09. Se conoce por experiencias previas que las variables objeto de estudio, engorde con cada uno de los piensos, son normales con varianzas poblacionales iguales. Estimar la diferencia de engorde medio.

   #Obtenemos los valores que necesitamos para la formula
   n.A<- 22
   media.A<- 0.4
   var.A<- 0.03
   n.B<- 20
   media.B<- 0.5
   var.B<- 0.09
   
   #1-a=0-90 a=0.10
   a<- 0.10
   
   #Obtención de los valores de una curva normal estandar 
  cola.izq<- qt(a/2,n.A+n.B-2)
  cola.der<- qt(a/2,n.A+n.B-2,lower.tail = F)
  
  #Varianzas poblacionales iguales
  sp<- sqrt(((n.A-1)*(var.A) + (n.B-1)*(var.B))/(n.A+n.B-2))
   
  # Obtenemos el intervalo de confianza para la diferencia de medias
    Lim.izq<- (media.A-media.B)+cola.izq*sp*sqrt((1/n.A) + (1/n.B))
    Lim.der<- (media.A-media.B)+cola.der*sp*sqrt((1/n.A) + (1/n.B))
    c(Lim.izq,Lim.der)
[1] -0.22582876  0.02582876

Intervalo de confianza para estimar la diferencia de medias con varianza desconocida y muestras grandes

Ejemplo

Se están utilizando normalmente en una granja avícola dos tipos de piensos compuestos A y B. Queriendo comparar la media de engorde con ambos piensos, para un nivel de confianza 0.9, se alimentan a 100 aves durante cierto tiempo con el pienso A obteniéndose una ganancia media de peso de 0.5 Kgr por ave con una cuasivarianza de 0.08. Simultáneamente a otras 120 aves se les alimenta con el pienso B y se obtiene un engorde medio de 0.2 Kgr con una cuasivarianza de 0.09. Estimar la diferencia de engorde medio.

   #Obtener los valores que se requieren para el intervalo.
    media.A<- 0.5
    n.A<- 100
    var.A<- 0.08
    media.B<- 0.2
    n.B<- 120
    var.B<- 0.09
    
    #coeficinete de confianza 1-a=0.90 por lo tanto a=0.10
    a<- 0.10
    
    #Obtención de los valores de una curva normal estandar 
  # Se utiliza el q de percentiles por que nos dan un porcentaje y queremos el valor de corte y se divide entre 2 porque queremos ambas colas de la normal.
  cola.izq<- qnorm(a/2,0,1)
  cola.der<- qnorm(a/2,0,1,lower.tail = F)
  
    # Obtenemos el intervalo de confianza para la diferencia de medias
    Lim.izq<- (media.A-media.B)+cola.izq*sqrt(var.A/n.A + var.B/n.B)
    Lim.der<- (media.A-media.B)+cola.der*sqrt(var.A/n.A + var.B/n.B)
    c(Lim.izq,Lim.der)
[1] 0.235242 0.364758

Intervalo de confianza para estimar la diferencia varianzas o cociente de varianzas, con medias desconocidas

Ejemplo

Una central lechera recibe diariamente leche de dos granjas A y B. Deseando estudiar la calidad de los productos se eligen dos muestras al azar de la leche suministrada por cada una de las granjas analizando el contenido en grasa. Para la granja A se han tomado 11 muestras obteniéndose una cuasivarianza de 0.034, mientras que para la granja B ha sido de 0.027 en un total de 16 muestras. Es conocido por experiencias previas que los contenidos medios en grasa de la granjas son normales e independientes. Estimar el cociente de varianzas al nivel de confianza de 0.98.

  #Obtenemos los valores
  n.A<- 11
  var.A<- 0.034
  n.B<- 16
  var.B<- 0.027
  
   #coeficinete de confianza 1-a=0.98 por lo tanto a=0.02
    a<- 0.02
    
   #Para este intervalo utilizaremos la distribución F de Fisher
    cola.izq<- qf(a/2,n.A-1,n.B-1)
    cola.der<- qf(a/2,n.B-1,n.A-1)
    
    #Calculamos el intervalo
    Lim.izq<- (1/cola.izq)*(var.A/var.B)
    Lim.der<- (cola.der)*(var.A/var.B)
    c(Lim.izq,Lim.der)
[1] 5.7398795 0.3309538

Intervalo de confianza para estimar la proporción

Ejemplo

Se ignora la proporción de ranas tigre que se encuentran en una región de México. Para dar una estimación se ha tomado una muestra de 100 ranas observando que 15 de ellas son de este tipo. Hallar un intervalo de confianza al nivel de confianza del 0.95 para la proporción de ranas tigre.

   #Obtenemos los valores necesarios para la formula
   p<- 15/100
   n<- 100
   
   #Coeficiente de confianza
  a<- 0.05
    
   #Obtención de los valores de una curva normal estandar 
  cola.izq<- qnorm(a/2,0,1)
  cola.der<- qnorm(a/2,0,1,lower.tail = F)
   
 #Calculamos el intervalo de confianza
  Lim.izq<- p+cola.izq*sqrt(p*(1-p)/n)
  Lim.der<- p+cola.der*sqrt(p*(1-p)/n)
  c(Lim.izq,Lim.der)
[1] 0.08001529 0.21998471

Intervalo de confianza para estimar la diferencia de proporciones

Ejemplo

Se desean comparar las proporciones de ranas pipiens que se encuentran en dos regiones independientes de México. Para dar una estimación se ha tomado una muestra de 80 ranas observando que 5 de ellas son de este tipo en la zona A, habiendo 8 de 100 en la zona B. Hallar un intervalo de confianza al nivel de confianza del 0.95 para la diferencia de proporciones de ranas pipiens.

    #Obtenemos las proporciones
    p1<- 5/80
    p2<- 8/100
    n.p1<- 80
    n.p2<- 100
    
    #Coeficiente de confianza
    a<- 0.05
    
   #Obtención de los valores de una curva normal estandar 
  cola.izq<- qnorm(a/2,0,1)
  cola.der<- qnorm(a/2,0,1,lower.tail = F)
  
  #Calculamos el intervalo de confianza
  Lim.izq<- (p1-p2)+cola.izq*sqrt((p1*(1-p1)/n.p1)+(p2*(1-p2)/n.p2))
   Lim.der<- (p1-p2)+cola.der*sqrt((p1*(1-p1)/n.p1)+(p2*(1-p2)/n.p2))
  c(Lim.izq,Lim.der)
[1] -0.09260581  0.05760581

Pruebas de hipótesis

Una prueba de hipótesis es una regla que especifica si se puede aceptar o rechazar una afirmación acerca de una población dependiendo de la evidencia proporcionada por una muestra de datos.

Una prueba de hipótesis examina dos hipótesis opuestas sobre una población: la hipótesis nula y la hipótesis alternativa. La hipótesis nula es el enunciado que se probará. Por lo general, la hipótesis nula es un enunciado de que “no hay efecto” o “no hay diferencia”. La hipótesis alternativa es el enunciado que se desea poder concluir que es verdadero de acuerdo con la evidencia proporcionada por los datos de la muestra.

Con base en los datos de muestra, la prueba determina si se puede rechazar la hipótesis nula. Usted utiliza el valor p para tomar esa decisión. Si el valor p es menor que el nivel de significancia (denotado como α o alfa), entonces puede rechazar la hipótesis nula.

Pasos de una prueba de hipotesis:
1) Reconocer y definir la o las variables
2) Formular las hipótesis nula y alternativa
3) Establecer un estadístico de prueba adecuado
4) Seleccionar un nivel de significación (valor de alfa)
5) Determinar la zona de rechazo y aceptación
6) Calcular el valor observado del estadístico de prueba (p-valor)
7) Obtener la conclusión

Prueba de hipótesis para la media con datos de la población

Ejemplo

Se piensa que el tiempo medio que está en paro un tipo de profesional de un determinado sector es de 13.5 meses. Para contrastar esta hipótesis al nivel a = 5% frente a la alternativa (que no es cierto) se tomó una muestra de 45 profesionales que estuvieron en paro en ese sector y se obtuvo una media de 17.2 meses y una cuasi-desviación típica de 15.3 meses. Compruebe si se rechaza o acepta dicha hipótesis.

  #Plantear mi hipotesis
  #Ho: mu=13.5
  #Ha: mu!=13.5
  
  #Datos del problema
  xbar<- 17.2
  mu<- 13.5
  s<- 15.3
  n<- 45
  a<- 0.05
  
  # Estadistico de prueba
  Z<- (xbar-mu)/(s/sqrt(n))
  
  #Distribución estándar para la zona de aceptación o rechazo
  cola.izq<- qnorm(a/2,0,1)
  cola.der<- qnorm(a/2,0,1,lower.tail = F)
  
  #intervalo de confianza
  intervalo.inf<- xbar+cola.izq*(s/sqrt(n))
  intervalo.sup<- xbar+cola.der*(s/sqrt(n))
  c(intervalo.inf,intervalo.sup)
[1] 12.72974 21.67026
  #p-valor: 𝑝−𝑣𝑎𝑙𝑜𝑟 = 𝑃(∣𝑍∣ > 1,62) = 𝑃(𝑍 < −1,62)+𝑃(𝑍 > 1,62) = 1,62) = 0,1048
  # Primera forma
  pnorm(-Z)+pnorm(Z,lower.tail = F)
[1] 0.1047508
  # Segunda forma
  2*pnorm(-Z)
[1] 0.1047508
  # Conclusión
  # De acuerdo al p-valor que es mayor a 0.05 entonces acepto mi hipotesis nula es decir el tiempo medio de paro de los profesionales si es de 13.5 min.

Prueba de hipótesis para la media con muestras pequeñas.

Se realiza un experimento donde se midió la producción de vainas de frijol por cada mata producida, en 12 unidades experimentales sometidas bajo las mismas condiciones. mf<- c(18,11,17,10,20,25,13,16,25,20,19,20)

Ejemplo

  1. Construya un intervalo de confianza al 99% de confianza para el rendimiento promedio de la de vainas producidas por cada mata de frijol.
  mf<- c(18,11,17,10,20,25,13,16,25,20,19,20)
  ph<-t.test(mf,conf.level = 0.99)
  ph

    One Sample t-test

data:  mf
t = 12.864, df = 11, p-value = 5.673e-08
alternative hypothesis: true mean is not equal to 0
99 percent confidence interval:
 13.52788 22.13879
sample estimates:
mean of x 
 17.83333 
  #Intervalo de confianza
  c(ph$conf.int[1], ph$conf.int[2])
[1] 13.52788 22.13879
  1. Supongamos que deseamos verificar la siguiente hipotesis estadística: el número de vainas producidas por mata de frijol, es diferente de 23, al 99% de confianza.
  #Planteamineto de la hipotesis
  # Ho: Num.vainas=23
  # Ha: Num.vainas!=23
  a<- 0.99
  Num.vainas=23
  t.test(mf,mu=Num.vainas,conf.level = a)

    One Sample t-test

data:  mf
t = -3.7271, df = 11, p-value = 0.003341
alternative hypothesis: true mean is not equal to 23
99 percent confidence interval:
 13.52788 22.13879
sample estimates:
mean of x 
 17.83333 
  #Conclusión
  #De acuerdo a que el p-valor es menor a 0.01 entonces podemos concluir que el número de vainas producidas por mata de frijol es diferente a 23.
  1. Supongamos que deseamos verificar la siguiente hipotesis: el número de vainas producidas por mata es mayor que 23, al 99% de confianza.
   #Planteamineto de la hipotesis
  # Ho: Num.vainas>=23
  # Ha: Num.vainas<23
  t.test(mf,mu=23,alternative='less',conf.level = 0.99)

    One Sample t-test

data:  mf
t = -3.7271, df = 11, p-value = 0.00167
alternative hypothesis: true mean is less than 23
99 percent confidence interval:
    -Inf 21.6013
sample estimates:
mean of x 
 17.83333 
  #Conclusión
  # De acuerdo con el p-valor menor 0.01 entonces podemos decir que el número de vainas producidas por mata de frijos es menor a 23.
  1. Suponga que se desea conocer que: si, el número de vainas producidas por mata es menor de 6, al 95% de confianza.
    #Planteamineto de la hipotesis
    # Ho: Num.vainas<=6
    # Ha: Num.vainas>6
    t.test(mf,mu=6,alternative='greater',conf.level = 0.99)

    One Sample t-test

data:  mf
t = 8.5362, df = 11, p-value = 1.753e-06
alternative hypothesis: true mean is greater than 6
99 percent confidence interval:
 14.06537      Inf
sample estimates:
mean of x 
 17.83333 
  #Conclusión
  # De acuerdo con el p-valor menor 0.01 entonces podemos decir que el número de vainas producidas por mata de frijos es mayor a 6

Prueba de hipótesis para la diferencia de medias independientes

De acuerdo al archivo “ASAP.csv”, realizar una prueba de hipotesis para determinar si existe diferencia significativa entre las variables Rpl7 y E1Fa con un nivel de confianza del 95%

Ejemplo

    #Planteamiento de la prueba
    #Ho: Rpl7=E1Fa
    #Ha: Rpl7!=E1Fa

    t.test(datos$Rpl7,datos$E1Fa, alternative = 'two.sided',conf.level = 0.95, var.equal =F)

    Welch Two Sample t-test

data:  datos$Rpl7 and datos$E1Fa
t = -13.008, df = 110.86, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -5.694066 -4.188538
sample estimates:
mean of x mean of y 
 19.62487  24.56617 
    #Conclusión
    # De acuerdo a que el p-valor es menor a 0.05 entonces podemos decir que la reacción Rpl7 es diferente estadisticamente a la reacción E1Fa.

Prueba de hipótesis para la diferencia de medias dependientes

Diez individuos participaron de programa para perder peso corporal por medio de una dieta. Los voluntarios fueron pesados antes y después de haber participado del programa y los datos en libras aparecen abajo. ¿Hay evidencia que soporte la afirmación de la dieta disminuye el peso medio de los participantes? Usar nivel de significancia del 5%. Antes 195 213 247 201 187 210 215 246 294 310 Despues 187 195 221 190 175 197 199 221 278 285

Ejemplo

   # Planteamiento de la Hipotesis
   # Ho: mu_antes<=mu_despues
   # Ha: mu_antes>mu_despues

#Observaciones
Antes<- c(195,  213,    247,    201,    187,    210,    215,    246,    294,    310)
Despues<- c(187,195,    221,    190,    175,    197,    199,    221,    278,    285)

#Analisis descriptivo
mean(Antes)
[1] 231.8
mean(Despues)
[1] 214.8
datos.depen<- data.frame(Peso=c(Antes, Despues), 
                   Dieta=factor(rep(c('Antes','Despues'),c(10,10))))
boxplot(datos.depen$Peso~datos.depen$Dieta)

#probar normalidad
library(nortest)
lillie.test(Antes)

    Lilliefors (Kolmogorov-Smirnov) normality test

data:  Antes
D = 0.2556, p-value = 0.06307
lillie.test(Despues)

    Lilliefors (Kolmogorov-Smirnov) normality test

data:  Despues
D = 0.26161, p-value = 0.05091
ad.test(Antes)

    Anderson-Darling normality test

data:  Antes
A = 0.57586, p-value = 0.09956
ad.test(Despues)

    Anderson-Darling normality test

data:  Despues
A = 0.82497, p-value = 0.02107
#Probamos la hipotesis con t-test utilizando los datos pareados o dependientes con el parámetro paired=T
t.test(Antes,Despues,alternative = 'greater',coef.level=0.95, paired = T)

    Paired t-test

data:  Antes and Despues
t = 8.3843, df = 9, p-value = 7.593e-06
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
 13.2832     Inf
sample estimates:
mean of the differences 
                     17 
#pvalor=0.000007593

#conclusión
# Debido a que el p-valor es menor a 0.05 podemos concluir que rechazamos la hipotesis
# nula y aceptamos la alternativa por lo tanto la dieta si funciono en
# las personas que se sumetieron a ella.

Prueba de hipótesis para la diferencia de varianzas

De acuerdo al archivo ASAP.csv, realizar una prueba de hipótesis para determinar si existen diferencias significativas en las varianzas de Bactina y E1fa a un 95% de confianza.

Ejemplo

   #Planteamiento de la prueba
    #Ho: var.Bactina=var.E1Fa
    #Ha: var.Bactina!=var.E1Fa

   var.test(datos$Bactina,datos$E1Fa,alternative = 'two.sided',conf.level = 0.95)

    F test to compare two variances

data:  datos$Bactina and datos$E1Fa
F = 1.6357, num df = 63, denom df = 63, p-value = 0.05293
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.9937262 2.6923887
sample estimates:
ratio of variances 
          1.635695 

Prueba de hipótesis para la diferencia de medias con varianzas iguales

De acuerdo al ejercicio anterior podemos decir que las varianzas son iguales por lo que buscamos ahora saber si las medias de ambos son iguales o diferentes, plantear una hipotesis con el 95% de confianza.

Ejemplo

   #Planteamiento de la prueba
    #Ho: media.Bactina=media.E1Fa
    #Ha: media.Bactina!=media.E1Fa

  #Agregamos el parámetro var.equal=T para decirle a la función que las varianzas son iguales en ambos grupos de datos
  t.test(datos$Bactina,datos$E1Fa,alternative = 'two.sided',conf.level = 0.95, var.equal = T)

    Two Sample t-test

data:  datos$Bactina and datos$E1Fa
t = -3.2302, df = 126, p-value = 0.001578
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -1.8036534 -0.4332216
sample estimates:
mean of x mean of y 
 23.44773  24.56617 
  #Conclusión
  # De acuerdo al p-valor es menor a 0.05 entonces podemos concluir que la reacción Bactina es diferente a los datos de la reaccion E1Fa.

Prueba de hipótesis para la proporción

Ejemplo

Un partido político realiza un sondeo para conocer la intención de voto. En una muestra de 300 votantes se encuentra que solo 105 son favorables al partido. Contraste la hipótesis a un nivel de significación del 10% de que al menos el 40% de la población lo votará.

  #Ho: P>=40%   
  #Ha: P<40%
  n<- 300
  p.m<- 105/n
  p.b<- 0.40
  
  # Distribución
  nivel.inf<- qnorm(0.10,0,1)
  
  # Estadistico de prueba
  Z<- (p.m-p.b)/sqrt((p.m*(1-p.m))/n)
  
  #P-valor  P(Z<0.40)
  pnorm(Z)
[1] 0.03470954
  #Conclusión
  #El 40% de los votantes no votará por el en las proximas elecciones
  
  # Utilizando la función de R para la proporción
  prop.test(105,n,p=0.40,alternative = 'less', conf.level = 0.90, correct = F)

    1-sample proportions test without continuity correction

data:  105 out of n, null probability 0.4
X-squared = 3.125, df = 1, p-value = 0.03855
alternative hypothesis: true p is less than 0.4
90 percent confidence interval:
 0.0000000 0.3860212
sample estimates:
   p 
0.35 
  #Conclusión
  # De acuerdo al p-valor que es menor a 0.10 entonces el 40% de los votanten no votará por él en las próximas elecciones.

Prueba de hipótesis para la diferencia de proporciones

Se quiere determinar si un cambio en el método de fabricación de una piezas ha sido efectivo o no. Para esta comparación se tomaron 2 muestras, una antes y otra después del cambio en el proceso y los resultados obtenidos son los siguientes. Defectuosas Analizadas Antes=75 Antes=1500 Despues=80 Despues=2000 Realizar una prueba de hipótesis con un nivel de significancia del 10%.

Ejemplo

   #Planteamiento de la prueba de hipótesis
   #Ho: Prop.Def-Prop.Anali=0   ó   Prop.Def=Prop.Anali
   #Ha: Prop.Def-Prop.Anali!=0  ó   Prop.Def!=Prop.Anali

  prop.test(c(75,80),c(1500,2000), alternative = 'two.sided',conf.level = 0.90, correct = T)

    2-sample test for equality of proportions with continuity correction

data:  c(75, 80) out of c(1500, 2000)
X-squared = 1.7958, df = 1, p-value = 0.1802
alternative hypothesis: two.sided
90 percent confidence interval:
 -0.002314573  0.022314573
sample estimates:
prop 1 prop 2 
  0.05   0.04 
#Conclusión
# Por lo tanto como el p-valor es mayor a 0.10 entonces el método de fabricación defectusas es igual al método de fabricación analizadas.