1 Instalación de R y RStudio

Para realizar un informe de este tipo debemos instalar los programas R y RStudio, ambos de carácter gratuito. A continuación se indica las páginas webs donde podremos descargarnos los archivos ejecutables de estos programas y realizar la instalación en nuestro ordenador.

2 Resumen de funciones de R

Listado de funciones de R usadas en esta práctica, enumeración de algunos argumentos y breve descripción.
Funciones Argumentos Descripción
read.table file; sep; header Importar datos
knitr::kable x Crear tablas en LaTeX, HTML, Markdown
min Mínimo
max Máximo
dim x Dimensión de un objeto
c Combinar valores en un vector o lista
mean x Media aritmética
ColMeans x Media por columnas
round x; digits Redondear números
format x; big.mark; decimal.mark Formato para números
plot x; y; xlab; ylab; main; col Nube de puntos
hist x; xlab; ylab; main Histograma
lm formula; data Ajuste de un modelo lineal

3 Especificación del modelo

En una determinada población se desea explicar la riqueza por unidad de consumo de sus individuos (en miles de euros) en función de la renta por unidad de consumo (variable \(x_{2}\) y expresada en miles de euros), edad (variable \(x_{3}\) y medida en años) y número de hijos (\(x_{4}\)). Para ello, se plantea el siguiente modelo de regresión lineal múltiple:

\(y_{i}=\beta_{1} + \beta_{2}x_{2i}+ \beta_{3}x_{3i} + \beta_{4} x_{4i} + u_{i}; \quad i=\{1,\ldots,n\}\)

4 Importación y consulta de datos

4.1 Importación de datos

  1. Para importar datos se deben incluir los ficheros correspondientes en la carpeta donde has guardado este documento RMarkdown.

  2. Se usa la función read.table() de R para importar los datos. Algunos argumentos de esta función son:

  • file: Nombre del fichero que se desea importar.
  • sep: Lo que se utiliza en el fichero de datos para separar los datos. Con la orden sep="" se india que los datos están separados mediante un espacio.
  • header: Si el fichero contiene o no cabecera. para indicar si, se escribe header=T o bien header=TRUE, y para indicar no se escribe header=F o header=FALSE.
  1. En resumen, se usa la siguiente orden para importar los datos guardados en el fichero con nombre 000, y se guardan en un objeto de R que hemos denominado DATOS:
DATOS<- read.table(file="000.txt", sep="", header = T)

4.2 Consulta de datos

Los datos están guardados en una matriz que hemos denominado DATOS. Nos puede interesar ver, por ejemplo, la información del primer individuo de esta matriz. Para ello se utiliza la siguiente orden en R. Los corchetes se utilizan para seleccionar elementos de la matriz. Si se indica un número antes de la coma (,), R nos mostrará esa fila de la matriz:

DATOS[1,]
##   RIQUEZA  RENTA EDAD HIJOS
## 1    80.6 1.5993   64     2

Si queremos conocer la información del individuo 20 de la muestra, escribiremos en R:

DATOS[20,]
##    RIQUEZA  RENTA EDAD HIJOS
## 20    47.5 1.8536   33     1

Si queremos consultar, conjuntamente, la información de los individuos 1 y 20, crearemos el vector (1,20), y para ello usaremos la orden c(1,2):

DATOS[c(1,20),]
##    RIQUEZA  RENTA EDAD HIJOS
## 1     80.6 1.5993   64     2
## 20    47.5 1.8536   33     1

Otra función de R que nos puede interesar es dim(). A partir de la siguiente instrucción podremos saber el número de filas y el número de columnas de la matriz DATOS, o equivalente, conocer el número de individuos en mi muestra (número de filas) y el número de variables (número de columnas):

dim(DATOS)
## [1] 10000     4

La media aritmética de una variable se obtiene mediante la función mean(). Por ejemplo, para obtener la media de la primera columna de la matriz DATOS (la variable riqueza) habrá que aplicar la función mean() sobre DATOS[,1], es decir:

