1. Introducción

El presente documento describe paso a paso la aplicación de la herramienta RStudio para hacer un análisis estadí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:

log(55) * 3
## [1] 12.022

Preliminares

Para que su instalación de RStudio tenga acceso a todas las funciones estadísticas, es necesario descargar varios paquetes, con las instrucciones que se indican a continuación. Nota: Al momento de instalar cada paquete, la consola de R irá desplegando varios mensajes; puede hacer caso omiso de estos mensajes. Los paquetes solo tienen que descargarse una vez.

install.packages("e1071")
install.packages("DescTools")
install.packages("lsr")

Los paquetes instalados hay que cargarlos en memoria cada vez que trabajemos con ellos. Las instrucciones en R son:

library(e1071)
library(DescTools)
library(lsr)

2. Cargar los datos en memoria

Los datos para trabajar con R se obtendrán de un archivo tipo CSV (comma separated values) que contiene información de 985 propiedades del estado de California, USA. Para cada propiedad se recabaron 11 características de interés:

  • Ciudad
  • ZIP
  • Estado
  • Número de camas
  • Número de baños
  • Superficie (pies cuadrados)
  • Tipo de propiedad
  • Mes de la venta
  • Precio de la venta
  • Latitud
  • Longitud

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 realestate.csv y el objeto que se va a crear en memoria lo llamaremos propiedades.

Descarga el archivo de datos aquí

propiedades <- read.csv("realestate.csv")

En este punto, el objeto propiedades 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:

head(propiedades,10)
ciudad zip estado camas banos superficie tipo fecha.venta precio latitud longitud
Sacramento 95838 California 2 1 836 Residencial Mayo 59222 38.63191 -121.4349
Sacramento 95823 California 3 1 1167 Residencial Mayo 68212 38.47890 -121.4310
Sacramento 95815 California 2 1 796 Residencial Mayo 68880 38.61830 -121.4438
Sacramento 95815 California 2 1 852 Residencial Mayo 69307 38.61684 -121.4391
Sacramento 95824 California 2 1 797 Residencial Mayo 81900 38.51947 -121.4358
Sacramento 95841 California 3 1 1122 Condominio Mayo 89921 38.66260 -121.3278
Sacramento 95842 California 3 2 1104 Residencial Mayo 90895 38.68166 -121.3517
Sacramento 95820 California 3 1 1177 Residencial Mayo 91002 38.53509 -121.4814
Rancho Cordova 95670 California 2 2 941 Condominio Mayo 94905 38.62119 -121.2706
Rio Linda 95673 California 3 2 1146 Residencial Mayo 98937 38.70091 -121.4430

3. Verificar los tipos de datos y niveles de medición

Analizando las características de interes de nuestro ejemplo, se puede identificar el tipo, subtipo y nivel de medición para cada una; la tabla siguiente concentra este análisis:

Variable Tipo Subtipo Nivel
Ciudad Cualitativa Nominal
ZIP Cualitativa Nominal
Estado Cualitativa Nominal
Número de camas Cuantitativa Discreta De razón
Número de baños Cuantitativa Discreta De razón
Superficie (pies cuadrados) Cuantitativa Continua De razón
Tipo de propiedad Cualitativa Nominal
Fecha de la venta Cualitativa Ordinal
Precio de la venta Cuantitativa Continua De razón
Latitud Cuantitativa Continua De razón
Longitud Cuantitativa Continua De razón

Para verificar como R interpretó las variables leídas del archivo, se usa la función str que despliega la estructura del objeto; por ejemplo:

str(propiedades)
## 'data.frame':    985 obs. of  11 variables:
##  $ ciudad     : chr  "Sacramento" "Sacramento" "Sacramento" "Sacramento" ...
##  $ zip        : int  95838 95823 95815 95815 95824 95841 95842 95820 95670 95673 ...
##  $ estado     : chr  "California" "California" "California" "California" ...
##  $ camas      : int  2 3 2 2 2 3 3 3 2 3 ...
##  $ banos      : int  1 1 1 1 1 1 2 1 2 2 ...
##  $ superficie : int  836 1167 796 852 797 1122 1104 1177 941 1146 ...
##  $ tipo       : chr  "Residencial" "Residencial" "Residencial" "Residencial" ...
##  $ fecha.venta: chr  "Mayo" "Mayo" "Mayo" "Mayo" ...
##  $ precio     : int  59222 68212 68880 69307 81900 89921 90895 91002 94905 98937 ...
##  $ latitud    : num  38.6 38.5 38.6 38.6 38.5 ...
##  $ longitud   : num  -121 -121 -121 -121 -121 ...

En R, los tipos de variables y niveles de medición se relacionan de la siguiente manera:

  • un factor es una variable cualitativa nominal,
  • un factor ordenado es una variable cualitativa ordinal,
  • un int es una variable cuantitativa discreta de razón y
  • un num es una variable cuantitativa continuar de razón.

Incluyendo en nuestro análisis el resultado de la función str de R, tenemos:

Variable Tipo Subtipo Nivel Tipo en R ¿Correcto?
Ciudad Cualitativa Nominal chr N
ZIP Cualitativa Nominal int N
Estado Cualitativa Nominal chr N
Número de camas Cuantitativa Discreta De razón int S
Número de baños Cuantitativa Discreta De razón int S
Superficie (pies cuadrados) Cuantitativa Continua De razón int S
Tipo de propiedad Cualitativa Nominal chr N
Fecha de la venta Cualitativa Ordinal chr N
Precio de la venta Cuantitativa Continua De razón int S
Latitud Cuantitativa Continua De razón num S
Longitud Cuantitativa Continua De razón num S

Se observa que las variables ciudad, estado y tipo deben ser cualitativa nominal, sin embargo, R las interpretó como chr, por lo que es necesario que hagamos la conversión adecuada; para esto, usamos la función factor que convierte una lista de valores en categorías nominales, las instrucciones en R para convertir las variables son:

