El presente documento describe paso a paso la aplicación de la herramienta RStudio para hacer un análisis probabilístico.
Las secciones sombreadas en color gris muestran las instrucciones específicas del lenguaje R, si la instrucción implica una respuesta o resultado, ésta aparece en una sección enmarcada con fondo blanco. Por ejemplo, para calcular el logaritmo de 55 y el resultado multiplicarlo por 3, se usa la función log y la instrucción en R sería:
## [1] 12.022
Los datos para trabajar con R se obtendrán de un archivo tipo CSV (comma separated values) que contiene información de 1250 huracanes en la zona del Caribe. Para cada huracán se registró su id específico, el lugar de primer contacto y la categoría que tenía al momento del contacto.
IMPORTANTE: Los datos de este ejemplo son artificiales, creados para efectos didácticos.
La función para leer datos de un archivo CSV es read.csv indicando entre paréntesis el nombre del archivo que se desea leer. El resultado de esta función debe asignarse a un objeto para que quede almacenado en memoria.
En nuestro ejemplo, el archivo se llama huracanes.csv y el objeto que se va a crear en memoria lo llamaremos huracanes.
Descarga el archivo de datos aquí
En este punto, el objeto huracanes debe aparecer en la sección derecha superior de RStudio donde se muestra el contenido de la memoria. La función head nos permite visualizar las n primeras observaciones contenidas en el objeto; si queremos ver las 10 primeras observaciones, la instrucción es:
| id | lugar | categoria |
|---|---|---|
| CRBH0001 | Florida | Cat 3 |
| CRBH0002 | Cuba | Cat 1 |
| CRBH0003 | Yucatán | Cat 4 |
| CRBH0004 | Yucatán | Cat 1 |
| CRBH0005 | Florida | Cat 2 |
| CRBH0006 | Yucatán | Cat 5 |
| CRBH0007 | Yucatán | Cat 2 |
| CRBH0008 | Cuba | Cat 4 |
| CRBH0009 | Florida | Cat 3 |
| CRBH0010 | Yucatán | Cat 3 |
En este ejemplo, analizaremos las variables lugar y categoria.
Considerando los posibles resultados del lugar podemos definir 3 eventos simples:
Considerando los posibles resultados de la categoría podemos definir 5 eventos simples:
A partir de estos eventos podemos hacer análisis de probabilidades.
Las probabilidades marginales que se pueden obtener son 8:
| P(Cuba) | Probabilidad de que un huracán llegue a Cuba como primer punto de contacto. |
| P(Florida) | Probabilidad de que un huracán llegue a Florida como primer punto de contacto. |
| P(Yucatán) | Probabilidad de que un huracán llegue a Yucatán como primer punto de contacto. |
| P(Cat 1) | Probabilidad de que un huracán sea categoría 1 al momento del primer contacto. |
| P(Cat 2) | Probabilidad de que un huracán sea categoría 2 al momento del primer contacto. |
| P(Cat 3) | Probabilidad de que un huracán sea categoría 3 al momento del primer contacto. |
| P(Cat 4) | Probabilidad de que un huracán sea categoría 4 al momento del primer contacto. |
| P(Cat 5) | Probabilidad de que un huracán sea categoría 5 al momento del primer contacto. |
Las probabilidades conjuntas que se pueden obtener son 15:
| P(Cuba y Cat 1) | Probabilidad de que un huracán llegue a Cuba y sea categoría 1. |
| P(Cuba y Cat 2) | Probabilidad de que un huracán llegue a Cuba y sea categoría 2. |
| P(Cuba y Cat 3) | Probabilidad de que un huracán llegue a Cuba y sea categoría 3. |
| P(Cuba y Cat 4) | Probabilidad de que un huracán llegue a Cuba y sea categoría 4. |
| P(Cuba y Cat 5) | Probabilidad de que un huracán llegue a Cuba y sea categoría 5. |
| P(Florida y Cat 1) | Probabilidad de que un huracán llegue a Florida y sea categoría 1. |
| P(Florida y Cat 2) | Probabilidad de que un huracán llegue a Florida y sea categoría 2. |
| P(Florida y Cat 3) | Probabilidad de que un huracán llegue a Florida y sea categoría 3. |
| P(Florida y Cat 4) | Probabilidad de que un huracán llegue a Florida y sea categoría 4. |
| P(Florida y Cat 5) | Probabilidad de que un huracán llegue a Florida y sea categoría 5. |
| P(Yucatán y Cat 1) | Probabilidad de que un huracán llegue a Yucatán y sea categoría 1. |
| P(Yucatán y Cat 2) | Probabilidad de que un huracán llegue a Yucatán y sea categoría 2. |
| P(Yucatán y Cat 3) | Probabilidad de que un huracán llegue a Yucatán y sea categoría 3. |
| P(Yucatán y Cat 4) | Probabilidad de que un huracán llegue a Yucatán y sea categoría 4. |
| P(Yucatán y Cat 5) | Probabilidad de que un huracán llegue a Yucatán y sea categoría 5. |
Nota: Recuerde que para probabilidades conjuntas, el orden de los eventos es indistinto, es decir, por ejemplo: P(Cuba y Cat 1) = P(Cat 1 y Cuba)
Las probabilidades de la unión que se pueden obtener son 15:
| P(Cuba o Cat 1) | Probabilidad de que un huracán llegue a Cuba o sea categoría 1. |
| P(Cuba o Cat 2) | Probabilidad de que un huracán llegue a Cuba o sea categoría 2. |
| P(Cuba o Cat 3) | Probabilidad de que un huracán llegue a Cuba o sea categoría 3. |
| P(Cuba o Cat 4) | Probabilidad de que un huracán llegue a Cuba o sea categoría 4. |
| P(Cuba o Cat 5) | Probabilidad de que un huracán llegue a Cuba o sea categoría 5. |
| P(Florida o Cat 1) | Probabilidad de que un huracán llegue a Florida o sea categoría 1. |
| P(Florida o Cat 2) | Probabilidad de que un huracán llegue a Florida o sea categoría 2. |
| P(Florida o Cat 3) | Probabilidad de que un huracán llegue a Florida o sea categoría 3. |
| P(Florida o Cat 4) | Probabilidad de que un huracán llegue a Florida o sea categoría 4. |
| P(Florida o Cat 5) | Probabilidad de que un huracán llegue a Florida o sea categoría 5. |
| P(Yucatán o Cat 1) | Probabilidad de que un huracán llegue a Yucatán o sea categoría 1. |
| P(Yucatán o Cat 2) | Probabilidad de que un huracán llegue a Yucatán o sea categoría 2. |
| P(Yucatán o Cat 3) | Probabilidad de que un huracán llegue a Yucatán o sea categoría 3. |
| P(Yucatán o Cat 4) | Probabilidad de que un huracán llegue a Yucatán o sea categoría 4. |
| P(Yucatán o Cat 5) | Probabilidad de que un huracán llegue a Yucatán o sea categoría 5. |
Nota: Recuerde que para probabilidades conjuntas, el orden de los eventos es indistinto, es decir, por ejemplo: P(Cuba o Cat 1) = P(Cat 1 o Cuba)
Las probabilidades condicionales que se pueden obtener son 30:
| P(Cuba | Cat 1) | Probabilidad de que un huracán llegue a Cuba dado que se sabe que será categoría 1. |
| P(Cuba | Cat 2) | Probabilidad de que un huracán llegue a Cuba dado que se sabe que será categoría 2. |
| P(Cuba | Cat 3) | Probabilidad de que un huracán llegue a Cuba dado que se sabe que será categoría 3. |
| P(Cuba | Cat 4) | Probabilidad de que un huracán llegue a Cuba dado que se sabe que será categoría 4. |
| P(Cuba | Cat 5) | Probabilidad de que un huracán llegue a Cuba dado que se sabe que será categoría 5. |
| P(Florida | Cat 1) | Probabilidad de que un huracán llegue a Florida dado que se sabe que será categoría 1. |
| P(Florida | Cat 2) | Probabilidad de que un huracán llegue a Florida dado que se sabe que será categoría 2. |
| P(Florida | Cat 3) | Probabilidad de que un huracán llegue a Florida dado que se sabe que será categoría 3. |
| P(Florida | Cat 4) | Probabilidad de que un huracán llegue a Florida dado que se sabe que será categoría 4. |
| P(Florida | Cat 5) | Probabilidad de que un huracán llegue a Florida dado que se sabe que será categoría 5. |
| P(Yucatán | Cat 1) | Probabilidad de que un huracán llegue a Yucatán dado que se sabe que será categoría 1. |
| P(Yucatán | Cat 2) | Probabilidad de que un huracán llegue a Yucatán dado que se sabe que será categoría 2. |
| P(Yucatán | Cat 3) | Probabilidad de que un huracán llegue a Yucatán dado que se sabe que será categoría 3. |
| P(Yucatán | Cat 4) | Probabilidad de que un huracán llegue a Yucatán dado que se sabe que será categoría 4. |
| P(Yucatán | Cat 5) | Probabilidad de que un huracán llegue a Yucatán dado que se sabe que será categoría 5. |
| P(Cat 1 | Cuba) | Probabilidad de que un huracán sea categoría 1 dado que se sabe que llegará primero a Cuba. |
| P(Cat 1 | Florida) | Probabilidad de que un huracán sea categoría 1 dado que se sabe que llegará primero a Florida. |
| P(Cat 1 | Yucatán) | Probabilidad de que un huracán sea categoría 1 dado que se sabe que llegará primero a Yucatán. |
| P(Cat 2 | Cuba) | Probabilidad de que un huracán sea categoría 2 dado que se sabe que llegará primero a Cuba. |
| P(Cat 2 | Florida) | Probabilidad de que un huracán sea categoría 2 dado que se sabe que llegará primero a Florida. |
| P(Cat 2 | Yucatán) | Probabilidad de que un huracán sea categoría 2 dado que se sabe que llegará primero a Yucatán. |
| P(Cat 3 | Cuba) | Probabilidad de que un huracán sea categoría 3 dado que se sabe que llegará primero a Cuba. |
| P(Cat 3 | Florida) | Probabilidad de que un huracán sea categoría 3 dado que se sabe que llegará primero a Florida. |
| P(Cat 3 | Yucatán) | Probabilidad de que un huracán sea categoría 3 dado que se sabe que llegará primero a Yucatán. |
| P(Cat 4 | Cuba) | Probabilidad de que un huracán sea categoría 4 dado que se sabe que llegará primero a Cuba. |
| P(Cat 4 | Florida) | Probabilidad de que un huracán sea categoría 4 dado que se sabe que llegará primero a Florida. |
| P(Cat 4 | Yucatán) | Probabilidad de que un huracán sea categoría 4 dado que se sabe que llegará primero a Yucatán. |
| P(Cat 5 | Cuba) | Probabilidad de que un huracán sea categoría 5 dado que se sabe que llegará primero a Cuba. |
| P(Cat 5 | Florida) | Probabilidad de que un huracán sea categoría 5 dado que se sabe que llegará primero a Florida. |
| P(Cat 5 | Yucatán) | Probabilidad de que un huracán sea categoría 5 dado que se sabe que llegará primero a Yucatán. |
Una tabla de contingencia relaciona dos o más variables del fenómeno observado. En nuestro ejemplo, tenemos 2 variables, usaremos los valores posibles de la variable categoria como columnas y los valores posibles de lugar como filas.
Para construir una tabla de contigencia con las frecuencias, se usa la función table, indicando la variable que queremos para las filas, seguida de la variable que queremos para las columnas:
##
## Cat 1 Cat 2 Cat 3 Cat 4 Cat 5
## Cuba 78 65 47 29 28
## Florida 193 176 138 55 58
## Yucatán 119 116 72 34 42
Cada valor de la tabla indica la cantidad de huracanes de una categoría específica en un lugar específico, por ejemplo:
Para construir la tabla correspondiente con probabilidades, se usa la función prop.table con la tabla previamente construida.
##
## Cat 1 Cat 2 Cat 3 Cat 4 Cat 5
## Cuba 0.0624 0.0520 0.0376 0.0232 0.0224
## Florida 0.1544 0.1408 0.1104 0.0440 0.0464
## Yucatán 0.0952 0.0928 0.0576 0.0272 0.0336
Las probabilidades marginales o simples son las asociadas a un único evento y se obtienen de sumar filas o columnas de una tabla de contingencia de probabilidades, las funciones para eso son rowSums y colSums.
En nuestra tabla, las filas son el lugar de primer contacto, por lo tanto, las probabilidades marginales relacionadas se obtienen con la función rowSums:
## Cuba Florida Yucatán
## 0.1976 0.4960 0.3064
Si deseamos una probabilidad en particular podemos indexar el resultado:
## Cuba
## 0.1976
## Florida
## 0.496
## Yucatán
## 0.3064
En nuestra tabla, las columnas son la categoría del huracán, por lo tanto, las probabilidades marginales relacionadas se obtienen con la función colSums:
## Cat 1 Cat 2 Cat 3 Cat 4 Cat 5
## 0.3120 0.2856 0.2056 0.0944 0.1024
Si deseamos una probabilidad en particular podemos indexar el resultado:
## Cat 1
## 0.312
## Cat 2
## 0.2856
## Cat 3
## 0.2056
## Cat 4
## 0.0944
## Cat 5
## 0.1024
Las probabilidades conjuntas corresponden a la intersección de 2 eventos y en la tabla de contingencia se obtienen directamente de las celdas referenciadas por su fila y columna.
En nuestra tabla, usamos indexación para obtener las probabilidades conjuntas:
## [1] 0.0624
## [1] 0.052
## [1] 0.0376
## [1] 0.0232
## [1] 0.0224
## [1] 0.1544
## [1] 0.1408
## [1] 0.1104
## [1] 0.044
## [1] 0.0464
## [1] 0.0952
## [1] 0.0928
## [1] 0.0576
## [1] 0.0272
## [1] 0.0336
Las probabilidades de la unión se obtienen aplicando la Ley Aditiva, con las probabilidades marginales y condicionales.
# P(Cuba o Cat 1)
marginales.lugar['Cuba'] + marginales.categoria['Cat 1'] - tabla.probabilidades['Cuba','Cat 1']## Cuba
## 0.4472
# P(Cuba o Cat 2)
marginales.lugar['Cuba'] + marginales.categoria['Cat 2'] - tabla.probabilidades['Cuba','Cat 2']## Cuba
## 0.4312
# P(Cuba o Cat 3)
marginales.lugar['Cuba'] + marginales.categoria['Cat 3'] - tabla.probabilidades['Cuba','Cat 3']## Cuba
## 0.3656
# P(Cuba o Cat 4)
marginales.lugar['Cuba'] + marginales.categoria['Cat 4'] - tabla.probabilidades['Cuba','Cat 4']## Cuba
## 0.2688
# P(Cuba o Cat 5)
marginales.lugar['Cuba'] + marginales.categoria['Cat 5'] - tabla.probabilidades['Cuba','Cat 5']## Cuba
## 0.2776
# P(Florida o Cat 1)
marginales.lugar['Florida'] + marginales.categoria['Cat 1'] - tabla.probabilidades['Florida','Cat 1']## Florida
## 0.6536
# P(Florida o Cat 2)
marginales.lugar['Florida'] + marginales.categoria['Cat 2'] - tabla.probabilidades['Florida','Cat 2']## Florida
## 0.6408
# P(Florida o Cat 3)
marginales.lugar['Florida'] + marginales.categoria['Cat 3'] - tabla.probabilidades['Florida','Cat 3']## Florida
## 0.5912
# P(Florida o Cat 4)
marginales.lugar['Florida'] + marginales.categoria['Cat 4'] - tabla.probabilidades['Florida','Cat 4']## Florida
## 0.5464
# P(Florida o Cat 5)
marginales.lugar['Florida'] + marginales.categoria['Cat 5'] - tabla.probabilidades['Florida','Cat 5']## Florida
## 0.552
# P(Yucatán o Cat 1)
marginales.lugar['Yucatán'] + marginales.categoria['Cat 1'] - tabla.probabilidades['Yucatán','Cat 1']## Yucatán
## 0.5232
# P(Yucatán o Cat 2)
marginales.lugar['Yucatán'] + marginales.categoria['Cat 2'] - tabla.probabilidades['Yucatán','Cat 2']## Yucatán
## 0.4992
# P(Yucatán o Cat 3)
marginales.lugar['Yucatán'] + marginales.categoria['Cat 3'] - tabla.probabilidades['Yucatán','Cat 3']## Yucatán
## 0.4544
# P(Yucatán o Cat 4)
marginales.lugar['Yucatán'] + marginales.categoria['Cat 4'] - tabla.probabilidades['Yucatán','Cat 4']## Yucatán
## 0.3736
# P(Yucatán o Cat 5)
marginales.lugar['Yucatán'] + marginales.categoria['Cat 5'] - tabla.probabilidades['Yucatán','Cat 5']## Yucatán
## 0.3752
Las probabilidades condicionales se calculan dividiendo probabilidades conjuntas entre probabilidades marginales (las que correspondan según lo deseado).
Aprovechando las características de R, podemos dividir la tabla de probabilidades conjuntas entre un vector de probabilidades marginales obteniendo así probabilidades condicionales.
Para calcular las probablidades condicionales donde los eventos ocurridos corresponden a las filas de la tabla de probabilidades, dividimos directamente.
Para efectos de una mejor legibilidad e interpretación de la tabla obtenida, la invertimos (filas por columnas) usando la función t.
En nuestro ejemplo, las filas corresponden al lugar:
# Cálculo de las probabilidades condicionales
condicionales.dado.lugar <- tabla.probabilidades / marginales.lugar
# Se invierte la tabla para una mejor interpretación
condicionales.dado.lugar <- t(condicionales.dado.lugar)
condicionales.dado.lugar##
## Cuba Florida Yucatán
## Cat 1 0.31578947 0.31129032 0.31070496
## Cat 2 0.26315789 0.28387097 0.30287206
## Cat 3 0.19028340 0.22258065 0.18798956
## Cat 4 0.11740891 0.08870968 0.08877285
## Cat 5 0.11336032 0.09354839 0.10966057
Las probabilidades obtenidas son las de que el huracán sea de una categoría específica dado que se sabe que tocará un lugar específico; se pueden obtener indexando la tabla:
## [1] 0.3157895
## [1] 0.2631579
## [1] 0.1902834
## [1] 0.1174089
## [1] 0.1133603
## [1] 0.3112903
## [1] 0.283871
## [1] 0.2225806
## [1] 0.08870968
## [1] 0.09354839
## [1] 0.310705
## [1] 0.3028721
## [1] 0.1879896
## [1] 0.08877285
## [1] 0.1096606
Para calcular las probablidades condicionales donde los eventos ocurridos corresponden a las columnas de la tabla de probabilidades, es necesario invertir la tabla (filas por columnas) antes de dividir.
Para efectos de una mejor legibilidad e interpretación de la tabla obtenida, la invertimos (filas por columnas) usando la función t.
En nuestro ejemplo, las columnas corresponden a la categoría:
# Cálculo de las probabilidades condicionales
condicionales.dado.categoria <- t(tabla.probabilidades) / marginales.categoria
# Se invierte la tabla para una mejor interpretación
condicionales.dado.categoria <- t(condicionales.dado.categoria)
condicionales.dado.categoria##
## Cat 1 Cat 2 Cat 3 Cat 4 Cat 5
## Cuba 0.2000000 0.1820728 0.1828794 0.2457627 0.2187500
## Florida 0.4948718 0.4929972 0.5369650 0.4661017 0.4531250
## Yucatán 0.3051282 0.3249300 0.2801556 0.2881356 0.3281250
Las probabilidades obtenidas son las de que el huracán tenga su primer contacto con un lugar específico dado que se sabe que tiene una categoría específica; se pueden obtener indexando la tabla:
## [1] 0.2
## [1] 0.4948718
## [1] 0.3051282
## [1] 0.1820728
## [1] 0.4929972
## [1] 0.32493
## [1] 0.1828794
## [1] 0.536965
## [1] 0.2801556
## [1] 0.2457627
## [1] 0.4661017
## [1] 0.2881356
## [1] 0.21875
## [1] 0.453125
## [1] 0.328125
Las siguientes son las funciones que es recomendable revisar la documentación para ir entendiendo que hace cada función y que opciones tiene.
tableprop.tablerowSumscolSumst
Dr. José Luis Barrera Canto
Profesor Investigador
División de Ingeniería y Ciencias Exactas
Universidad Anáhuac Mayab