mean(DATOS[,1])
## [1] 44.42003

Con la función colMeans() podremos obtener las medias aritméticas de todas las columnas de una matriz. Por ejemplo:

colMeans(DATOS)
##   RIQUEZA     RENTA      EDAD     HIJOS 
## 44.420030  2.002418 44.402700  1.702000

También puede resultar muy útil incluir un código de R (codigoR) dentro del texto. Para ello se utiliza la siguiente instrucciónen el lugar del texto donde se desea incluir el código: ` r codigoR `. Por ejemplo, para incluir dentro del texto la riqueza media, medida en euros, se deberá incluir dentro del texto la expresión ` r 1000*DATOS[,1] `. Siguiendo esta instrucciones nos quedaría:

La riqueza media de los individios de la muestra es de 44.420,03 euros.

Con las funciones min() y max() se pueden obtener, respectivamente, el mínimo y el máximo de una variable. Por ejemplo, para conocer la edad mínima y máxima de los individuos de nuestra muestra (columna 3 de la matriz DATOS) habrá que indicar en R:

min(DATOS[,3])
## [1] 25
max(DATOS[,3])
## [1] 64

Con la función plot() se pueden realizar gráficos de dispersión entre dos variables. Algunos argumentos de esta función son:

  • x: Datos de la variable del Eje X del gráfico de disperión.
plot(x=DATOS[,2], y=DATOS[,1], main="Gráfico de dispersion", xlab="Renta", ylab="Riqueza", col="blue")

La función hist() permite realizar un histograma de una variable, tal como puede verse a continuación para la variable riqueza:

hist(DATOS[,1], main="Histograma de la variable riqueza", xlab="Riqueza", ylab="Frecuencia")

4.3 Ejercicios propuestos

  1. Importe en R sus datos personales para realizar esta práctica desde la carpeta Riqueza de PRADO, y teniendo en cuenta sus últimos 3 dígitos de su DNI. Por ejemplo, si su DNI es 12345678, deberá importar el fichero 678.txt. Guarde los datos en un objeto denominado DATOS.

  2. ¿Cuál es el tamaño de muestra (n) de su conjunto de datos?

  3. ¿Cuál es el valor de las distintas variables para el individuo que ocupa la posición 5000 en su muestra?

  4. ¿Cuál es la media de cada variable?

  5. ¿Cuál es la renta mínima y máxima de los individuos de la muestra?

  6. Realizar gráficos de dispersión donde en el eje Y siempre se sitúe la variable endógena (riqueza), y en el eje X, de cada gráfico de disersión, el resto de variables (las variables exógenas).

5 Estimación del modelo

AjusteMCO <- lm(RIQUEZA ~ RENTA+EDAD+HIJOS, DATOS)
summary(AjusteMCO)
## 
## Call:
## lm(formula = RIQUEZA ~ RENTA + EDAD + HIJOS, data = DATOS)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -31.936  -5.677  -0.009   5.747  32.734 
## 
## Coefficients:
##             Estimate Std. Error  t value Pr(>|t|)    
## (Intercept) 20.51019    0.39292   52.199   <2e-16 ***
## RENTA        0.58586    0.25720    2.278   0.0228 *  
## EDAD         0.89530    0.01145   78.163   <2e-16 ***
## HIJOS       -9.99828    0.07153 -139.780   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.609 on 9996 degrees of freedom
## Multiple R-squared:  0.6828, Adjusted R-squared:  0.6827 
## F-statistic:  7174 on 3 and 9996 DF,  p-value: < 2.2e-16
anova(AjusteMCO)
## Analysis of Variance Table
## 
## Response: RIQUEZA
##             Df  Sum Sq Mean Sq   F value    Pr(>F)    
## RENTA        1    5679    5679    76.623 < 2.2e-16 ***
## EDAD         1  141293  141293  1906.269 < 2.2e-16 ***
## HIJOS        1 1448188 1448188 19538.365 < 2.2e-16 ***
## Residuals 9996  740906      74                        
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1