propiedades$ciudad <- factor(propiedades$ciudad)
propiedades$estado <- factor(propiedades$estado)
propiedades$tipo <- factor(propiedades$tipo)

Se observa que la variable zip debe ser cualitativa nominal, sin embargo, R la interpretó como int, por lo que es necesario que hagamos la conversión adecuada; para esto, usamos la función factor que convierte una lista de valores en categorías nominales, la instrucción en R para convertir la variable ZIP es la siguiente:

propiedades$zip <- factor(propiedades$zip)

En el caso de la variable fecha.venta debe ser cualitativa ordinal, sin embargo, R la interpretó como factor, por lo que es necesario que hagamos la conversión adecuada. En el caso de las variables tipo ordered es un factor donde se establece el orden específico de los niveles y la función en R es ordered.

# Este es el orden correcto de las fechas
meses <- c("Marzo", "Abril", "Mayo", "Junio", "Septiembre")

# Creamos la variable ordinal con las categorías ordenadas correctas
propiedades$fecha.venta <- ordered(propiedades$fecha.venta,levels=meses)

En el caso de la variable superficie debe ser cuantitativa continua escalar y R la interpretó como int, sin embargo, no es necesaria una conversión porque R le dará el tratamiento adecuado; en este ejemplo, para tener la correspondencia correcta, usamos la función as.numeric que convierte una lista de valores en valores numéricos, la instrucción en R para convertir la variable superficie es la siguiente:

propiedades$superficie <- as.numeric(propiedades$superficie)

Un análisis similar sería para la variable precio.

propiedades$precio <- as.numeric(propiedades$precio)

Finalmente, desplegamos nuevamente la estructura del objeto propiedades y vemos que todo está correctamente definido con base en el análisis de las variables.

str(propiedades)
## 'data.frame':    985 obs. of  11 variables:
##  $ ciudad     : Factor w/ 39 levels "Antelope","Auburn",..: 34 34 34 34 34 34 34 34 29 31 ...
##  $ zip        : Factor w/ 68 levels "95603","95608",..: 64 52 44 44 53 65 66 49 24 25 ...
##  $ estado     : Factor w/ 1 level "California": 1 1 1 1 1 1 1 1 1 1 ...
##  $ camas      : int  2 3 2 2 2 3 3 3 2 3 ...
##  $ banos      : int  1 1 1 1 1 1 2 1 2 2 ...
##  $ superficie : num  836 1167 796 852 797 ...
##  $ tipo       : Factor w/ 4 levels "Condominio","Desconocido",..: 4 4 4 4 4 1 4 4 1 4 ...
##  $ fecha.venta: Ord.factor w/ 5 levels "Marzo"<"Abril"<..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ precio     : num  59222 68212 68880 69307 81900 ...
##  $ latitud    : num  38.6 38.5 38.6 38.6 38.5 ...
##  $ longitud   : num  -121 -121 -121 -121 -121 ...

4. Manipular el data frame

El data frame propiedades se visualiza como una matriz donde las columnas representan las variables (características de interés) y los filas representan las observaciones.

4.1 Acceder variables

Para acceder una variable (columna), al nombre del objeto se le agrega el símbolo $ y luego el nombre de la variable; por ejemplo, para acceder al número de camas o al precio de venta, las instrucciones en R serían:

propiedades$camas
##   [1] 2 3 2 2 2 3 3 3 2 3 3 3 1 3 2 2 2 2 2 3 3 4 4 3 3 3 3 3 4 3 2 3 3 3 2 3 3
##  [38] 4 4 1 2 3 3 2 4 4 4 4 4 3 3 4 3 4 3 3 4 3 3 4 3 3 4 3 3 3 3 3 4 3 4 3 3 0
##  [75] 3 4 4 2 5 4 3 3 4 4 4 3 3 3 3 0 3 5 3 4 2 3 4 5 3 3 0 3 3 3 4 3 2 4 8 4 4
## [112] 3 2 4 5 3 2 5 4 5 5 0 4 2 3 4 0 3 4 3 4 4 3 0 4 3 5 5 4 4 3 4 3 4 3 5 5 0
## [149] 5 4 4 5 4 0 4 4 3 6 2 4 2 2 2 3 4 3 2 3 2 0 2 1 3 1 3 3 3 2 3 3 3 3 3 3 3
## [186] 2 3 3 3 3 2 3 0 2 4 3 4 3 3 3 4 2 3 2 2 2 3 2 3 3 3 3 3 3 2 3 4 4 3 4 3 3
## [223] 3 3 4 3 4 3 4 2 2 2 4 3 0 3 0 3 4 3 4 4 3 2 3 3 3 3 0 0 3 4 2 0 3 4 3 3 5
## [260] 3 4 3 4 4 4 0 4 3 0 4 4 4 3 4 3 3 3 3 4 0 3 4 3 4 3 0 0 5 4 2 3 3 2 4 3 4
## [297] 4 4 3 4 4 5 4 5 3 4 4 5 0 4 0 4 5 2 4 3 3 4 4 5 5 2 4 4 0 3 0 0 5 4 4 4 5
## [334] 5 4 2 1 3 2 2 2 2 2 2 2 3 2 3 3 2 2 3 2 4 1 2 4 3 3 4 3 2 2 2 3 3 4 2 2 3
## [371] 2 3 3 3 2 4 4 2 2 4 3 2 2 3 3 3 3 4 3 5 2 3 3 3 3 4 3 3 2 2 3 2 3 4 4 3 3
## [408] 4 3 3 3 3 3 4 2 3 3 3 3 3 3 3 3 2 4 4 4 3 4 2 4 4 3 3 3 2 4 3 3 4 3 4 3 2
## [445] 4 3 2 3 3 2 4 5 3 3 4 4 4 5 4 3 4 4 4 3 3 4 3 4 2 0 4 4 4 4 3 3 4 0 3 4 4
## [482] 3 3 3 2 4 3 5 4 4 3 4 5 4 0 4 3 3 5 5 5 4 3 0 4 0 3 4 4 0 4 0 4 3 3 3 0 2
## [519] 4 3 0 3 5 3 3 4 0 4 4 4 4 2 3 4 4 5 3 4 4 3 5 3 3 3 2 5 4 5 4 4 5 3 5 5 0
## [556] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 3 3 0 0 0 0 0 0 0 0 0 0
## [593] 0 0 0 0 0 0 0 0 0 0 0 3 0 2 2 2 2 2 2 2 2 2 2 3 2 2 4 2 4 2 1 3 3 3 3 3 4
## [630] 3 4 3 4 3 2 4 3 3 3 3 2 3 3 4 3 3 3 4 6 3 3 4 3 4 3 3 5 4 3 3 3 3 3 3 3 3
## [667] 3 4 3 3 3 3 3 3 4 3 4 3 3 3 3 4 2 3 3 3 0 4 4 2 3 3 3 3 3 4 3 2 3 4 4 3 3
## [704] 1 3 4 3 2 4 3 4 2 2 4 3 2 4 3 0 5 3 4 4 3 3 5 3 4 3 4 4 3 2 3 4 3 4 0 3 3
## [741] 4 3 3 0 4 3 3 3 4 3 3 3 3 4 0 0 4 0 3 5 3 4 5 3 4 3 3 4 3 4 4 3 4 4 0 4 2
## [778] 2 3 6 3 5 3 4 3 3 4 4 5 0 4 4 5 3 4 3 4 4 0 3 3 2 4 4 4 3 3 4 5 5 5 3 2 3
## [815] 3 3 3 4 4 0 3 3 3 0 0 3 0 5 0 4 4 2 3 4 3 3 0 5 5 5 4 4 4 3 3 3 4 5 0 3 4
## [852] 3 4 2 4 5 5 4 4 0 5 0 0 4 4 3 3 4 1 2 2 2 2 4 3 2 2 3 3 3 3 1 3 3 3 3 3 3
## [889] 0 4 3 2 4 3 3 3 3 4 2 3 3 0 3 3 3 2 3 4 2 3 3 3 3 3 4 3 2 0 4 3 3 3 2 4 3
## [926] 3 2 3 2 3 3 4 4 3 0 3 3 3 4 4 3 3 3 3 3 3 3 0 3 4 4 2 3 2 2 3 3 3 4 3 3 3
## [963] 3 3 3 3 3 4 4 4 0 3 3 3 3 3 3 4 4 3 4 3 3 4 3
propiedades$precio
##   [1]  59222  68212  68880  69307  81900  89921  90895  91002  94905  98937
##  [11] 100309 106250 106852 107502 108750 110700 113263 116250 120000 121630
##  [21] 122000 122682 123000 124100 125000 126640 127281 129000 131200 132000
##  [31] 133000 134555 136500 138750 141000 146250 147308 148750 149593 150000
##  [41] 152000 154000 156896 161250 161500 164000 165000 166357 166357 168000
##  [51] 170000 173000 174250 174313 178480 178760 179580 181000 181872 182587
##  [61] 182716 182750 183200 188741 189000 192067 194000 194818 195000 198000
##  [71] 199500 200000 200000 206000 208000 212864 221000 221000 223058 227887
##  [81] 231477 234697 235000 236000 236685 237800 240122 242638 244000 244500
##  [91] 244960 245918 250000 250000 250134 254200 254200 258000 260000 260014
## [101] 263500 265000 265000 271742 273750 275086 280908 280987 282400 285000
## [111] 287417 291000 292024 297000 297000 298000 299000 304037 311000 315537
## [121] 320000 320000 328360 334150 335750 335750 339500 344250 346210 347029
## [131] 347650 351300 352000 370000 370500 372000 375000 381300 381942 387731
## [141] 391000 394470 395000 400186 415000 425000 430000 445000 460000 461000
## [151] 489332 510000 539000 585000 600000 606238 660000 830000  69000  70000
## [161]  71000  78000  78400  80000  89000  90000  90000  92000  93675  97750
## [171]  98000  98000  99000 100000 106716 111000 111000 114800 120108 123225
## [181] 123750 125000 125000 126000 129000 134000 135000 135500 140000 140000
## [191] 142500 143500 145000 145000 145000 145000 146000 148500 149000 150000
## [201] 150000 152000 156000 156000 156000 157788 161653 161829 165000 168000
## [211] 169000 175000 176250 179000 180000 180400 182000 184500 185000 189000
## [221] 194000 195000 200000 201000 202500 205000 205000 205000 205000 207000
## [231] 210000 211500 215000 215000 215500 222381 225000 225000 225000 225000
## [241] 228000 229665 230000 230000 230000 234000 235000 236250 240000 242000
## [251] 245000 245000 245000 250000 250000 250000 250000 255000 256054 257729
## [261] 260000 261000 261800 264469 265000 270000 270000 270000 270000 275000
## [271] 275000 280000 286013 292000 292000 293993 294000 296769 297500 300000
## [281] 300000 300000 300000 300500 305000 306500 312500 315000 319789 330000
## [291] 330000 331000 334000 336000 339000 339000 345000 350000 356000 361745
## [301] 361948 370000 380000 385000 399000 402000 406026 420000 425000 425000
## [311] 433500 436746 438700 445000 450000 460000 460000 460000 465000 471750
## [321] 480000 484000 485000 495000 500500 504000 541000 560000 572500 582000
## [331] 613401 614000 680000 699000 839000  40000  48000  61500  62050  65000
## [341]  65000  68000  68000  77000  82732  84000  84675  85000  90000  90000
## [351]  91000  95000  97500 100000 100000 101000 102750 112500 113000 114000
## [361] 114000 114750 115000 115000 116100 119250 120000 120000 120000 120108
## [371] 121500 121725 122000 123000 125000 125573 126714 126960 127000 127500
## [381] 130000 133105 136500 139500 140000 140800 145000 147000 149600 150000
## [391] 150000 150000 155000 155435 155500 158000 158000 160000 160000 164000
## [401] 164000 165000 167000 167293 167293 168000 170000 170000 170000 174000
## [411] 178000 180000 180000 180000 182000 188325 191500 192000 192700 195000
## [421] 197654 198000 200345 203000 207000 208000 210000 212000 213675 213697
## [431] 215000 215000 215100 217500 218000 220000 221000 222900 223139 225500
## [441] 228327 230000 230000 230522 231200 232000 232500 233641 234000 234500
## [451] 235000 236000 236073 238000 238861 239700 240000 240000 241000 245000
## [461] 246000 247234 247480 249862 251000 252155 254172 258000 260000 261000
## [471] 261000 261000 262500 266000 266000 270000 274425 274500 275336 277980
## [481] 280000 284686 284893 285000 285000 285000 289000 295000 296000 296056
## [491] 297359 299940 304000 305000 307000 311328 313138 316630 320000 320000
## [501] 325000 328578 331000 331500 340000 344755 345746 351000 353767 355000
## [511] 356035 360000 360552 362305 365000 367554 368500 370000 371086 378000
## [521] 383000 388000 395100 400000 400000 408431 413000 416767 420000 423000
## [531] 423000 427500 430922 445000 450000 452000 470000 471000 475000 484500
## [541] 487500 488750 500000 506688 512000 520000 528000 579093 636000 668365
## [551] 676200 677048 691659 760000   4897   4897   4897   4897   4897   4897
## [561]   4897   4897   4897   4897   4897   4897   4897   4897   4897   4897
## [571]   4897   4897   4897   4897   4897   4897   4897   4897   4897   4897
## [581]   4897   4897   4897   4897   4897   4897   4897   4897   4897   4897
## [591]   4897   4897   4897   4897   4897   4897   4897   4897   4897   4897
## [601]   4897   4897   4897  30000  30000  55422  63000  65000  65000  65000
## [611]  66500  71000  75000  77000  85000  95625  96140 104250 105000 108000
## [621] 109000 115000 115000 115500 115620 116000 122000 122500 123000 124000
## [631] 124000 124413 125000 130000 131750 137721 137760 138000 140000 145000
## [641] 145000 150000 150000 151000 155000 155800 156142 158000 159900 160000
## [651] 161500 161600 162000 165000 165000 167293 168000 168000 168750 168750
## [661] 170000 170250 173000 175000 176095 176250 178000 179000 180000 180000
## [671] 180000 181000 182000 182587 185074 185833 186785 187000 188335 190000
## [681] 190000 190000 190000 191250 193000 193500 194818 195000 195000 195000
## [691] 195000 198000 199900 200000 201000 204918 205000 205000 205878 207000
## [701] 207744 209000 210000 210944 212500 213750 215000 215000 215000 216033
## [711] 220000 220000 220000 220000 220000 220702 221250 222000 222500 222750
## [721] 225000 225000 228750 229000 230095 232500 233000 233500 239000 240000
## [731] 240000 240971 242000 243450 243500 246544 246750 247000 247000 249000
## [741] 249000 250000 250000 250000 252000 255000 255000 255000 257200 260000
## [751] 260000 263500 266510 267750 270000 271000 272700 275000 275000 276000
## [761] 276500 278000 279000 280000 280000 285000 288000 289000 290000 290000
## [771] 293996 294000 294173 295000 298000 298000 299000 300000 300000 300000
## [781] 300567 303000 305000 306000 310000 310000 310000 311518 312000 313000
## [791] 315000 315000 315000 315000 315000 320000 322000 325000 325500 326951
## [801] 328370 330000 330000 331200 332000 334000 335000 341000 346375 347225
## [811] 349000 350000 350000 350000 350000 351000 356200 360000 367463 375000
## [821] 380000 380578 386222 389000 390000 395500 396000 397000 400000 400000
## [831] 412500 413500 415000 420454 425000 425000 433500 438000 441000 445000
## [841] 446000 450000 455000 460000 475000 490000 493000 508000 511000 525000
## [851] 533000 545000 560000 575000 575000 598695 600000 600000 600000 600000
## [861] 610000 622500 680000 879000 884790   1551   2000  56950  60000  61000
## [871]  62000  68566  70000  80000  85500  92000  93600  95000  97750 104000
## [881] 105000 107666 109000 110000 110000 112500 114800 116000 119000 121500
## [891] 122000 123675 126854 127059 128687 129500 130000 131750 132000 134000
## [901] 134000 138000 142000 143012 145846 147000 148750 150000 150454 151087
## [911] 157296 157500 160000 160000 161250 164000 165000 165000 165750 166000
## [921] 169000 170000 170000 170000 170000 170725 171750 172000 173056 174000
## [931] 174250 176850 179500 185000 188000 188700 189000 189000 189836 190000
## [941] 191250 191675 195500 198000 200000 200000 200000 200100 201528 204750
## [951] 205000 205000 205900 207000 207973 208250 208318 209347 211500 212000
## [961] 213000 216000 216021 219000 219794 220000 220000 220000 220000 223000
## [971] 224000 224000 224252 224500 225000 228000 229027 229500 230000 230000
## [981] 232425 234000 235000 235301 235738

4.2 Acceder observaciones

Para acceder una observación (fila), al nombre del objeto se le agrega los corchetes cuadrados [ ] y dentro de los corchetes se especifica el número de la observación seguido de una coma; a este proceso se llama indexación. Por ejemplo, para acceder la observación 378 o la observación 563, las instrucciones en R serían:

propiedades[378,]
ciudad zip estado camas banos superficie tipo fecha.venta precio latitud longitud
378 Sacramento 95826 California 2 1 795 Condominio Junio 126960 38.55705 -121.3717
propiedades[563,]
ciudad zip estado camas banos superficie tipo fecha.venta precio latitud longitud
563 Lincoln 95648 California 0 0 0 Residencial Junio 4897 38.88478 -121.2899

5. Medidas descriptivas

El nivel de medición define que medidas descriptivas se pueden obtener de una variable; la tabla siguiente concentra esta información:

Medida descriptiva Nominal Ordinal Razón
Tendencia central
Media aritmética S
Mediana S S
Moda S S S
Rango medio S
Eje medio S
Dispersión
Rango S
Varianza S
Desviación estándar S
Coeficiente de variación S
Desviación media (o promedio) S
Rango intercuartil S
Ubicación
Cuartiles S S
Deciles S S
Percentiles S S
Forma
Coeficiente de asimetría S
Coeficiente de curtosis S

5.1 La función summary de R

En R, la función summary devuelve un resumen estadístico de las principales medidas de acuerdo con el nivel de medición de las variables. Si lo aplicamos a todo el data frame obtenemos el resumen para todas las variables; si lo aplicamos a una variable en particular, obtenemos el resumen de esa variable específicamente.

Para una variable nominal/ordinal, el comando summary despliega la tabla de frecuencias absolutas.

Para una variable de razón, el comando summary despliega el valor mínimo, máximo, primer cuartil, mediana, tercer cuartil y media aritmética.

summary(propiedades)
##             ciudad         zip             estado        camas      
##  Sacramento    :439   95648  : 72   California:985   Min.   :0.000  
##  Elk Grove     :114   95823  : 61                    1st Qu.:2.000  
##  Lincoln       : 72   95828  : 45                    Median :3.000  
##  Roseville     : 48   95758  : 44                    Mean   :2.912  
##  Citrus Heights: 35   95835  : 37                    3rd Qu.:4.000  
##  Antelope      : 33   95838  : 37                    Max.   :8.000  
##  (Other)       :244   (Other):689                                   
##      banos         superficie              tipo         fecha.venta 
##  Min.   :0.000   Min.   :   0   Condominio   : 54   Marzo     :118  
##  1st Qu.:1.000   1st Qu.: 952   Desconocido  :  1   Abril     :177  
##  Median :2.000   Median :1304   Multifamiliar: 13   Mayo      :158  
##  Mean   :1.777   Mean   :1315   Residencial  :917   Junio     :268  
##  3rd Qu.:2.000   3rd Qu.:1718                       Septiembre:264  
##  Max.   :5.000   Max.   :5822                                       
##                                                                     
##      precio          latitud         longitud     
##  Min.   :  1551   Min.   :38.24   Min.   :-121.6  
##  1st Qu.:145000   1st Qu.:38.48   1st Qu.:-121.4  
##  Median :213750   Median :38.63   Median :-121.4  
##  Mean   :234144   Mean   :38.61   Mean   :-121.4  
##  3rd Qu.:300000   3rd Qu.:38.70   3rd Qu.:-121.3  
##  Max.   :884790   Max.   :39.02   Max.   :-120.6  
## 
summary(propiedades$ciudad)
##             Antelope               Auburn Californiameron Park 
##                   33                    5                    9 
##           Carmichael       Citrus Heights                 Cool 
##                   20                   35                    1 
##      Diamond Springs            El Dorado      El Dorado Hills 
##                    1                    2                   23 
##            Elk Grove              Elverta            Fair Oaks 
##                  114                    4                    9 
##               Folsom           Foresthill                 Galt 
##                   17                    1                   21 
##        Garden Valley           Gold River          Granite Bay 
##                    1                    4                    3 
##            Greenwood              Lincoln               Loomis 
##                    1                   72                    2 
##               Mather         Meadow Vista      North Highlands 
##                    1                    1                   21 
##           Orangevale               Penryn          Placerville 
##                   11                    1                   10 
##        Pollock Pines       Rancho Cordova       Rancho Murieta 
##                    3                   28                    3 
##            Rio Linda              Rocklin            Roseville 
##                   13                   17                   48 
##           Sacramento      Shingle Springs          Sloughhouse 
##                  439                    1                    1 
##         Walnut Grove      West Sacramento               Wilton 
##                    1                    3                    5
summary(propiedades$fecha.venta)
##      Marzo      Abril       Mayo      Junio Septiembre 
##        118        177        158        268        264
summary(propiedades$precio)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1551  145000  213750  234144  300000  884790

6. Calcular los estadísticos de una variable nominal

Las variables nominales son las que menor información pueden arrojar y por lo tanto aplican pocos de los estadísticos existentes; analicemos la variable ciudad como ejemplo.

head(propiedades$ciudad,15)
##  [1] Sacramento     Sacramento     Sacramento     Sacramento     Sacramento    
##  [6] Sacramento     Sacramento     Sacramento     Rancho Cordova Rio Linda     
## [11] Sacramento     Sacramento     Sacramento     Sacramento     Sacramento    
## 39 Levels: Antelope Auburn Californiameron Park Carmichael ... Wilton

6.1 Tendencia central

Para una variable nominal solo aplica la moda. Para la moda es la función Mode.

Mode(propiedades$ciudad)
## [1] Sacramento
## attr(,"freq")
## [1] 439
## 39 Levels: Antelope Auburn Californiameron Park Carmichael ... Wilton

6.2 Dispersión

Para una variable nominal, el concepto de dispersión no aplica porque no es una variable cuantitativa.

6.3 Ubicación

Para una variable nominal, el concepto de ubicación no aplica porque no es una variable ordinal.

6.4 Forma

Para una variable nominal, el concepto de forma no aplica porque no es una variable cuantitativa.

6.5 Frecuencias

Para una variable nominal, se puede obtener la tabla de frecuencias para cada categoría. La función es Freq y su resultado es un objeto que contiene las categorías, para cada categoría se calcula su frecuencia absoluta, su frecuencia porcentual, su frecuencia acumulada y su frecuencia acumulada porcentual.

Freq(propiedades$ciudad)
level freq perc cumfreq cumperc
Antelope 33 0.0335025 33 0.0335025
Auburn 5 0.0050761 38 0.0385787
Californiameron Park 9 0.0091371 47 0.0477157
Carmichael 20 0.0203046 67 0.0680203
Citrus Heights 35 0.0355330 102 0.1035533
Cool 1 0.0010152 103 0.1045685
Diamond Springs 1 0.0010152 104 0.1055838
El Dorado 2 0.0020305 106 0.1076142
El Dorado Hills 23 0.0233503 129 0.1309645
Elk Grove 114 0.1157360 243 0.2467005
Elverta 4 0.0040609 247 0.2507614
Fair Oaks 9 0.0091371 256 0.2598985
Folsom 17 0.0172589 273 0.2771574
Foresthill 1 0.0010152 274 0.2781726
Galt 21 0.0213198 295 0.2994924
Garden Valley 1 0.0010152 296 0.3005076
Gold River 4 0.0040609 300 0.3045685
Granite Bay 3 0.0030457 303 0.3076142
Greenwood 1 0.0010152 304 0.3086294
Lincoln 72 0.0730964 376 0.3817259
Loomis 2 0.0020305 378 0.3837563
Mather 1 0.0010152 379 0.3847716
Meadow Vista 1 0.0010152 380 0.3857868
North Highlands 21 0.0213198 401 0.4071066
Orangevale 11 0.0111675 412 0.4182741
Penryn 1 0.0010152 413 0.4192893
Placerville 10 0.0101523 423 0.4294416
Pollock Pines 3 0.0030457 426 0.4324873
Rancho Cordova 28 0.0284264 454 0.4609137
Rancho Murieta 3 0.0030457 457 0.4639594
Rio Linda 13 0.0131980 470 0.4771574
Rocklin 17 0.0172589 487 0.4944162
Roseville 48 0.0487310 535 0.5431472
Sacramento 439 0.4456853 974 0.9888325
Shingle Springs 1 0.0010152 975 0.9898477
Sloughhouse 1 0.0010152 976 0.9908629
Walnut Grove 1 0.0010152 977 0.9918782
West Sacramento 3 0.0030457 980 0.9949239
Wilton 5 0.0050761 985 1.0000000

7. Calcular los estadísticos de una variable ordinal

Las variables ordinales siguen siendo cualitativas pero tienen más información que las nominales; analicemos la variable fecha.venta como ejemplo.

head(propiedades$fecha.venta,15)
##  [1] Mayo Mayo Mayo Mayo Mayo Mayo Mayo Mayo Mayo Mayo Mayo Mayo Mayo Mayo Mayo
## Levels: Marzo < Abril < Mayo < Junio < Septiembre

7.1 Tendencia central

Para una variable ordinal solo aplica la mediana y la moda. Para la mediana es la función quantile y para la moda es la función Mode.

quantile(propiedades$fecha.venta, 0.5, type=1)
##   50% 
## Junio 
## Levels: Marzo < Abril < Mayo < Junio < Septiembre
Mode(propiedades$fecha.venta)
## [1] Junio
## attr(,"freq")
## [1] 268
## Levels: Marzo < Abril < Mayo < Junio < Septiembre

7.2 Dispersión

Para una variable ordinal, el concepto de dispersión no aplica porque no es una variable cuantitativa.

7.3 Ubicación

Para una variable ordinal aplican todos los estadísticos. Para el valor mínimo es la función min, para el valor máximo es la función max.

min(propiedades$fecha.venta)
## [1] Marzo
## Levels: Marzo < Abril < Mayo < Junio < Septiembre
max(propiedades$fecha.venta)
## [1] Septiembre
## Levels: Marzo < Abril < Mayo < Junio < Septiembre

Para los cuartiles es la función quantile que devuelve un objeto que contiene los 5 valores correspondientes al valor mínimo, al primer cuartil (Q1), al segundo cuartil (Q2), al tercer quartil (Q3) y al valor máximo.

quantile(propiedades$fecha.venta, type=1)
##         0%        25%        50%        75%       100% 
##      Marzo      Abril      Junio Septiembre Septiembre 
## Levels: Marzo < Abril < Mayo < Junio < Septiembre
# Primer cuartil (Q1)
quantile(propiedades$fecha.venta, 0.25, type=1)
##   25% 
## Abril 
## Levels: Marzo < Abril < Mayo < Junio < Septiembre
# Segundo cuartil (Q2)
quantile(propiedades$fecha.venta, 0.50, type=1)
##   50% 
## Junio 
## Levels: Marzo < Abril < Mayo < Junio < Septiembre
# Tercer cuartil (Q3)
quantile(propiedades$fecha.venta, 0.75, type=1)
##        75% 
## Septiembre 
## Levels: Marzo < Abril < Mayo < Junio < Septiembre

Para obtener los deciles, se usa la misma función quantile pero es necesario agregar un parámetro indicando que queremos obtener los deciles (10 grupos).

quantile(propiedades$fecha.venta, probs=seq(0,1,0.1), type=1)
##         0%        10%        20%        30%        40%        50%        60% 
##      Marzo      Marzo      Abril       Mayo       Mayo      Junio      Junio 
##        70%        80%        90%       100% 
##      Junio Septiembre Septiembre Septiembre 
## Levels: Marzo < Abril < Mayo < Junio < Septiembre
# Se pueden acceder a los elementos usando corchetes cuadrados para indexar

# Primer decil (D1)
quantile(propiedades$fecha.venta, 0.1, type=1)
##   10% 
## Marzo 
## Levels: Marzo < Abril < Mayo < Junio < Septiembre
# Sexto decil (D6)
quantile(propiedades$fecha.venta, 0.6, type=1)
##   60% 
## Junio 
## Levels: Marzo < Abril < Mayo < Junio < Septiembre
# Noveno decil (D9)
quantile(propiedades$fecha.venta, 0.7, type=1)
##   70% 
## Junio 
## Levels: Marzo < Abril < Mayo < Junio < Septiembre

Para obtener los percentiles, se usa la misma función quantile pero es necesario agregar un parámetro indicando que queremos obtener los percentiles (100 grupos).

quantile(propiedades$fecha.venta, probs=seq(0,1,0.01), type=1)
##         0%         1%         2%         3%         4%         5%         6% 
##      Marzo      Marzo      Marzo      Marzo      Marzo      Marzo      Marzo 
##         7%         8%         9%        10%        11%        12%        13% 
##      Marzo      Marzo      Marzo      Marzo      Marzo      Abril      Abril 
##        14%        15%        16%        17%        18%        19%        20% 
##      Abril      Abril      Abril      Abril      Abril      Abril      Abril 
##        21%        22%        23%        24%        25%        26%        27% 
##      Abril      Abril      Abril      Abril      Abril      Abril      Abril 
##        28%        29%        30%        31%        32%        33%        34% 
##      Abril      Abril       Mayo       Mayo       Mayo       Mayo       Mayo 
##        35%        36%        37%        38%        39%        40%        41% 
##       Mayo       Mayo       Mayo       Mayo       Mayo       Mayo       Mayo 
##        42%        43%        44%        45%        46%        47%        48% 
##       Mayo       Mayo       Mayo       Mayo      Junio      Junio      Junio 
##        49%        50%        51%        52%        53%        54%        55% 
##      Junio      Junio      Junio      Junio      Junio      Junio      Junio 
##        56%        57%        58%        59%        60%        61%        62% 
##      Junio      Junio      Junio      Junio      Junio      Junio      Junio 
##        63%        64%        65%        66%        67%        68%        69% 
##      Junio      Junio      Junio      Junio      Junio      Junio      Junio 
##        70%        71%        72%        73%        74%        75%        76% 
##      Junio      Junio      Junio      Junio Septiembre Septiembre Septiembre 
##        77%        78%        79%        80%        81%        82%        83% 
## Septiembre Septiembre Septiembre Septiembre Septiembre Septiembre Septiembre 
##        84%        85%        86%        87%        88%        89%        90% 
## Septiembre Septiembre Septiembre Septiembre Septiembre Septiembre Septiembre 
##        91%        92%        93%        94%        95%        96%        97% 
## Septiembre Septiembre Septiembre Septiembre Septiembre Septiembre Septiembre 
##        98%        99%       100% 
## Septiembre Septiembre Septiembre 
## Levels: Marzo < Abril < Mayo < Junio < Septiembre

7.4 Forma

Para una variable ordinal, el concepto de forma no aplica porque no es una variable cuantitativa.

7.5 Frecuencias

Para una variable ordinal, se puede obtener la tabla de frecuencias para cada categoría. La función es Freq y su resultado es un objeto que contiene las categorías, para cada categoría se calcula su frecuencia absoluta, su frecuencia porcentual, su frecuencia acumulada y su frecuencia acumulada porcentual.

Freq(propiedades$fecha.venta)
level freq perc cumfreq cumperc
Marzo 118 0.1197970 118 0.1197970
Abril 177 0.1796954 295 0.2994924
Mayo 158 0.1604061 453 0.4598985
Junio 268 0.2720812 721 0.7319797
Septiembre 264 0.2680203 985 1.0000000

8. Calcular los estadísticos de una de razón

Las variables de razón son las que mayor información pueden arrojar y por lo tanto aplican todos los estadísticos existentes; analicemos la variable precio como ejemplo.

head(propiedades$precio,15)
##  [1]  59222  68212  68880  69307  81900  89921  90895  91002  94905  98937
## [11] 100309 106250 106852 107502 108750

8.1 Tendencia central

Para una variable de razón aplican todos los estadísticos. Para la media aritmética es la función mean, para la mediana es la función median y para la moda es la función Mode.

mean(propiedades$precio)
## [1] 234144.3
median(propiedades$precio)
## [1] 213750
Mode(propiedades$precio)
## [1] 4897
## attr(,"freq")
## [1] 49

Para la media ponderada es la función weighted.mean, para la cuál es necesario especificar los pesos correspondientes. Como la propiedad precio contiene 985 valores, usaremos un ejemplo con 3 valores (100, 100, 80) con sus correspondientes ponderaciones (20%, 10%, 70%) y que se calcularía con la siguiente instrucción en R:

valores <- c(100, 100, 80)
pesos <- c(0.2, 0.1, 0.7)
weighted.mean(valores, w = pesos)
## [1] 86

Para la media geométrica es la función Gmean, para la media armónica es la función Hmean.

Gmean(propiedades$precio)
## [1] 177162.5
Hmean(propiedades$precio)
## [1] 61013.35

Para calcular la media cuadrática, el rango medio y el eje medio no hay función directa en R, pero se pueden calcular con las siguientes instrucciones en R:

# Media cuadrática
sqrt(sum(propiedades$precio**2)/length(propiedades$precio))
## [1] 271936
# Rango medio
(min(propiedades$precio) + max(propiedades$precio))/2
## [1] 443170.5
# Eje medio
(quantile(propiedades$precio)[2] + quantile(propiedades$precio)[4])/2
##    25% 
## 222500

8.2 Dispersión

Para una variable de razón aplican todos los estadísticos. Para la varianza es la función var, para la desviación estándar es la función sd, para la desviación promedio es la función aad.

var(propiedades$precio)
## [1] 19145105426
sd(propiedades$precio)
## [1] 138365.8
aad(propiedades$precio)
## [1] 103452.2

Para calcular el rango, el coeficiente de variación y el rango intercuartil no hay función directa en R, pero se pueden calcular con las siguientes instrucciones en R:

# Rango
max(propiedades$precio) - min(propiedades$precio)
## [1] 883239
# Coeficiente de variación
sd(propiedades$precio) / mean(propiedades$precio)
## [1] 0.5909427
# Rango intercuartil
quantile(propiedades$precio, 0.75) - quantile(propiedades$precio, 0.25)
##    75% 
## 155000

8.3 Ubicación

Para una variable de razón aplican todos los estadísticos. Para el valor mínimo es la función min, para el valor máximo es la función max.

min(propiedades$precio)
## [1] 1551
max(propiedades$precio)
## [1] 884790

Para los cuartiles es la función quantile que devuelve un objeto que contiene los 5 valores correspondientes al valor mínimo, al primer cuartil (Q1), al segundo cuartil (Q2), al tercer quartil (Q3) y al valor máximo.

# Creamos un objeto que contiene 5 valores
quantile(propiedades$precio)
##     0%    25%    50%    75%   100% 
##   1551 145000 213750 300000 884790
# Se pueden acceder a los elementos usando corchetes cuadrados para indexar

# Primer cuartil (Q1)
quantile(propiedades$precio, 0.25)
##    25% 
## 145000
# Segundo cuartil (Q2)
quantile(propiedades$precio, 0.50)
##    50% 
## 213750
# Tercer cuartil (Q3)
quantile(propiedades$precio, 0.75)
##   75% 
## 3e+05

Para obtener los deciles, se usa la misma función quantile pero es necesario agregar un parámetro indicando que queremos obtener los deciles (10 grupos).

# Creamos un objeto que contiene 11 valores
quantile(propiedades$precio, probs=seq(0,1,0.1))
##       0%      10%      20%      30%      40%      50%      60%      70% 
##   1551.0  90000.0 125914.6 160000.0 185529.4 213750.0 239280.0 276400.0 
##      80%      90%     100% 
## 328862.4 418706.8 884790.0
# Se pueden acceder a los elementos usando corchetes cuadrados para indexar

# Primer decil (D1)
quantile(propiedades$precio, 0.1)
##   10% 
## 90000
# Sexto decil (D6)
quantile(propiedades$precio, 0.6)
##    60% 
## 239280
# Noveno decil (D9)
quantile(propiedades$precio, 0.9)
##      90% 
## 418706.8

Para obtener los percentiles, se usa la misma función quantile pero es necesario agregar un parámetro indicando que queremos obtener los percentiles (100 grupos).

# Creamos un objeto que contiene 101 valores
quantile(propiedades$precio, probs=seq(0,1,0.01))
##        0%        1%        2%        3%        4%        5%        6%        7% 
##   1551.00   4897.00   4897.00   4897.00   4897.00   4897.00  61020.00  66320.00 
##        8%        9%       10%       11%       12%       13%       14%       15% 
##  70720.00  82365.92  90000.00  94927.80  98942.04 104940.00 109000.00 113705.20 
##       16%       17%       18%       19%       20%       21%       22%       23% 
## 115552.80 120000.00 122000.00 123990.00 125914.60 128887.32 132000.00 136500.00 
##       24%       25%       26%       27%       28%       29%       30%       31% 
## 140000.00 145000.00 147258.72 150000.00 152000.00 156051.12 160000.00 161660.04 
##       32%       33%       34%       35%       36%       37%       38%       39% 
## 165000.00 167293.00 169000.00 170100.00 174250.00 178038.40 180000.00 182000.00 
##       40%       41%       42%       43%       44%       45%       46%       47% 
## 185529.40 189000.00 191320.00 194818.00 197567.84 200000.00 202820.00 205000.00 
##       48%       49%       50%       51%       52%       53%       54%       55% 
## 207981.64 211032.96 213750.00 215920.00 220000.00 221000.00 223448.96 225000.00 
##       56%       57%       58%       59%       60%       61%       62%       63% 
## 229506.60 230470.76 233899.48 235545.72 239280.00 242000.00 245000.00 248878.40 
##       64%       65%       66%       67%       68%       69%       70%       71% 
## 250000.00 255000.00 260000.00 262780.00 268020.00 273708.00 276400.00 281891.32 
##       72%       73%       74%       75%       76%       77%       78%       79% 
## 287696.84 293993.96 297000.00 300000.00 303840.00 310000.00 315000.00 320000.00 
##       80%       81%       82%       83%       84%       85%       86%       87% 
## 328862.40 334000.00 339940.00 347531.00 351692.00 361826.20 370640.64 382026.64 
##       88%       89%       90%       91%       92%       93%       94%       95% 
## 394957.60 400141.36 418706.80 426100.00 445000.00 460000.00 474870.00 492400.00 
##       96%       97%       98%       99%      100% 
## 517120.00 573700.00 600000.00 676335.68 884790.00

8.4 Forma

Para la asimetría es la función skewness, para la curtosis es la función kurtosis.

skewness(propiedades$precio)
## [1] 1.084611
kurtosis(propiedades$precio)
## [1] 2.044229

9. Gráficas

En R existen diversos paquetes de graficación, usaremos las funciones básicas de R.

9.1 Gráficas de pastel

Para este tipo de gráfico, se usa la función pie a la que hay que proporcionarle un vector con las frecuencias absolutas de cada categoría; normalmente se usa en conjunto con la función table que obtiene las frecuencias.

pie(table(propiedades$fecha.venta))

9.2 Gráficas de barras

Para este tipo de gráfico, se usa la función barplot a la que hay que proporcionarle un vector con las frecuencias absolutas de cada categoría; normalmente se usa en conjunto con la función table que obtiene las frecuencias.

barplot(table(propiedades$tipo))

barplot(table(propiedades$fecha.venta))

9.3 Gráficas de caja y bigotes

Para este tipo de gráfico, se usa la función boxplot.

boxplot(propiedades$precio)

9.4 Histograma de frecuencias

Para este tipo de gráfico, se usa la función hist.

hist(propiedades$precio)

9.5 Opciones de graficación

Todas las funciones de R para graficar tienen un amplio conjunto de parámetros para efectos estéticos.

barplot(table(propiedades$tipo), col=heat.colors(4))

Anexo. Relación de funciones

Las siguientes son las funciones que es recomendable revisar la documentación para ir entendiendo que hace cada función y que opciones tiene.

  • summary
  • mean
  • median
  • Mode
  • table
  • min
  • max
  • quantile
  • var
  • sd
  • aad
  • skewness
  • kurtosis

     

 

Dr. José Luis Barrera Canto

Profesor Investigador

División de Ingeniería y Ciencias Exactas
Universidad Anáhuac Mayab

jose.luis.barrera.canto@gmail.com