MANUAL DE LENGUAJE R. INSTALACIÓN Y OPERACIONES BÁSICAS DE DATOS Versión 2.10.1 Ramón Álvarez Esteban Enero 2012
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
2
ÍNDICE 1. ¿QUÉ ES R? ............................................................ .............................................................................................................................. ..................................................................................... ................... 3 2. INSTALACIÓN EN WINDOWS (XP Y VISTA) ....................................................................................... 5 2.1. Instalación de R en Windows .......................................................... ............................................................................................................... ..................................................... 5 2.2. Instalación de RCommander .................................................................................. ............................. 12 2.3. RCommander desde la consola de R RConsole ................................................................. ................................................................................... .................. 14 2.4. Ejecución automática de RCommander.................................................................. ............................................................................................... ............................. 16 2.5. Selección del idioma de R ............................................................................................................ ....... 17 3. IMPORTACIÓN DE DATOS ................................................................. .................................................................................................................... ................................................... 18 3.1. Importación de un fichero f ichero ASCII ................................................................................................. ....... 18 3.2. Importación de un fichero f ichero de SPSS ..................................................................................................... 25 3.3. Importación de ficheros EXCEL E XCEL ......................................................................................................... 29 4. ESTADÍSTICOS DESCRIPTIVOS ..................................................................................................... ...... 33 4.1. Obtención de un resumen de la tabla de datos completa ..................................................................... 33 4.2. Selección una variable numérica y obtención de estadísticos estadísticos de resumen ......................................... 34 5. PRUEBAS DE NORMALIDAD ............................................................. ................................................................................................................ ................................................... 36 5.1. Instalación de la librería libr ería “nortest” ............................................................... ....................................................................................................... ........................................ 36 5.2. Test de Shapiro-Wilk de normalidad ............................................................ ................................................................................................... ....................................... 38 5.3. Anderson-Darling test de normalidad .......................................................... .................................................................................................. ........................................ 39 5.4. Cramer-von Mises test te st de normalidad .......................................................... ................................................................................................. ....................................... 39 5.5. Lilliefors (Kolmogorov-Smirnov) test de normalidad ......................................................................... 40 5.6. Shapiro-Francia test de normalidad ..................................................................................................... 40 6. CORRELACIÓN LINEAL ...................................................................................................... .................. 42 6.1. Linealidad. Representación gráfica ..................................................................................................... .................................................. ................................................... 42 6.2. Correlación lineal de P Pearson earson ............................................................ .............................................................................................................. .................................................. 43 6.3. Coeficiente de correlación parcial de Pearson ........................................................ ..................................................................................... ............................. 44 6.4. Ejemplo de correlación lineal de Pearson P earson ............................................................... ............................................................................................ ............................. 44 7. REGRESIÓN LINEAL SIMPLE ............................................................................................. .................. 57 7.1. Fases en el análisis de regresión lineal simple ........................................................ ..................................................................................... ............................. 58 7.2. Análisis de las correlaciones ............................................................. ................................................................................................................ ................................................... 59 7.3. Bondad global del modelo ................................................................ ................................................................................................................... ................................................... 59 7.4. Análisis relacionados con la variable independiente .................................................................... ....... 62 7.5. Ejemplo análisis de regresión lineal simple en R ......................................................................... ....... 65
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
3
1. ¿ QU QUÉ É ES R? R es un lenguaje de programación y a la vez un software para la obtención de estadísticas y gráficas. Ha sido creado por Ross Ihaka y Robert Gentleman en la University de Auckland, New Zealand. Actualmente, está siendo desarrollado y mantenido por el equipo R Development Core Team. R es parte de un proyecto más general denominado GNU (General Public License). Tanto los códigos fuente como las versiones binarias se pueden descargar libremente bajo licencia GNU. Las versiones de R a partir de la 2.7.0 solamente funcionarán bajo entornos de Windows 2000 o posteriores (Windows XP, Windows Vista…). La versión de R 2.6.2 ha sido la última que funciona bajo los entornos de Windows 95, 98, ME y NT4.) Actualmente no hay una versión versión específica es pecífica para Windows Windows x64 x64 (Window (Windowss con 64-bits), pero la versión de 32-bits funciona correctamente con máquinas de 64-bits. Windows Vista puede plantear algún problema en la instalación, ya que se requiere (al igual que ocurre en multitud de programas en Windows Vista) que se posean permisos relacionados con las cuentas que se utilicen (generalmente permisos de administrador). A fecha de enero de 2010, la última versión de R disponible es la 2.10.1. El sitio web del proyecto se encuentra en http://www.r-project.org/ http://www.r-project.org/,, incluyendo enlaces para bajar el programa programa y los códigos códigos fuente de los paquetes. Hay bastantes espejos (“m (“mirrors”) irrors”) donde se puede descargar R: http://cran.r-project.org/mirrors.html Existen paquetes que pueden ser cargados en R para realizar análisis no incluidos por defecto, son los denominados paquetes binarios (gestionados por Duncan Murdoch). Pueden ser descargados desde: http://cran.es.r-project.org/bin/windows/base/ Hay también otros paquetes binarios de diferentes contribuciones (contributed packages) (gestionados por Uwe Ligges): http://cran.es.r-project.org/bin/windows/contrib/ Podemos encontrar las preguntas más frecuentes en relación a R (FAQS) en: http://cran.es.r-project.org/bin/windows/base/rw-FAQ.html Entre toda una serie de utilidades disponibles en Internet para trabajar más fácilmente con R (Rtools), entre la que destacamos: http://www.murdoch-sutherland.com/Rtools/ Documentos y manuales del proyecto R: Manuales de R en: http://cran.r-project.org/manuals.html
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
4
An Introduction to R proporciona una introducción al lenguaje R y cómo utilizarlo para realizar análisis estadísticos y gráficas. http://cran.r-project.org/doc/manuals/R-intro.html http://cran.r-project.org/doc/manuals/R-intro.pdf The R language definition documents the language per se. Objetos y detalle de las expresiones de los procesos de evaluación que son útiles para conocer las funciones de programación de R. http://cran.r-project.org/doc/manuals/R-lang.html http://cran.r-project.org/doc/manuals/R-lang.pdf Writing R Extensions recoge cómo se crean los propios paquetes, escribir los ficheros de ayuda y utilización de otros lenguajes dentro de R (C, C++, Fortran, ...) interfaces. http://cran.r-project.org/doc/manuals/R-exts.html http://cran.r-project.org/doc/manuals/R-exts.pdf R Data Import/Export describe cómo se importan y exportan ficheros, tanto con R como con otros paquetes de ayuda que están disponibles desde la web de CRAN. http://cran.r-project.org/doc/manuals/R-data.html http://cran.r-project.org/doc/manuals/R-data.pdf R Installation and Administration. http://cran.r-project.org/doc/manuals/R-admin.html http://cran.r-project.org/doc/manuals/R-admin.pdf R Internals: una guía sobre las estructuras internas de R y los estándares de codificación par los programadores de R. http://cran.r-project.org/doc/manuals/R-ints.html http://cran.r-project.org/doc/manuals/R-ints.pdf The R Reference Index: contiene todos los ficheros de ayuda del R standar (R básico) y paquete paquetess recomendab recomendables les en formato formato PF PFF. http://cran.r-project.org/doc/manuals/fullrefman.pdf
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
5
INSTALACIÓN EN WINDOWS (XP Y VISTA) Para trabajar con R en Windows, o en cualquier otro sistema operativo, es suficiente con instalar el paquete R. No obstante, es recomendable instalar algunos paquetes que faciliten su uso. Entre ellos se encuentra RCommander. RCommander es un interfaz gráfico que facilita la realización de operaciones básicas como la importación de datos, la edición en una tabla… Si está instalando R en el sistema operativo Windows Vista, por favor, tenga cuidado, ya que debe tener los permisos necesarios para instalar R como administrador, o disponer de los permisos necesarios en la cuenta de Windows Vista que utilice. El mismo problema podemos encontrar cuando instalemos librerías. Una cuestión importante en relación a las librerías en R es que R solamente carga un mínimo de librerías cuando se ejecuta, ocupando poco espacio en memoria. Deberemos indicar a R que cargue librerías específicas para la sesión en la que estemos trabajando cuando lo necesitemos (por ejemplo, cargaremos una librería de series temporales en la sesión actual, pero no en sesiones futuras)
2.1.. Instalación de R en Windows 2.1 Para instalar R en Windows seguiremos los siguientes pasos: 1.- Accederemos a http://cran.es.r-project.org/bin/windows/ 2.- Seleccionaremos eleccionaremos “base” “base” en la ventana ventana siguiente siguiente (o escribirem escribiremos: os: http://cran.es.rproject.org/bin/windows/base/)): project.org/bin/windows/base/
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
6
Figura 1. Descarga del programa R (I)
3.- En la siguiente ventana pulsaremos “Download R 2.10.1 for windows” u otra versión posterior si estuviera disponible:
Figura 2. Descarga del programa R (II)
4.- Guardamos Guardamos el fichero ejecutable ejecutable R-2.10.1-win3 R -2.10.1-win32.exe 2.exe en el disco duro: duro:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
7
Figura 3. Guardar programa programa R
5.- Cuando se haya descargado completamente, hacemos doble-click en el fichero R2.10.1-win32.exe file. Si tenemos una cuenta con privilegios de administrador podemos instalar R en el área de “Archivos de Programa” (Program Files area) y configurar diversas opciones en el registro de entrada. Si no poseemos privilegios de administrador, solamente podremos instalar R en nuestra zona de trabajo. En las recientes versiones de Windows es posible que necesitemos confirmar la instalación al provenir de un origen desconocido (unidentified publisher).
Figura 4. 4. Instalación de R
Figura 5. Mensaje de advertencia advertencia en Windows Windows Vista
6.- Seleccionamos eleccionamos el lenguaje de instalación y pulsamos pulsamos Aceptar. Aceptar. Este lenguaje de instalación no es el mismo que posteriormente aparecerá en R. El lenguaje en el que
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
8
se mostrará R posteriormente es el mismo que tenemos definido en nuestro ordenador.
Figura 6. Selección del idioma de instalación instalación
7.- Se abrirá el siguiente cuadro de diálogo. Pulsamos “Siguiente”:
Figura 7. Bienvenida al proceso de instalación
8.- Se muestra las condiciones de licencia GNU:
Figura 8. Información sobre licencia licencia GNU
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
9
9.- Seleccionamos la localización de destino y pulse “Siguiente”:
Figura 9. Selección de la localización para para almacenar R
10.- Seleccionam S eleccionamos os los componen componentes tes que desea instalar:
Figura 10. Selección de componentes componentes de R
11.- Podemos personalizar las opciones de inicio. Nosotros aceptaremos las opciones por defecto:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
10
Figura 11. Selección de opciones de inicio
12.- Seleccionamos el nombre que desee que aparezca en el menú de inicio. Dejaremos R por defecto:
Figura 12. Selección de nombre nombre que desea dar a R en el menú de inicio inicio
13.- Seleccione algunos aspectos adicionales para trabajar con R:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
Figura 13. Opciones de configuración de R
14.- R comenzará a instalarse en el ordenador:
Figura 14. Proceso de instalación de R
15.- Pulsaremos Finalizar cuando el asistente de instalación acabe:
Figura 15. Final del proceso proceso de instalación instalación de R
11
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
12
2.2. Instalación de RCommander Este paso no es obligatorio para trabajar con R. RCommander es un interfaz gráfico desarrollado desarrollado por J ohn Fox Fox que perm permite realizar realizar análisis estadísticos sin sin program programación. Nuestra recomendación es instalar este paquete (aunque posteriormente se decida realizar las órdenes mediante sintaxis) porque facilita la importación de datos. Una vez que los datos sean importados, podremos optar por seguir trabajando con RCommander o directamente desde la Consola de R. Hay información sobre la instalación de RCommander en: http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/installation-notes.html. http://alexjzc.files.wordpress.com/2009/11/empezando-con-rcmdr-es.pdf 1.- Arrancamos R. Para ello, pulsaremos Inicio/Todos los programas… y buscaremos R.2.10.1, haciendo click en él.
Figura 16. Arranque de R
2.- Aparecerá la consola de R. En ella podemos escribir comandos para realizar análisis estadísticos. Nosotros instala instalarem remos os RComm ommander desde desde esta esta consola.
Figura 17. Consola de R.
3.- Para instalar RCommander (el paquete se denomina Rcmdr), escribiremos:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
13
install.packages(“Rcmdr”, dependencies=TRUE) Es el texto en rojo de la siguiente ventana:
Figura 18. Consola de R. Instalación de RCommander RCommander
Pulsamos “Enter” (tecla Intro) para instalar RCommander. 4.- R se conectará a Internet para buscar librerías. Seleccione un “mirror” cercano a su localidad y pulse OK al finalizar (el mirror elegido en este proceso es independiente del lenguaje que desee para trabajar con R). Debe estar conectado a Internet.
Figura 19. Selección del mirror mirror para descargar/actualizar librerías
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
14
En el caso de que no tenga conexión a Internet es posible descargar los archivos que desee en formato zip desde otro ordenador y posteriormente instalarlos:
Figura 20. Instalación de paquetes sin Internet
6.- Se descargarán algunos ficheros. Espere hasta que el proceso finalice.
2.3. RCommander desde la consola de R RConsole Este procedimiento es adecuado si solamente deseamos utilizar la ventana de RComm ommander en ocasiones. Opción I
1.- Nos aseguramons de que ha instalado RCommander siguiendo los pasos de la fase 2.b.anterior. 2.- En E n Rconsole Rconsole escribim escribimos: os: library(Rcmdr) 3.- Pulsamos “Enter”. 4.- La ventana de RCommander aparecerá en el idioma en el que se encuentra nuestro ordenador:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
15
Figura 21. Ventana de RCommander
5.- La ventana de RCommander contiene un menú en la parte superior al que se puede acceder a través del ratón o del teclado, una ventana de instrucciones donde se pueden escribir las instrucciones y una ventana de resultados. Cuando se realiza un análisis a partir de los menús, se escribe automáticamente la sintaxis en la ventana de instrucciones y se muestran los resultados en la ventana de resultados. Para ejecutar una instrucción en la ventana de instrucciones, posicionamos el cursor en la línea del análisis que deseamos realizar y pulsamos el botón de “Ejecutar”. En el caso de que desee ejecutar varias líneas conjuntamente, puede hacerlo una a una (siguiendo el orden de la superior a la inferior) o bien seleccionar todas ellas conjuntamente con el ratón o el cursor y pulsar el botón ejecutar. Opción II
Este procedimiento instala RCommander de forma visual, sin teclear en la consola de R. Es necesario tener tener acceso a Int Interne ernet. t. 1.- Nos aseguraremos previamente de que ha instalado RCommander siguiendo los pasos de la fase anterior. 2.- Seleccionamos Paquetes\Cargar paquete
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
16
Figura 22. Cargar paquetes
3.- Seleccionamos el paquete Rcmdr y pulsamos OK.
Figura 23. Cargar paquete Rcmdr
2.4.. Ejecución automátic a de RComm 2.4 RCommander ander Este procedimiento es adecuado si deseamos que RCommander aparezca automáticam automáticamente ente cuando arranca R. 1.- Cerramos R si estuviera abierto. 2.- Buscamos el fichero “Rprofile.site” en el disco duro. Estará en la subdirectorio “etc.” dentro del directorio con los ficheros de la instalación de R. 3.- Abrimos el fichero “Rprofile.site” con un editor de textos (Notepad, por ejemplo). Tendrá una apariencia semejante a la siguiente: #Things you might want to change #options(papersize=”a4”) #options(editor=”notepad”) #options(pager=”internal”) #set the default help type #options(help_type=”text”) options(help_type=”html”) #set a site library #.LLibrary.site <- file.path(chartr(“ #. file.path(chartr(“\\” \\”,, “/” /”,, R.home()), “site-li site-library” brary”)) #set a CRAN CR AN mirror mirror #local({r <- getOption(“repos”) http://my.local.cran”” # r[” r[”C CRAN AN””] <- “http://my.local.cran
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
#
17
options(repos=r)})
4.- Al final del fichero añadimos el siguiente texto: local({ old <- getOption("defaultPackages") options(default opt ions(defaultP P ackages =c(old, = c(old, " Rcm R cmdr" dr")) )) })
5.- Guardamos el fichero “Rprofile.site” con la modificación realizada, con el mismo nombre y en el mismo directorio. Debemos asegurarnos que la extensión del fichero guardado es “site” y no otras como “txt” o “doc”. 6.- Ejecutamos R. Se cargará automáticamente RCommander.
2.5.. Selección 2.5 Selección del idi oma de R Es posible trabajar con R en un gran número de idiomas. R detecta automáticamente el idioma de su ordenador y carga los menús correspondientes en ese idioma. Si deseamos trabajar con otro lenguaje en Windows XP, pulsaremos Inicio\ Panel de Control\ Configuración Regional y de Idioma\ y cambie el idioma. En Windows Vista solamente podremos cambiar el idioma con facilidad si disponemos de la versión Profesional y tenemos instalado el módulo multilenguaje.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
18
MPORTACIÓN MPOR TACIÓN DE DE DATOS Realizaremos las distintas importaciones de datos desde el paquete RCommander. En el caso de que se desee realizar desde la consola de R, es posible copiar la instrucción de la sintaxis que aparece en RCommander y pegar esa instrucción en la consola de R.
3.1.. Impor 3.1 Impor tación de un fic hero ASCII ASCII Utilizaremos el fichero “empltab_R.txt” que contiene 4 individuos de los que se conoce el nombre, los dos apellidos, la edad, la calle y el piso (en total 6 variables). En este fichero la primera primera fila contiene contiene el nombre nombre de las variables. En este caso, caso, el delimitador delimitador que separa las variables es un tabulador. nombre nombre Apellido1 Apellido2 Edad J uan uan Mart Martín ínez ez Oliv Olivera era 43 María F ierro Menéndez Menéndez J esús esús Manu Manuel el Ferná Fernán ndez dez Ruth María Del P ino Del Río Rí o
Calle Calle P iso Sant Santa Clar Clara, a, 5 6 24 Camino Real, s/n 3 Regu Reguera era 35 4 La Iglesia, 15 24
Para importar datos de un fichero de código ASCII seguiremos los siguientes pasos: 1.- Seleccionamos eleccionamos Datos\ Datos\ Import Importar ar datos\ datos\ desde archivo archivo de texto, texto, portapape portapapeles les o UR URL…: L… :
Figura 24. Importación Importación de fichero ASCII ASCII en R (I)
2.- Se da un nombre a la base de datos que deseamos importar (i.e.: Empleados). Marcamos “Nombres de las variables en el fichero” si nuestro fichero contiene los nombres de las variables en la primera línea. En caso contrario lo dejamos en blanco. Seleccionamos el tipo de separador de campos (delimitador). En nuestro caso es un tabulador. Seleccionamos si los decimales se encuentran especificados con puntos o con comas y pulsamos Aceptar para finalizar.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
Figura 25. Importación Importación de fichero ASCII ASCII en R (I)
3.- Buscamos el fichero que contiene la base en código ASCII que se desea importar:
Figura 26. Importación Importación de fichero ASCII ASCII en R (II)
La ventana de RCommander cambiará:
19
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
20
Figura 27. Importación Importación de fichero ASCII en R (III)
Debajo de los menús aparecerá el “Conjunto de datos:” con la nueva base de datos “Empleados” en color azul. En la ventana de instrucciones encontraremos: Empleados <- read.table(“I:/R_Manual/empltab_R.txt”, header=TRUE, sep=”\t”, na.strings=”NA”, dec=”.”, strip.white=TRUE) Si hubiéramos escrito este texto en la ventana de instrucciones y posteriormente pulsamos el botón “Ejecutar” el resultado hubiera sido el mismo. El símbolo “<-“ indica que todos los datos leídos definidos a la derecha de ese símbolo serán llevados a lo que hemos escrito a la izquierda del símbolo “Empleados”. En la ventana de resultados y en la de mensajes podemos comprobar que la importación no ha tenido problemas. 4.- Comprobamos que la importación ha sido correcta editando el conjunto de datos. Pulsamos “Editar conjunto de datos”. 5.- Resultado de la importación:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
21
Figura 28. Importación Importación de fichero ASCII ASCII en R (V)
En la ventana anterior se pueden añadir nuevos individuos y modificar datos existentes. 6.- También es posible visualizar los datos sin modificarlos:
Figura 29. Importación Importación de fichero ASCII en R (VI)
Figura 30. Importación Importación de fichero ASCII en R (VII)
7.- La base de datos se guardará pulsando “Datos\Conjunto de datos activo\Guardar el conjunto de datos activos. El fichero se grabará con la extensión “rda”.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
22
Figura 31. Guardar el conjunto conjunto de datos activos activos
Read an ASCII Data File Data Input
Description Reads a file in table format and creates a data frame from it, with cases corresponding to lines and variables to fields in the file.
Usage read.table(file, header = FALSE, sep = “”, quote = “\”’”, dec = “.”, row.names, col.names, as.is = !stringsAsFactors, na.strings = “NA”, colClasses = NA, nrows = -1, skip = 0, check.names = TRUE, fill = !blank.lines.skip, strip.white = FALSE, blank.lines.skip = TRUE, comment.char = “#”, allowEscapes = FALSE, flush = FALSE, stringsAsFactors = default.stringsAsFactors(), encoding = “unknown”) read.csv(file, header = TRUE, sep = “,”, quote=”\””, dec=”.”, fill = TRUE, comment.char=””, ...) read.csv2(file, header = TRUE, sep = “;”, quote=”\””, dec=”,”, fill = TRUE, comment.char=””, ...) read.delim(file, header = TRUE, sep = “\t”, quote=”\””, dec=”.”, fill = TRUE, comment.char=””, ...) read.delim2(file, header = TRUE, sep = “\t”, quote=”\””, dec=”,”, fill = TRUE, comment.char=””, ...)
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
Argu Ar gumen ments ts file
The name of the file which the data are to be read from. Each row of the table appears as one line of the file. If it does not contain an absolute path, the file name is relative to the current working directory, getwd(). Tilde-expansion is performed where supported. Alternatively, file can be a readable connection (which will be opened for reading if necessary, and if so closed (and hence destroyed) at the end of the function call). (If stdin() is used, the prompts for lines may be somewhat confusing. Terminate input with a blank line or an EOF signal, Ctrl-D on Unix and Ctrl-Z on Windows. Any pushback on stdin() will be cleared before return.). File can also be a complete URL. To read a data file not in the current encoding (for example a Latin-1 file in a UTF8 locale or conversely) use a file connection setting the encoding argument.
header
A logical value indicating whether the file contains the names of the variables as its first line. If missing, the value is determined from the file format: header is set to TRUE if and only if the first row contains one fewer field than the number of columns.
sep
The field separator character. Values on each line of the file are separated by this character. If sep = “” (the default for read.table) the separator is ‘white space’, that is one or more spaces, tabs, newlines or carriage returns.
quote
The set of quoting characters. To disable quoting altogether, use quote = “”. See scan for the behaviour on quotes embedded in quotes. Quoting is only considered for columns read as character, which is a ll of them unless colClasses is specified.
dec row.names
The character used in the file for decimal points. A vector of row names. This can be a vector giving the actual row names, or a single number giving the column of the table which contains the row names, or character string giving the name of the table column containing the row names. If there is a header and the first row contains one fewer field than the number of columns, the first column in the input is used for the row names. Otherwise if row.names is missing, the rows are numbered. Using row.names = NULL forces row numbering. Missing or NULL row.names generate row names that are considered to be ‘automatic’ (and not preserved by as.matrix).
col.names
A vector of optional names for the variables. The default is to use “V” followed by the column number.
as.is
The default behavior of read.table is to convert character variables (which are not converted to logical, numeric or complex) to factors. The variable as.is controls the conversion of columns not otherwise specified by colClasses. Its value is either a vector of logicals (values are recycled if necessary), or a vector of numeric or character indices which specify which columns should not be converted to factors. Note: to suppress all conversions including those of numeric columns, set colClasses = “character”. Note that as.is is specified per column (not per variable) and so includes the column of row names (if any) and any columns to be skipped.
na.strings
A character vector of strings which are to be interpreted as NA values. Blank fields are also considered to be missing values in logical, integer, numeric and complex fields.
colClasses
Character. A vector of classes to be assumed for the columns. Recycled as necessary, or if the character vector is named, unspecified values are taken to be NA. Possible values are NA (when type.convert is used), “NULL” (when the column is skipped), one of the atomic vector classes (logical, integer, numeric, complex, character, raw), or “factor”, “Date” or “POSIXct”. “POSIXct”. Otherwise there needs to be an as method (from package methods) for conversion from “character” to the specified
23
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
24
formal class. Note that colClasses is specified per column (not per variable) and so includes the column of row names (if any).
nrows
Integer: the maximum number of rows to read in. Negative and other invalid values are ignored.
skip check.names
Integer: the number of lines of the data file to skip before beginning to read data. Logical. If TRUE then the names of the variables in the data frame are checked to ensure that they are syntactically valid variable names. If necessary they are adjusted (by make.names) so that they are, and also to ensure that there are no duplicates.
fill
Logical. If TRUE then in case the rows have unequal length, blank fields are implicitly added. See ‘Details’.
strip.white
Logical. Used only when sep has been specified, and allows the stripping of leading and trailing white space from character fields (numeric fields are always stripped). See scan for further details, remembering that the columns may include the row names.
blank.lines.skip comment.char
Logical: if TRUE blank lines i n the input are ig nored.
allowEscapes
Logical. Should C-style escapes such as \n be processed or read verbatim (the default)? Note that if not within quotes these could be interpreted as a delimiter (but not as a comment character). For more details see scan.
flush
Logical: if TRUE, scan will flush to the end of the line after reading the last of the fields requested. This allows putting comments after the last field.
Character: a character vector of length one containing a single character or an empty string. Use “” to turn off the interpretation of comments comments altogether.
stringsAsFactors Logical: should character vectors be converted to factors? encoding Encoding to be assumed for input strings. It is used to mark character strings as known to be in Latin-1 or UTF-8: it is not used to re-encode the input. For an example of how to do so, see the examples under file.
...
Further arguments to be passed to read.table.
Details This function is the principal means of reading tabular data into R. A field or line is ‘blank’ if it contains nothing (except whitespace if no separator is specified) before a comment character or the end of the field or line. If row.names is not specified and the header line has one less entry than the number of columns, the first column is taken to be the row names. This allows data frames to be read in from the format in which they are printed. If row.names is specified and does not refer to the first column, that column is discarded from such files. The number of data columns is determined by looking at the first five lines of input (or the whole file if it has less than five lines), or from the length of col.names if it is specified and is longer. This could conceivably be wrong if fill or blank.lines.skip are true, so specify col.names if necessary. read.csv and read.csv2 are identical to read.table except for the defaults. They are intended for reading ‘comma separated value’ files (‘.csv’) or (read.csv2) the variant used in countries that use a comma as decimal point and a semicolon as field separator. Similarly, read.delim and read.delim2 are for reading delimited files, defaulting to the TAB character for the delimiter. Notice that header = TRUE and fill = TRUE in these variants, and that the comment character is disabled. The rest of the line after a comment character is skipped; quotes are not processed in comments. Complete comment lines are allowed provided blank.lines.skip = TRUE; however, comment lines prior to the header must have the comment character in the first nonblank column. Quoted fields with embedded newlines are supported except after a comment character.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
25
Note that unless colClasses is specified, all columns are read as character columns and then converted. This means that quotes are interpreted in all fields a nd that a column of values like “42” will result in an integer column.
Value A data frame (data.frame) containing a representation of the data in the file. Empty input is an error unless col.names is specified, when a 0-row data frame is returned: similarly giving just a header line if header = TRUE results in a 0-row data frame. Note that in either case tthe columns will logical unless colClasses was supplied. Character strings in the result (including factor levels) will have a declared encoding if encoding is “latin1” or “UTF-8”.
Note The columns referred to in a s.is and colClasses include the column of row names (if any). Less memory will be used if colClasses is specified as one of the six atomic vector classes. This can be particularly so when reading a column that takes many distinct numeric values, as storing each distinct value as a character string can take up to 14 times as much memory as storing it as an integer. Using nrows, even as a mild over-estimate, will help memory usage. Using comment.char comment.char = “” will be appreciably faster than the read.table default. read.table is not the right tool for reading large matrices, especially those with many columns: it is designed to read data frames which may have columns of very different classes. Use scan instead.
References Chambers, J. M. (1992) Data for models. Chapter 3 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole B rooks/Cole..
See Als Also o The R Data Import/Export Import/Export manual. scan, scan, type.convert, read.fwf for read.fwf for reading fixed width formatted input; write.table; data.frame. count.fields can be useful to determine problems problems with reading files which result in reports of incorrect record lengths. function findlink(pkg, fn) { var Y, link; Y = location.href.lastIndexOf(“\\”) + 1; link = location.href.substring(0, location.href.substring(0, Y); link = link + “../../” + pkg + “/chtml/” + pkg + “.chm::/” + fn; location.href = link; } R Data Import/Export describes the import and export facilities available either in R itself or via packages which are available from CRAN: http://www.r-project.org http://www .r-project.org/manuals/R-data.html /manuals/R-data.html,, http://cr http://cran.r-project an.r-project.org/doc/m .org/doc/manuals/R-exts.pdf anuals/R-exts.pdf
3.2.. Importación 3.2 Importaci ón de un fic hero de SPSS SPSS Para importar datos del fichero de SPSS denominado “world95.sav”, seguimos los siguientes pasos: 1.- Datos\Importar datos\desde datos SPSS.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
26
Figura 32. Importación Importación de fichero SPSS en en R (I)
2.- Elegimos el nombre que se le desea dar a la base de datos dentro de R. En el ejemplo “Datos_1”.
Figura 33. Importación Importación de fichero SPSS en en R (II)
3.- Seleccio S eleccionam namos os el fichero fichero de SP SP SS
Figura 34. Importación Importación de fichero SPSS en en R (III)
4.- En la ventana de instrucciones aparecerá la instrucción equivalente a realizar los dos pasos anteriore anteriores: s: DataBase_2 <- read.spss(“I:/world95.sav”, use.value.labels=TRUE, max.value.labels ax.value.labels= =Inf, to.data.fram to.data.frame= e=TRUE UE)) Esta instrucción contiene algunos valores por defecto que pueden ser modificados (ver apartado “arguments” posteriormente).
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
27
Se podría escribir la instrucción anterior en la ventana de instrucciones y pulsar ejecutar, obteniendo el mismo resultado. 5.- Si pulsamos en “World_95”:
Figura 35. Importación Importación de fichero SPSS en en R (IV)
Se abre un cuadro de diálogo en el que podemos seleccionar la base de datos con la que queremos trabajar.
Figura 36. Importación Importación de fichero SPSS en en R (V)
Read an SPSS Data File Data Input
Description Read.spss reads a file stored by the SPSS save or export commands.
Usage read.spss(file, use.value.labels = TRUE, to.data.frame = FALSE, max.value.labels = Inf, trim.factor.names trim.factor.names = FALSE, trim_values = TRUE, reencode = NA)
Argu Ar gumen ments ts file use.value.labels to.data.frame max.value.labels
Character string: string: the name of the file to read.
trim.factor.names
Logical: trim trailing spaces from factor levels?
Convert variables with value labels into R factors with those levels? return a data frame? Only variables with value labels and at most this many unique values will be converted to factors if use.value.labels = TRUE. Esta opción solamente se utiliza para las variables que tienen definidas etiquetas en SPSS.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
28
trim_values
logical: should values and value labels have trailing spaces ignored when matching for use.value.labels = TRUE?
reencode
logical: should character strings be re-encoded to the current locale. The default, NA, means to do so in a UTF-* locale, only. Alternatively character, specifying an encoding to assume.
Details This uses modified code from the PSPP project for reading the SPSS formats: (http://www.gnu.org/so (http://www.gnu.org/software/pspp/) ftware/pspp/).. Occasionally in SPSS value labels will be added to some values of a continuous variable (eg to distinguish different types of missing data), and you will not want these variables converted to factors. By setting max.val.labels you can specify that variables with a large number of distinct values are not converted to factors even if they have value labels. In addition, variables will not be converted to factors if there are non-missing values that have no value label. The value labels are then returned in the “value.labels” attribute of the variable. If SPSS variable labels are present, they are returned as the “variable.labels” attribute of the answer. Fixed length strings (including value labels) are padded on the right with spaces by SPSS, and so are read that way by R. The default argument trim_values=TRUE causes trailing spaces to be ignored when matching to value labels, as examples have been seen where the strings and the value labels had different amounts of padding. See the examples for sub for ways to remove trailing spaces in charcter data.
Value A list (or data frame) with one component for each variable in the saved data set. If what looks like a Windows codepage was recorded in the SPSS file, it is attached (as a number) as attribute “codepage” to the result. There may be attributes “label.table” and “variable.labels”. Attribute “label.table” is a named list of value labels with one element per variable, either NULL or a names character vector. Attribute “variable.labels” is a named character vector with names the short variable names and elements the long names.
Note If SPSS value labels are converted to factors the underlying numerical codes will not in general be the same as the SPSS numerical values, since the numerical codes in R are always 1,2,3,... You may see warnings about the file encoding for SPSS save files: it is possible such files contain nonASCII character data which need re-encoding. The most common occurrence is Windows codepage 1252, a superset of Latin-1. The encoding is recorded (as in i nteger) in attribute “codepage” of the result if it looks like a Windows codepage.
Autt ho Au hor(s r(s ) Saikat DebRoy and the R Core team
Examples ## Not run: read.spss(“datafile”) read.spss(“datafile”) ## don’t convert value labels to factor levels read.spss(“datafile”, use.value.labels = FALSE) ## convert value labels to factors for variables with at most ten distinct values. read.spss(“datafile”, max.val.labels = 10) ## End(Not run)
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
29
See Als Also o http://cran.r-project.or http://cran.r-project.org/doc/manuals g/doc/manuals/R-data.html /R-data.html R Data Import/Export describes the import and export facilities available either in R itself or via packages which are available from CRAN: http://www.r-project.org http://www .r-project.org/manuals/R-data.html /manuals/R-data.html,, http://cr http://cran.r-project an.r-project.org/doc/m .org/doc/manuals/R-exts.pdf anuals/R-exts.pdf
3.3.. Importaci ón de 3.3 d e ficheros fich eros EXCEL EXCEL Para importar datos del fichero de EXCEL denominado “Olive_Product.xls”, seguimos los siguientes pasos: 1.- Datos\Importar datos\desde conjunto de datos Excel, Access o dBase.
Figura 37. Importación Importación de fichero EXCEL EXCEL en R (I)
2.- Elegimos el nombre que deseaamos dar a la base de datos dentro de R. En el ejemplo “Product”.
Figura 38. Importación Importación de fichero EXCEL EXCEL en R (II)
3.- Seleccionamos el fichero de EXCEL cuando se abra el cuadro de diálogo.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
30
Figura 39. Importación Importación de fichero EXCEL en R (III)
4.- Si el fichero de de EXCEL tuviera varias tablas tendríamos que seleccionar la hoja con la que deseamos trabajar, por ejemplo la “Hoja1”:
Figura 40. Importación Importación de fichero EXCEL EXCEL en R (IV)
5.- En la ventana de instrucciones aparecerá la instrucción equivalente a realizar el paso anterior: Product <- sqlQuery(channel = 3, select * from [Hoja1$]) Esta instrucción contiene algunos valores por defecto que pueden ser modificados (ver apartado “arguments” posteriormente). 6. Pulsando “Visualizar conjunto de datos” obtenemos la siguiente tabla:
Figura 41. Importación Importación de fichero EXCEL EXCEL en R (V)
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
31
7.- Si deseamos acceder a la ayuda de la importación teclearemos help(sqlQuery) en la ventana de sintaxis y pulsaremos “Intro”:
Query an ODBC database Data Input
Description Submit an SQL query to an a n ODBC database, and retrieve the results.
Usage sqlQuery(channel, sqlQuery(channel, query, errors = TRUE, ..., rows_at_time = 1) sqlGetResults(channel, sqlGetResults(channel, as.is = FALSE, errors = FALSE, max = 0, buffsize = 1000, nullstring = NA, na.strings = “NA”, believeNRows = TRUE, dec = getOption(“dec”), getOption(“dec”), stringsAsFactors stringsAsFactors = default.stringsAsFactors()) default.stringsAsFactors())
Argu Ar gumen ments ts channel query errors ... rows_at_time
connection handle as returned by odbcConnect.
as.is
which (if any) character columns should be converted, as in read.table? See the details.
max buffsize
limit on the number of rows to fetch, with 0 indicating no limit.
any valid SQL statement if TRUE halt and display error, else return -1 additional arguments to be passed to sqlGetResults. The number of rows to fetch at a time, up to 1024. Not all drivers work correctly with values > 1. See Details.
an initial guess at the number of rows, used if max = 0 and believeNRows == FALSE for the driver.
nullstring
character string to be used when reading SQL_NULL_DATA character items from the database.
na.strings believeNRows
character string(s) to be mapped to NA when reading character data.
dec
The character for the decimal place to be assumed when converting character columns to numeric.
logical. Is the number of rows returned by the ODBC connection believable? This might already be set to false when the channel was opened, and can that setting cannot be overridden.
stringsAsFactors should character columns not excluded by as.is and not converted to anything else be converted to factors?
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
32
Details sqlQuery is the workhorse function of RODBC. It sends the SQL statement query to the server, using connection channel returned by odbcConnect, and retrieves (some or all of) the results via sqlGetResults. SQL beginners should note that the term ‘Query’ includes any valid SQL statement including table creation, alteration, updates etc as well as SELECTs. The sqlQuery command is a convenience wrapper that calls first odbcQuery and then sqlGetResults. If finer-grained control is needed, for example over the number of rows fetched, these functions should be called directly or additional arguments passed to sqlQuery. sqlGetResults is a mid-level function. It should be called after a call to sqlQuery or odbcQuery and used to retrieve waiting results into a data frame. Its main use is with max set to non-zero when it will retrieve the result set in batches with repeated calls. This is useful for very large result sets which can be subjected to intermediate processing. Where possible sqlGetResults transfers data directly: this happens for double, real, integer and smallint columns in the table. All other SQL data types are converted to character strings by the ODBC interface. If the as.is is true for a column, it is returned as character. Otherwise (where detected) date, datetime and timestamp values are converted to “Date” and “POSIXct” values respectively. (Some drivers seem to confuse times with dates, so times may get converted too.) Other types are converted by R using type.convert. When character data are to be converted to numeric data, the setting of options(“dec”) to map the character used up the ODBC driver in setting decimal points—this is set to a locale-specific value when RODBC is initialized if it is not already set. Using buffsize will yield a marginal increase in speed if set to no less than the maximum number of rows when believeNRows = FALSE. (If set too small it can result in unnecessarily high memory use as the buffers will need to be expanded.) Modern drivers should work (and work faster, especially if communicating with a remote machine) with rows_a_time = 1024. However, some drivers may mis-fetch multiple rows, so set this to 1 if the results are incorrect.
Value A data frame (possibly with 0 rows) on success. If errors = TRUE, a character vector of error message(s), otherwise error code -1 (general, call odbcGetErrMsg for details) or -2 (no data, which may not be an error as some SQL commands do return no data).
Autt ho Au hor(s r(s ) Michael Lapsley and Brian Ripley
See Als Also o odbcConnect, sqlFetch, sqlSave, sqlTables, odbcQuery
Examples ## Not run: channel <- odbcConnect(“test”) odbcConnect(“test”) sqlSave(channel, sqlSave(channel, USArrests, rownames = “State”, verbose = TRUE) # options(dec=”.”) # optional, if DBMS is not locale-aware ## note case of State, Murder, rape are DBMS-dependent. sqlQuery(channel, sqlQuery(channel, paste(“select State, Murder from USArrests”, USArrests”, “where Rape > 30 order by Murder”)) close(channel) ## End(Not run)
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
33
STADÍSTICOS STAD ÍSTICOS DES DESCRIP CRIPTIVO TIVOS S Realizaremos las distintas importaciones de datos desde el paquete RCommander. En el caso de que queramos efectuarlas desde la consola de R, es posible copiar la instrucción de la sintaxis que aparece en RCommander y pegar esa instrucción en la consola de R.
4.1.. Obtenci 4.1 Obtención ón de un resumen r esumen de la tabla de datos datos comp completa leta Si deseamos obtener un resumen de todas las variables que se encuentran en la base de datos datos activa, activa, pulsaremos pulsaremos Estadísticos\Resúm stadísticos\R esúmenes\Conjunto enes\Conjunto de datos activos: activos:
Figura 42. Resumen de la tabla de datos completa completa (I)
R indicará el número de variables que contiene la base de datos y nos preguntará si deseamos continuar:
Figura 43. Resumen de la tabla de datos completa completa (II)
Si las variables son cuantitativas el programa calculará el mínimo, el máximo, el primer, segundo (Mediana) y tercer cuartil, así como la media. Si las variables son cualitativas hará un recuento de las modalidades.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
34
Figura 44. Resumen de la tabla de de datos completa completa (III)
4.2.. Se 4.2 Selección lección una variable variable numéric a y obt obtención ención de estadísticos de resumen Si deseamos seleccionar las variables para analizar, pulsaremos “Estadísticos\ Resúmenes\ Resúmenes numéricos”:
Figura 45. Resumen de una selección selección de variables variables (I)
A continuación seleccionamos una o más variables numéricas. Si queremos seleccionar variables no contiguas utilizaremos la tecla de control “Ctrl”.
Figura 46. Resumen de una selección selección de variables (II)
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
35
Si queremos obtener los resultados para cada uno de los grupos de otra variable (segmentando el archivo por esa variable), seleccionaremos la variable de segmentación. En caso contrario pulsaremos “Cancelar”.
Figura 47. Resumen de una selección selección de variables (III)
La instrucción en R es: numSum numSu mmary mary(W (World_ orld_95[,” 95[,”pobl poblac” ac”], ], statis statistics tics= =c(“m c(“mean” ean”,, “sd”, “quantiles quantiles””), quantiles=c(0,.25,.5,.75,1)) El resultado que se obtiene es:
Figura 48. Resumen de una selección selección de variables (IV)
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
36
RUEBAS DE NORMALIDAD Desde el módulo de RCommander es posible obtener el test de Shapiro-Wilk. Hay otros tests de normalidad que pueden obtenerse instalando diversas librerías: -
nortest: http://cran.rakanu.c htt p://cran.rakanu.com/w om/web/packages/ eb/packages/nortest/index nortest/index.htm .htmll
- mvnormtest: http://cran.rakanu.com/web/packages/mvnormtest/index.html -
normwn.test: http://cran.rakanu.c htt p://cran.rakanu.com/w om/web/packages/ eb/packages/norm normwn.t wn.test/index.htm est/index.htmll
5.1.. Inst 5.1 Instalación alación de la lib librería rería “ nort est” 1.- Para instalar la librería “nortest”, accedemos a la dirección de Internet: http://cran.rakanu.c htt p://cran.rakanu.com/w om/web/packages/ eb/packages/nortest/index nortest/index.htm .htmll Version:
1.0
Author:
Juergen Gross
Maintainer:
Juergen Gross statistik.uni-dortmund.de>
License:
GPL version 2 or newer
CRAN checks:
nortest results
Downloads: Package source:
nortest_1.0.tar.gz
MacOS X binary:
nortest_1.0.tgz
Windows binary:
nortest_1.0.zip
Reference manual:
nortest.pdf
Fichero ayuda
http://pbil.univ-lyon1. http://p bil.univ-lyon1.fr/library/n fr/library/nortest/html/ ortest/html/ 00Index.html
2.- Pulsam P ulsamos os “nortest_1.0.zip“ y lo guardamos en el ordenador. 3.- Pulsamos “Paquetes\Instalar paquetes a partir de archivos zip locales…”:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
37
Figura 49. Instalación del del paquete nortest nortest (I)
4.- Buscamos “nortest_1.0.zip“ en el lugar donde lo hemos guardado y pulsamos “abrir”. 5.- Si estamos utilizando Windows Vista es posible que obtengamos el siguiente error de permisos: ls:::menuInstallLocal() package ‘nortest’ successfully unpacked and MD5 sums checked updatin upda ting g HTML HT ML package descriptions descriptions Warning in file.create(f.tg) : cannot create create file ‘C:\P ‘C:\PR ROG OGR RA~1\R 1\R-2.10.1/doc/ht -2.10.1/doc/htm ml/packa l/packages.htm ges.html’, l’, reason ‘Permission denied denied’’ 6.- Buscamos en el menú de programas el logo de R. Situamos el ratón sobre el logo anterior y pulsamos el botón derecho del ratón. Se desplegará la siguiente ventana:
Figura 50. Instalación del del paquete nortest (II)
Pulsamos “Ejecutar como administrador” y en la siguiente ventana que aparezca, pulsamos “Permitir” la instalación de la librería. Si el proceso ha sido correcto aparecerá el siguiente siguiente texto: texto: ls:::menuInstallLocal()
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
38
package ‘nortest’ successfully unpacked and MD5 sums checked updatin upda ting g HTML HT ML package descriptions descriptions
5.2.. Test 5.2 Test de Shapiro-Wilk d e normalidad norm alidad El test de Shapiro-Wilk se encuentra en el módulo base de R, no necesitando instalar ninguna librería. Utilizaremos la variable “poblac” del fichero de datos “world95.sav”. 1.- P ulsamos ulsamos “Estadísticos\Resúm stadísticos\R esúmenes\Tes enes\Testt de normalidad normalidad de Shapir S hapiro-Wilk” o-Wilk”..
Figura 51. Test de normalidad normalidad de Shapiro-Wilk Shapiro-Wilk (I)
2.- Seleccionamos la variable “poblac” y pulse “Aceptar”:
Figura 52. Test de normalidad normalidad de Shapiro-Wilk Shapiro-Wilk (II)
3.- En la ventana de resultados el test muestra un valor p de 2.2e-16 menor que 0.05 (alfa o error tipo I que dependerá del campo en el que estemos trabajando), por lo que se rechaza la hipótesis nula de que la variable “poblac” se distribuye como una distribución normal.
Figura 53. Test de normalidad normalidad de Shapiro-Wilk Shapiro-Wilk (III)
4.- Alternativamente, podríamos haber escrito la instrucción siguiente, donde x es el nombre de la variable. Crearemos una nueva variable x a partir de la variable “poblac” y realizaremos el test: x<- World_95$poblac
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
39
shapiro.test(x) O bien escribiendo directamente: shapiro.test(World_95$poblac)
5.3.. Anderson-Darli 5.3 Anderson-Darli ng test de d e normalidad normalid ad El test de Anderson-Darling se encuentra en la librería “nortest”. Tenemos que asegurarnos que esta librería se encuentre instaladada (escribiremos “library(nortest)” en la consola de R). Utilizaremos la variable “poblac” del fichero de datos “world95.sav”. 1.- Creamos una nueva variable x en el caso de que no lo haya hecho anteriormente: x<- World_95$poblac 2.- Escribimos en la consola de R: ad.test(x) O bien directamente: ad.test(World_95$poblac) 3.- En la ventana de resultados el test muestra un valor p de 2.2e-16 menor que 0.05 (alfa o error tipo I que dependerá del campo en el que estemos trabajando), por lo que se rechaza la hipótesis nula de que la variable “poblac” se distribuye como una distribución normal.
Figura 54. Test de normalidad normalidad de Anderson-Darling Anderson-Darling
5.4.. Cramer-von 5.4 Cramer-von Mises Mis es test de normalidad nor malidad El test de Cramer-con Mises se encuentra en la librería “nortest”. Tenemos que asegurarnos que esta librería se encuentre instalada (escribiremos “library(nortest)” en la consola de R). 1.- Creamos una nueva variable x en el caso de que no lo haya hecho anteriormente: x<- World_95$poblac
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
40
2.- Escriba en la consola de R: cvm.test(x) O bien directamente: cvm.test (World_95$poblac) 3.- En la ventana de resultados el test muestra un valor p de 7.358e+68. Existe un error, ya que el “+” debiera ser un “-“.
Figura 55. Test de normalidad normalidad de Cramer-von Mises
5.5. 5. 5. Lilliefors (Kolmogo rov-S rov-Smirnov) mirnov) test de nor malidad El test de Lilliefors, también conocido como test de Kolmogorov-Smirnov ajustado o corregido, se encuentra en la librería “nortest”. Nos asguramos que esta librería esté instalada (escribimos “library(nortest)” en la consola de R). 1.- Creamos una nueva variable x en el caso de que no lo haya hecho anteriormente: x<- World_95$poblac 2.- Escribimos en la consola de R: lillie.test(x) O bien directamente: directamente: lillie.test (World_95$p (World_ 95$poblac) oblac) 3.- En la ventana de resultados el test muestra un valor p de 2.2e-16 menor que 0.05 (alfa o error tipo I que dependerá del campo en el que estemos trabajando), por lo que se rechaza la hipótesis nula de que la variable “poblac” se distribuye como una distribución normal.
Figura 56. Test de normalidad normalidad de Lilliefors Lilliefors
5.6.. Shapir 5.6 Shapiro-Francia o-Francia test de n ormali ormalidad dad El test de Shapiro-Francia se encuentra en la librería “nortest”. Asegúrese de tener esta librería librería instalada. instalada. 1.- Creamos una nueva variable x en el caso de que no lo hayamos hecho anteriormente: x<- World_95$poblac El número de casos del vector x debe estar entre 5 y 5000. 2.- Escribimos en la consola de R:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
41
sf.test(x) O bien directamente: sf.test (World_95$p (World_ 95$poblac) oblac) 3.- En la ventana de resultados el test muestra un valor p de 2.2e-16 menor que 0.05 (alfa o error tipo I que dependerá del campo en el que estemos trabajando), por lo que se rechaza la hipótesis nula de que la variable “poblac” se distribuye como una distribución normal.
Figura 57. Test de normalidad normalidad de Shapiro-Francia Shapiro-Francia
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
42
CORRELA COR RELACIÓN CIÓN LINEAL
En el estudio bidimensional de dos variables, frecuentemente consideramos la posibilidad de que la relación entre la variable dependiente (explicada) y una variable independiente (explicativa) sea lineal. Generalmente esta consideración permite el buen funcionamiento de un modelo de regresión múltiple, a pesar de que las relaciones no sean estrictamente lineales. En el caso de tener un modelo con tan sólo una variable independiente la suposición de linealidad suele ser demasiado estricta y es posible que la relación no sea de tipo lineal pero que podamos encontrar otro tipo de función no lineal que explique la relación entre las variables. En definitiva, la comodidad de trabajar con modelos lineales, especialmente en cuanto a la facilidad de interpretación, no debiera hacernos olvidar otro tipo de relaciones. En ocasiones encontramos que para las diferentes combinaciones entre dos variables se obtiene una relación lineal, por ejemplo un sector en el que las empresas oscilan entre 100 y 5000 unidades monetarias de ventas y de 10 a 50 trabajadores. Ello no debe llevarnos a suponer que las combinaciones que se encuentran fuera de los intervalos señalados también se comporten linealmente. De hecho, puede decirse que el mundo no es lineal pero en muchas ocasiones para pequeños intervalos de las variables se comporta como si lo fuera. Por ello, no debe utilizarse el análisis de regresión (o lo resultados derivados de la correlación lineal de Pearson) como un instrumento para predecir valores de la variable dependiente que se encuentren alejados de los valores muestrales, bien sean mayores o menores que estos. Debido a que el coeficiente de correlación lineal de Pearson elevado al cuadrado coincide con el coeficiente de determinación del análisis de regresión lineal simple, estos dos análisis frecuentemente aparecen realizados de forma conjunta. Dentro del estudio de la linealidad entre variables, comenzaremos con las representaciones gráficas, cuantificando numéricamente esta relación con el coeficiente de correlación lineal de Pearson y finalmente la utilización del coeficiente de correlación parcial.
6.1.. Linealidad. Representación 6.1 Representación gráfic gráfica a Una primera aproximación al estudio bidimensional entre variables es la representación gráfica para observar la naturaleza de relación entre dos variables. En la figura de la izquierda la relación entre las dos variables es claramente lineal, mientras que esa relación no lo es en la gráfica de la derecha.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
43
Figura 58. Estudio del tipo de relación entre dos dos variables
En la práctica no siempre es sencillo determinar si la relación entre dos variables es lineal o no lo es. En algunos campos se realizan análisis sobre variables transformadas, utilizando transformaciones logarítmicas lg(y), inversas (1/y), etc. Estas transformaciones también es posible realizarlas sobre las variables independientes, o sobre ambas.
6.2.. Correlación lineal de Pe 6.2 Pearson arson El coeficiente de correlación de Pearson mide la relación lineal y su sentido entre dos variables cuantitativas que están medidas al menos en escala de intervalo. Varía entre –1 y +1. Un valor de +1 indica correlación lineal perfecta directa o positiva (incremento de una variable está relacionado perfectamente con el incremento de la otra variable) y un valor de -1 indica correlación lineal perfecta o negativa (la disminución de una variable está perfectamente relacionada con la disminución de la otra). El coeficiente de correlación lineal de Pearson elevado al cuadrado indica el tanto por ciento de la varianza de una variable que es explicada por la otra suponiendo que la relación fuera lineal. Su expresión es: p q xi y j nij − ∑ xi ni. ∑ y j n.j N ∑ ∑ S i =1 j=1 i =1 j=1 r XY = XY = 2 2 S X S Y p q p 2 q 2 x n − x n N x n − y n N i i. j .j j .j ∑ i i. ∑ ∑ ∑ i =1 i =1 j=1 j=1 p
q
Debe tenerse en cuenta que el coeficiente de correlación de Pearson requiere que la variable sea continua, medida en una escala al menos de intervalo y que la relación sea lineal. Este coeficiente tiene un funcionamiento óptimo cuando se cumplen los supuestos de normalidad, en caso contrario la idoneidad en su aplicación disminuye ya que el valor p (significación) se construye bajo supuesto de normalidad. Las correlaciones son medidas de asociación lineal. Esto significa que dos variables pueden estar perfectamente relacionadas, pero si la relación no es lineal, el coeficiente de correlación no es un estadístico adecuado para medir su asociación.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
44
6.3.. Coefic 6.3 Coeficiente iente de corr elación parcial p arcial de Pearso Pearson n Mientras que el coeficiente de correlación lineal de Pearson describe la relación lineal existente entre dos variables, el coeficiente de correlación parcial describe esta relación lineal entre dos variables pero controlando los efectos de una o más variables adicionales, es decir, eliminando el efecto de esas variables adicionales. Para ello se procede a calcularlo de forma recursiva partiendo de los niveles de orden más bajos a los más altos. El coeficiente de correlación parcial de Pearson entre las variables "x" e "y", eliminando el efecto de "w" se determina como: r xy· w =
r xy − r wx r wy 2 2 (1 − r wx )(1 − r wy )
El coeficiente de correlación parcial de Pearson entre las variables "x" e "y", eliminando el efecto de "w" y de "z" se determina como: r xy· wz =
r xy· w − r xz· w r yz· w
(1 − r xz2 · w )(1 − r yz2 · w )
6.4.. Ejempl 6.4 Ejemplo o de cor relación lin linea eall de d e Pea Pearson rson Se dispone de los datos de tasa de nacimiento y del porcentaje de personas dedicadas a la agricultura en doce países. Utilizaremos el fichero de excel “Fic_06_01.xls” para el análisis. Pais J apón apón Grecia Grecia URRSS URR SS P olonia Yugosl Yugoslav avia ia F rancia Taiw Taiwan China Irlanda India Malasia F ilipinas
tasa de % nacimiento agricultura 9,47 ,47 5 9,72 12 9,8 9,8 12,3 12,3 10,78 16,1 12,12 ,12 12 12,15 4,1 12,64 ,64 8 13,14 49 14,47 8 22,32 60 23,07 14,5 25,31 36
Figura 59. Tabla de datos datos fichero Fic_06_01.xls Fic_06_01.xls
Se desea realizar conocer la posible existencia de relación lineal entre las dos variables. Seguiremos los pasos necesarios en R para alcanzar este objetivo. 6.4.a. Operaciones previas de datos en R. Importación de datos
Entre las posibilidades de utilización de ficheros, consideraremos que los datos han sido recogidos y almacenados en una tabla de Excel. En primer lugar procederemos a importar el fichero desde excel “Fic_06_01.xls” para realizar los análisis necesarios en R. Arrancaremos R y utilizaremos el RCommander (ver manual de R).
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
Figura 60. Importación Importación de datos en EXCEL EXCEL (I)
Daremos el nombre “NacAgr” a la nueva base de datos:
Figura 61. Importación Importación de datos en EXCEL EXCEL (II)
Buscamos el fichero excel que queremos importar, seleccionándolo:
Figura 62. Importación Importación de datos en EXCEL EXCEL (III)
Esto es equivalente a escribir en la ventana de instrucciones: names(NacAgr) names(N acAgr) <- make.names(nam ake.names(names(N es(NacAgr)) acAgr)) Se produce un aviso en la importación:
45
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
46
AVISO: NacAgr contains non-standard variable names: Thes These e have been een chan chang ged to: tasa.de.nacimiento, X..agricultura Figura 63. Aviso en la importación de datos en EXCEL
Si pulsamos en el botón de “Editar conjunto de datos” podemos comprobar si la importación se ha realizado correctamente:
Figura 64. 64. Edición de datos
Comprobamos que los nombres de las variables han cambiado:
Figura 65. 65. Editor de datos
Si hacemos doble click con el ratón sobre el nombre de la variable “tasa.de.nacimiento” en la siguiente ventana podremos cambiar el nombre de la variable:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
47
Figura 66. Cambio de nombre nombre de variable variable (I)
Sustituimos el nombre de la variable “tasa.de.nacimiento” por “tasanacimiento”, pulsando la tecla de retorno (intro) al finalizar.
Figura 67. Cambio de nombre nombre de variable (II) (II)
Repetimos el proceso para todas las variables:
Figura 68. Cambio de nombre nombre de variable (III)
6.4.b. Operaciones previas de datos en R. Almacenar datos
Una vez finalizado el proceso de importación, almacenaremos el fichero importado en formato R. Para ello guardaremos el conjunto de datos activos (en nuestro caso solamente tenemos un fichero de datos NacAgr) con el nombre “NacAgr.rda”.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
48
Figura 69. Guardar datos datos activos activos
6.4.c. Operaciones previas de datos en R. Cargar datos
Una vez almacenados los datos en formato R, podrán ser recuperados en cualquier momento sin necesidad de realizar de nuevo la importación. Para ello pulsaremos Datos\ Cargar conjunto de datos…, y buscaremos el fichero en formato R que deseamos cargar.
Figura 70. Cargar datos en formato formato R
6.4.d. Representación gráfica de dispersión
La obtención de gráficas de dispersión (también denominadas gráficos X-Y) puede realizarse mediante programación o bien utilizando el módulo RCommander. Si optamos por utilizar el RCommander, pulsaremos Gráficas\ Gráfica XY… :
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
Figura 71. 71. Gráfico X-Y (I)
Seleccionaremos las dos variables que deseamos representar:
Figura 72. Gráfico X-Y (II)
El resultado se muestra a continuación:
49
50
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
5 2
o t n 0 e 2 i m i c a n a s a t
5 1
0 1
10
20
30
40
50
60
agricultura
Figura 73. Gráfico X-Y X-Y (III)
Otra posibilidad que proporciona más información es la utilización del gráfico de dispersión. Para ello, pulsaremos Gráficas\ Diagrama de dispersión:
Figura 74. Gráfico de dispersión (I)
Inicialmente seleccionaremos las dos variables que se desean representar:
51
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
Figura 75. Gráfico de dispersión (II) (II)
El resultado con las opciones básicas del gráfico de dispersión es el mismo que el de los gráficos X-Y: 5 2
o 0 t n 2 e i m i c a n a s a t
5 1
0 1
10
20
30
40
50
60
agricultura
Figura 76. Gráfico de dispersión (III) (III)
Entre las opciones que pueden ayudar en la interpretación de los resultados encontramos la representación de los diagramas de caja (box-plot) para cada una de las variables, así como la representación de una línea obtenida por mínimos cuadrados (análisis de regresión lineal simple).
52
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
Figura 77. Gráfico de dispersión (IV) (IV)
El resultado se muestra a continuación:
5 2
0 2 o t n e i m i c a n a s a t 5 1
0 1
10
20
30
40
50
60
agricultura
Figura 78. Gráfico de dispersión (V)
Para copiar los gráficos obtenidos posicionaremos el cursor sobre el gráfico y utilizando el botón derecho del ratón lo copiaremos como metafichero:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
53
Figura 79. Copiar gráfico gráfico al portapapeles portapapeles
El gráfico estará en el portapapeles. Para pegarlo en nuestro procesador de textos utilizaremos la opción de “pegar”. Otra posibilidad es la de guardar el gráfico en un fichero e importarlo posteriormente con el procesador de textos. Podemos también representar en el gráfico cada individuo (cada punto). Para ello habrá que seleccionar “Identificar observaciones”:
Figura 80. Identificación de individuos en diagrama diagrama de dispersión (I)
El programa nos informa que para activar el identificador de un punto nos posicionemos sobre ese punto y pulsemos el botón izquierdo del ratón:
Figura 81. Identificación de individuos en diagrama diagrama de dispersión (II)
En la siguiente figura podemos observar cómo cada caso o individuo aparece indicado con el número de línea correspondiente en la base de datos:
54
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
12
5 2
11 10
0 2
o t n e i m i c a n a s a t
5 1
9 8 7 5
6
4 0 1
1
2
10
3
20
30
40
50
60
agricultura
Figura 82. Identificación de individuos en diagrama diagrama de dispersión (III)
En el caso de que deseemos que en vez de los puntos aparezca el identificador del país (el nombre del país, por ejemplo), deberemos definir previamente qué columna corresponde al identificador. Para ello, pulsaremos Datos\ Conjunto de datos activo\ Establecer nombres de casos:
Figura 83. Establecer nombres de casos (I)
Figura 84. Establecer nombres de casos (II)
55
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
5 2
Filipinas
Malasia India
o 0 t n 2 e i m i c a n a s a t
5 1
Irlanda
China Taiwan iwan Yugosla Yugoslavia Francia 0 1
Polonia Japón Japón
URRSS Grecia
10
20
30
40
50
60
agricultura
Figura 85. Identificación de individuos en diagrama diagrama de dispersión (IV)
6.4.e. Correlación lineal de Pearson
Una vez cargado el fichero con los datos, pulsaremos Estadísticos\ Resúmenes\ Matriz de correlaciones…
Figura 86. Obtención de la matriz de correlaciónes correlaciónes (I)
A continuación procederemos a la selección de variables. Si se seleccionan más de dos variables se obtendrá una matriz que mostrará todas las combinaciones con las correlaciones. La selección de “p-valor pareado” proporcionará el valor p correspondiente al coeficiente seleccionado para el número de casos o individuos analizados, en nuestro caso doce países.
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
56
Figura 87. Obtención de la matriz de correlaciónes correlaciónes (II)
El proceso realizado a través de las ventanas de RCommander es equivalente a escribir en la ventana de instrucciones: library(Hmisc, pos= pos=4) 4) rcorr.adjust(NacAgr[,c("agricultura","tasanacimient rcorr.adjust(NacAgr[,c("agricultura" ,"tasanacimiento")], o")], ty type= pe="pearson") Los resultados indican una correlación positiva entre las dos variables de +0.56 y un valor p de +0.0562. Para un nivel de significación de alfa 0.05 (error Tipo I, prueba bilateral), el valor p obtenido (0.0562) es mayor que alfa (0.05), por lo que no rechazaremos la hipótesis nula de que la correlación lineal de Pearson es cero. Expresado de otra forma, no rechazamos la hipótesis nula de que la correlación lineal existente de +0.56 sea estadísticamente diferente de cero, no rechazamos que haya podido producirse por causas aleatorias. agr i cul cul t ur a t asanac sanacii mi ent o agr i cul cul t ur a 1. 1. 00 t asana asanaci ci mi ent ent o 0. 56
0. 0. 56 1. 00
n= 12 agr agr i cul cul t ur a t asan asanaci mi ent ent o agr i cul cul t ur a 0. 0562 t asanaci asanaci mi ent ent o 0. 0. 0562 0562 Adj ust ed p- val val ues ues ( Hol m' s met hod) hod) agr agr i cul cul t ur a t asan asanaci mi ent ent o agr i cul cul t ur a 0. 0562 t asanaci asanaci mi ent ent o 0. 0. 0562 0562
Figura 88. Resultados del coeficiente coeficiente de correlación correlación lineal de Pearson
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
57
REGRES REG RESIÓN IÓN LINEAL SIMP SIMPLE LE
En el estudio bidimensional de dos variables, frecuentemente consideramos la posibilidad de que la relación entre la variable dependiente (explicada) y una variable independiente (explicativa) sea lineal. Generalmente esta consideración permite el buen funcionamiento de un modelo de regresión múltiple, a pesar de que las relaciones no sean estrictamente lineales. En el caso de tener un modelo con tan sólo una variable independiente la Dentro del estudio de la linealidad entre variables, comenzaremos con las representaciones gráficas, cuantificando numéricamente esta relación con el coeficiente de correlación lineal de Pearson y finalmente la utilización del coeficiente de correlación parcial. El análisis de regresión lineal simple es el caso más sencillo de análisis de regresión y parte de la determinación de una variable dependiente a partir del conocimiento de una variable independiente de la forma: y i = α + β x i + ε i
i = 1,2,..., n
La obtención de los parámetros generalmente se realiza utilizando mínimos cuadrados ordinarios, buscando que los valores de alfa y beta minimicen los residuos al cuadrado. Para ello, partimos de la definición de una función de densidad de las perturbaciones aleatorias: f (ε i ) =
( )2
1 2π σ ε 2
e
1 ε − 2 i 2σ ε
Tenie Tenien ndo en cue cuenta que las las perturbacion cione es son son ind indepe ependien ientes entre sí, la fun función ción de densidad conjunta de las n perturbaciones se define como el producto de las n funciones de densidad: L =
n
∏ f (ε
i
1
)= n
i =1
2π n σ ε
2
e
1 − 2σ ε 2
n
∑= ε
2
i
i 1
E n la función de regresión lineal simple: y i = α + β xi + ε i
i = 1,2,..., n
Se despeja el error: ε i = y i − α − β x i
i = 1,2,..., n
Sustituyendo el error en la función de densidad conjunta obtenemos: L =
n
∏1 f (ε i=
i
1
)= n
2π n σ ε
2
e
1 − 2σ ε 2
n
∑=1 ( y −α − β x ) 2 i
i
i
58
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
Aplicando logaritmos neperianos a la función: 2 −n / 2 Ln L = Ln ∏ f (ε i ) = Ln (2π ) σ ε i =1 n
( )
−n / 2
e
1 − 2σ ε 2
∑ ( y −α − β x ) = n
2
i
i
i 1
1 n n n 2 2 Ln L = − Ln(2π ) − Ln(σ ε ) − ∑ ( y i − α − β xi ) 2 2 2 2σ ε i =1
Y der deriva ivando la exp expresión sión respec spectto de alfa, fa, beta e igu igualan lando a cer cero se obt obtiene ene: n ∂ Ln L 1 n = ∑ ( y i − α − β x i ) = 0 ⇒ ∑ ( y i − α − β x i ) = 0 2 i =1 ∂α 2σ ε i =1 n ∂ Ln L 1 n α β y x x = − − = ⇒ ( )( ) 0 ( y i − α − β x i )( x i ) = 0 ∑ ∑ i i i i =1 ∂ β 2σ ε 2 i =1
A partir de las dos ecuaciones normales anteriores y despejando en ellas se determinan los valores de beta y alfa: β =
S xy S x2
, y α = y − β x
Derivando respecto a la varianza de las perturbaciones e igualando a cero: ∂ Ln L ∂σ ε
2
=−
n
2σ ε
2
n
+
n
( )
2 σ ε
n
2 2 ∑ ( y i − α − β x i ) = 0 ⇒ ∑ ( y i − α − β x i ) = σ ε
2 2 i =1
2
i =1
2 Luego: ( y i − α − β x i ) 2 = nσ ˆ ε
Por lo que σ ˆ ε 2 =
1 n
n
∑ ( y i − α − β xi )2 = i =1
1
n
∑ (e ) n
2
i
i =1
Pero este estimador es sesgado, sustituyéndose por σ ˆ ε = 2
1
n
∑ (e ) n−2
2
i
i =1
De esta forma, es posible construir la función de regresión lineal que relaciona las dos variables: Y = α + β X .
7.1.. Fases 7.1 Fases en en el análisis de regresión l ineal simple sim ple En primer lugar hay que indicar que una fase previa a todo análisis de regresión debiera ser la representación gráfica de las variables para determinar si existe o no linealidad para las relaciones entre la variable dependiente y cada una de las independientes, así como el estudio de las correlaciones lineales entre ellas. Suelen establecerse las siguientes fases dentro de un análisis de regresión: 1. Análisis gráfico y de las correlaciones lineales 2. Bondad global del modelo 3. Análisis Análisis relacionados relacionados con la variable variable independient independiente e 4. Análisis Análisis relacionados relacionados con la variable variable dependient dependiente. e. Valores Valores pronosticados 5. Análisis de los residuos
59
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
6. Estadísticos E stadísticos de influencia, influencia, "leverage" "leverage" o apalancamient apalancamiento. o. Casos C asos atípicos 7. Autocorrelación Autocorrelación A continuación desarrollaremos las tres primeras fases.
7.2.. Análisis d e las 7.2 las correlaciones cor relaciones Una vez realizada la representación gráfica es posible obtener los estadísticos descriptivos y la matriz de correlaciones con el fin de detectar si existe relación y en caso afirmativo si es lineal. La correlación entre la variable dependiente y la independiente en un análisis de regresión lineal simple, evidentemente, debe ser grande. Hay que tener en cuenta que el nivel de significación depende del tamaño muestral, por lo que podemos encontrar que correlaciones bajas pero con un tamaño muestral grande sean significativas, mientras que correlaciones mayores no lo sean si el tamaño muestral es pequeño. No obstante, es recomendable realizar la representación gráfica a pesar de haber comprobado la existencia de relación lineal.
7.3.. Bondad global 7.3 glob al del modelo La bondad global del modelo indica el grado con el que la variable independiente puede predecir a la variable dependiente. Este análisis es posible efectuarlo a partir del estudio de diversos estadísticos. En primer lugar, a partir de la F de Snedecor-Fisher (cociente entre la media cuadrática explicada por la regresión y la no explicada o residual) y su valor p asociado: ANOVA(b) Modelo Regresión 1
Suma de cuadrados 35877,712
gl 1
Media cuadrática 35877,712
Residual
7305,888
13
561,991
Total
43183,600
14
F 63,840
Sig. ,000(a)
a Variables predictoras: (Constante), X b Variable dependiente: Y
Figura 89. ANOVA en el análisis de regresión
Se busca dividir la varianza total de la variable dependiente en dos partes: la varianza explicada por la regresión y la varianza residual. De esta forma, la suma de cuadrados totales es igual a la suma de cuadrados de la regresión más la residual. Teniendo en cuenta que la varianza de la variable dependiente es constante e independiente del modelo que hayamos elegido, el objetivo se centra en conseguir un modelo que, lógicamente, tenga una suma de cuadrados explicada (de la regresión) grande y una suma de cuadrados residual (errores) pequeña. Para la tabla anterior la suma de cuadrados totales se descompone de la siguiente forma: Suma de cuadrados totales (43183,6) = Suma de cuadrados regresión (35877,712) +Suma de cuadrados residuales (7305,888) •
La suma de cuadrados total del modelo es igual a la varianza de la variable dependiente por (N-1). Por lo tanto, la suma de cuadrados total es independiente del modelo construido. Se define como: SC TOTAL =
2
N
∑1 (Y − Y ) i
i=
= Y 'Y − N Y 2
60
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
•
La suma de cuadrados explicada por la regresión se define como SCRegr =
N
2
∑(
ˆ − Y Y i
)
= Y ˆ 'Y − N Y 2 , o también como SCRegr = R 2 ( N − 1) S y2
i =1
Cuanto mayor sea la suma de cuadrados explicada por la regresión mejor será la bondad del modelo. Se observa en la tabla que el valor del coeficiente de determinación R 2, que se definirá a continuación, es de 0,831, N el número de observaciones (15). La varianza de la variable dependiente es de 3084,543 obtenida a partir de los estadísticos descriptivos en la siguiente tabla: Estadísticos descriptivos Media Y X
176,40 66,60
Varianza Desviación típ. N 3084,543 55,54 310,4 17,62
15 15
Figura 90. Estadísticos descriptivos descriptivos en el Análisis de Regresión Regresión
Por lo que la suma de los cuadrados explicada por la regresión será igual a: SCRegr = 0,830817 (15 − 1) 3084,543 = 35877,7 . Se considera que el modelo tiene un grado de libertad, ya que hay una variable independiente en el mismo. •
La suma de cuadrados no explic ada por la regresión se define como
SCErr =
2
N
∑1 (Y − Y ˆ ) i
i
, o bien, SCErr = (1 − R 2 )( N − 1) S y2 con N-1 grados de libertad.
i=
Para el ejemplo de la tabla SCErr = (1 − 0,830817)(15 − 1) 3084,543 = 7305,886 Los grados de libertad totales son 14 (15 observaciones – 1). Por lo tanto, los grados residuales de la regresión serán 14 grados de libertad totales – 1 = 13 grados de libertad. Evidentemente, cuanto mayor sea la suma de cuadrados no explicada por la regresión peor será la bondad del modelo. •
Medias cuadráticas
Frecuentemente el análisis de la parte explicada y sin explicar de los distintos modelos no se realiza sobre las sumas de cuadrados ya que los modelos pueden tener grados de libertad distintos en función del número de variables que intervengan. Por ello suelen utilizarse las medias cuadráticas que consideran ambos aspectos. Las medias cuadráticas se definen como la suma de cuadrados entre los grados de libertad: MC = SC gl , obteniendo dos medias cuadráticas, una para la regresión (explicada) y otra residual (sin explicar). Así, por ejemplo, podemos calcular la media cuadrática residual de la regresión de la tabla anterior: MCRegr =
•
35877,7 1
= 35877,7 y MCErr =
7305,888 13
= 561,991
F de Snedecor Snedecor-Fisher -Fisher
La F de Snedecor se define como el cociente entre MC regresión y la MC residuos:
61
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
F=
F=
MCRegr MCErr
35877,12 561,991
=
=
Suma Cuadrados regresión (explicada)/1 Suma Cuadrados residual (errores)/(N - 2)
Suma Cuadrados regresión (explicada)/1 7305,888 / 13
~ F (1, N − 1 − 1)
= 63,840 ~ F (1,15 − 1 − 1)
Cuanto mayor sea la F el ajuste será mejor. Valdrá cero cuando la MC regresión sea cero, es decir, cuando la variable independiente no pueda explicar nada de la dependiente. Como la interpretación de la F depende de los grados de libertad es más aconsejable el análisis del valor p asociado a la F. En el caso de la tabla, el valor p es igual a cero, por lo que la bondad global del modelo es buena, se produce el rechazo de la hipótesis nula de que la relación entre la variable dependiente e independiente se deba a causas aleatorias. Expresado de otra forma, se rechaza la hipótesis nula de que la F sea igual a cero. El coeficiente de determinación determinación R 2
•
Se define el coeficiente de determinación como el porcentaje de la varianza de la variable dependiente que es explicado por la independiente. Se define como la varianza explicada entre la varianza total: R = 2
S yˆ
2
Sy
2
o bien: R 2 =
Suma de cuadrados explicada por la regresión Suma de cuadrados total
Esta expresión es equivalente para el caso lineal a definir el coeficiente de determinación como: R 2 = 1 −
SCErr SC TOTAL
Por lo tanto, también es posible estudiar la bondad global del modelo a partir del coeficiente de determinación, que es el cuadrado del coeficiente de correlación múltiple. En la tabla la R 2 (0,831) es igual a 0,911 al cuadrado. Evidentemente, los límites del coeficiente de determinación se encuentran en cero y uno. Si el coeficiente toma un valor de cero la suma de cuadrados explicada por la regresión es nula, es decir, la variable independiente explica el cero por ciento de la variable dependiente. En el caso extremo de que el coeficiente tome valor de uno, la suma de cuadrados explicada por la regresión es igual a la suma de cuadrados total, es decir, el cien por cien de la variable dependiente es explicado por la variable independiente. Una vez determinadas las predicciones de la función lineal se obtuvo que la varianza de los pronósticos es de 2562,694 (varianza explicada). Al ser la varianza de la variable original igual a 3084,543 es posible obtener R 2 como: R 2 = 2 R =
S yˆ
2
Sy
2
2562,694 3084,543
= 0,830817 o bien como:
Suma de cuadrados explicada por la regresión
R = 1 − 2
=
Suma de cuadrados total SCErr SC TOTAL
= 1−
7305,888 43183,6
= 0,830818
=
35877,712 43183,6
= 0,830817
62
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
•
R2 ajustada o corregida
Se define la R cuadrado ajustada, también denominada como corregida: R ajustada = R − 2
2
2 p (1 − R )
N − p − 1
En esta fórmula R 2 es el coeficiente de determinación, N el número de observaciones o individuos y p el número de variables independientes en el modelo, en el caso de regresión lineal es igual a uno. Es muy importante la interpretación que hay que dar a la R cuadrado ajustada, ya que este coeficiente tiene un doble objetivo: - Busca ponderar positivamente la existencia de un elevado número de observaciones (o negativamente un número bajo) como se puede observar en el denominador. Si N es grande la R cuadrado ajustada tiende a ser igual que la R cuadrado. A medida que la N es más pequeña las diferencias tienden a ser mayores para igualdad de valores de p. - También busca ponderar negativamente la inclusión de un número excesivo de variables en el modelo. En un análisis de regresión se persigue cumplir el principio de parsimonia, es decir, obtener una varianza explicada lo más grande posible utilizando el mínimo número de variables independientes en el modelo. De esta forma, la inclusión de una variable independiente más en el modelo que no explique nada más de la variable dependiente supone que R 2 permanece constante, mientras que la R 2 ajustada disminuye. Es posible que incluso aumentando R2, la R 2 ajustada disminuya. Así, la R 2 ajustada se convierte en un instrumento para la evaluación de las variables que deben encontrarse en el modelo. En el caso de la regresión lineal simple este problema sólo se plantea para una variable. Por lo tanto en nuestro ejemplo: 2
2
R ajustada = R −
•
p(1 − R 2
) 1(1 − 0,831 ) = 0,831 − = 0,818 N − p − 1 15 − 1 − 1
El error estándar de la predicción , también denominado error típico, se define como: Error Estándar = Sy 1 − R 2 ajustada
Cuanto peor sea el ajuste menor será la R cuadrado ajustada y por lo tanto el error estándar será mayor. En nuestro caso el Error estándar será: Sy 1 − R 2 ajustada = Sy * 0,818 = 23,71 ;
siendo Sy = 55,54
7.4.. Anális 7.4 Análisis is relacionados relacio nados con la l a variabl variable e independiente Una vez obtenido un modelo de regresión que ajuste de forma adecuada o suficiente según la bondad del ajuste global, se debe a continuación contrastar la validez de los estimadores o coeficientes. •
El coeficiente no estandarizado estandarizado B
Indica los parámetros de la función de regresión. En este caso de regresión lineal simple la ecuación de regresión tomará la forma: Y =-14 -14,96 ,965 +2,8 +2,87 73 X
63
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
En el modelo de regresión lineal simple el coeficiente no estandarizado de la variable X denominado B1 es la pendiente de la recta, luego: Sxy
B1 =
2
S x
y la constante B0 = Y − B1 X
La hipótesis nula que se contrastará es que el coeficiente es igual a cero. Si se rechaza la hipótesis nula podemos considerar que el coeficiente es estadísticamente diferente de cero y por lo tanto adecuado para intervenir en el modelo. El valor p (Sig.) es igual a cero para la variable independiente, luego es estadísticamente diferente de cero. En el caso de la constante el valor p es igual a 0,555 por lo que esta constante no es estadísticamente diferente de cero, luego no es adecuada para formar parte del modelo, lo que se traduce en muchos casos en una mala predicción. •
El error típico de B se calcula como:
σ B1 =
σ
( N − p ) S
2 X
, siendo S X 2 la varianza de la variable independiente y la desviación
típica poblacional que se estima a partir de: 2
N
∑ ( y
i
− B0 − B1 xi )
i =1
ˆ= σ
=
N − p − 1
SCError N − p − 1
= Media Cuadrática del Error
Tenie Tenien ndo en cue cuenta que que en el caso caso de regresió esión n lin lineal simp simple el número ero de variab iables les independientes (p) es igual a uno, las expresiones quedarían: σ B1 =
2
N
σ
( N − 1) S X 2
∑ ( y , y σ ˆ =
− B0 − B1 xi )
i
i =1
N − 2
∑ ( y En nuestro ejemplo σ ˆ = σ B1 =
561,991
(15 − 1)17,62
2
SCError N − 2
= Media Cuadrática del Error
2
N
2
=
i
− B0 − B1 xi )
i =1
N − p − 1
=
SCError N − 2
=
7305,888 13
= 561,991
= 0,360
A mayores errores típicos del coeficiente le corresponden mayores variabilidades del mismo, es decir, un intervalo de confianza para el coeficiente también más grande. •
El coeficiente estandarizado (Beta) se obtiene como: BETAi = Bi
Sxi Sy
El coeficiente Beta nos permite una primera aproximación al conocimiento de la importancia de cada variable independiente en el modelo, ya que las B pueden estar medidas en diferentes unidades. De esta forma, tipificando la variable dependiente gasto (zgasto), se puede establecer la ecuación de regresión tipificada:
64
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
zgasto= 0,887 zX, siendo zX la variable tipificada de X. En el ejemplo estudiado se puede calcular el coeficiente de Beta para la variable independiente como: BETA1 = B1
•
Sx Sy
= 2,873
17,62 55,54
= 0,911
El valor de t de Student
Se obtiene con el cociente entre Bi y el error estándar de Bi de la siguiente forma: t i =
Bi SEBi
La interpretación de la t se realiza a partir del valor p asociado. En nuestro caso la t de la variable X (7,990) es significativa, se rechaza la hipótesis nula (valor p igual a cero) y por lo tanto la variable X es válida para nuestro modelo. Sin embargo la constante no es significativa (t igual a -,605 y valor p igual a 0,109). También es posible establecer la relación: t de Student i = F i CAMBIO
•
Intervalo de confi anza anza
Los programas informáticos suelen ofrecer el intervalo de confianza al 95% para los coeficientes, donde puede observarse la gran variabilidad en este caso de la constante, lo que implica que no es adecuada para el modelo lineal. El intervalo de confianza se calcula como: ˆ B1 · t 0.025, N − p B1 ± σ
En nuestro ejemplo, t 0.025, 13 = 2,160 , luego ˆ B1 · t 0.025, N − p = 2,873 − 0,360· 2,160 = 2,096 B1 − σ ˆ B1 · t 0.025, N − p −1 = 2,873 + 0,360 · 2,160 = 3,650 B1 + σ ˆ B 0 · t 0.025, N − 2 = −14,965 − 24,720 · 2,160 = −68,36 B0 − σ ˆ B 0 · t 0.025 , N − 2 = −14,965 + 24,720 · 2,160 = 38,43 B0 + σ
El intervalo para B1 es [+2,096 ; 3,650], constatándose que el valor de cero no se encuentra dentro del intervalo, es decir, que B1 es significativamente distinto de cero, y por lo tanto la variable independiente es adecuada para el análisis de regresión. Por el contrario, la constante tiene un valor de –14,965 que se encuentra dentro del intervalo [-64,36 ; 38,43], luego no es significativamente distinta de cero y no es adecuada en el modelo. • Análi An álisi siss d e los lo s sig s igno noss
Una de las comprobaciones que deben hacerse sobre las variables independientes hace referencia al signo de los coeficientes. El signo de una variable independiente debe ser compatible con la naturaleza de la variable, por ejemplo, no puede haber signo negativo en una variable que no puede tomar esos valores ni tampoco puede tener un signo que indique el sentido contrario a la relación con la variable dependiente, si la relación entre
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
65
ambas es positiva no tiene sentido que el coeficiente sea negativo. En el caso del análisis de regresión lineal simple el signo del coeficiente en la regresión es el mismo que el obtenido para el análisis de correlación lineal de Pearson, pero en el caso de regresión lineal múltiple podemos encontrar signos distintos para la misma variable.
7.5.. Ejemplo 7.5 Ejemplo análisis anális is de regresión lineal simp le en R Utilizaremos el fichero de excel “Fic_06_01.xls” que hemos analizado en el apartado 3, en el que se dispone de los datos de tasa de nacimiento y del porcentaje de personas dedicadas a la agricultura en doce países. Dentro de las siete fases señaladas en el análisis de regresión lineal simple, la primera (Análisis gráfico y de las correlaciones lineales) ya fue realizada anteriormente. El objetivo es la construcción de una función de regresión lineal simple de la forma Y = α + β X , en la que Y es la variable que se quiere predecir (en nuestro caso la tasas de nacimiento) a partir del conocimiento de X (porcentaje de agricultura).
Figura 91. Análisis de regresión regresión lineal simple simple en R
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
66
A continuación aparecerá una ventana en la que se seleccionarán las variables.
Figura 92. Selección de variables en Análisis Análisis de regresión lineal simple simple en R
En la parte superior daremos un nombre al modelo que vamos a construir. Esta fase es importante, porque posteriormente podremos recuperar información que R no proporciona directamente por defecto. Como variable explicada ( Y) elegimos la tasa de nacimiento y como variable explicativa (X) seleccionamos la agricultura. Pulsando el botón de aceptar, R enviará los principales resultados a la ventana de resultados de RCommander. La función completa en R para realizar modelos de regresión lineales se define como: lm (formula, data, subset, weights, na.action, method ="qr", model =T, x = F, y =F, qr =T, singular.ok = T, contrasts = NULL, offset, ...) Los principales argumentos que se utilizan en la función son: •
formula: Definición del modelo que se quiere construir. Para el caso de regresión lineal simple la expresión es lm(y ~ x). x). Para el caso en el que se desee forzar a que la regresión pase por el origen (constante igual a cero), la expresión será igual a lm(y ~ 0+x).
•
weights: Un vector de pesos que puede ser utilizado si la ponderación de cada caso es diferente. Por defecto todos los casos tienen el mismo peso.
•
na.action: Especificación de lo que debe hacer la función lm() cuando encuentre datos ausentes o no disponibles del tipo NaN.
•
method: Método a usar en el modelo para elegir variables independientes. En el caso de regresión lineal simple tan solo hay una variable independiente, por lo que no procede especificar esta opción.
En términos generales, la construcción de la función y = α + β x se definiría definiría como como lm(y~x) lm(y~x).. El procedimiento realizado gráficamente es equivalente a dos instrucciones: ModelLin <- lm(tasanacimiento~agricultura, data=NacAgr) summary(ModelLin) Los resultados se muestran a continuación:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban Resi dual s: Mi n 1Q Medi an - 6. 532 - 3. 247 - 0. 506 506
3Q 1. 033
67
Max 9. 401 401
Coef f i ci ent s: Est i mat e St d. Er r or t val val ue ( I nter cept cept ) 11. 11. 1459 14595 5 2. 1296 12960 0 5. 234 234 agr agr i cul t ura 0. 0. 1740 17400 0 0. 0806 08061 1 2. 159 159 --Si gni f . c od odes : 0 ' * * * ' 0. 0. 001 ' * * ' 0. 01
Pr ( >| t | ) 0. 0003 000382 82 ** * 0. 0562 056242 42 . ' * ' 0. 05 ' . ' 0. 1 ' ' 1
Resi dual dual st and andard er er r or: 4. 9 on on 10 10 deg degrr ees ees of f r eedo eedom m Mul t i pl e R- squared squared:: 0. 3179 179, Adj ust ed R- squared squared:: 0. 2496 F- st ati st i c: 4. 66 on 1 and 10 DF, p- val val ue: 0. 0. 05624 Resul esul t ado ados del del anál anál i si s de de r egr egr esi ón l i neal si mpl e en R ( I )
Figura 93. Resultados del Análisis de regresión regresión lineal simple en R (I). Bondad global global del modelo
En cualquier momento se puede recuperar esta información tecleando en la ventana de instrucciones: coef(ModelLin) print(ModelLin) 7.5.a. Bondad global del modelo
De los resultados obtenidos en R se obtiene la La F de Snedecor (F-Statistic) y que se define como el cociente entre MC regresión (con un grado de libertad porque hay solamente una variable independiente) y la MC residuos (con 10 grados de libertad que se calculan como el número de casos 12 menos el número de grados de libertad del modelo o variables independientes que en nuestro caso es igual a uno y menos uno). La F es igual a 4.66 con un valor p igual a 0.05624, por lo que la bondad global del modelo no es buena, ya que no se produce el rechazo de la hipótesis nula de que la relación entre la variable dependiente e independiente se deba a causas aleatorias. Expresado de otra forma, no se rechaza la hipótesis nula de que la F sea igual a cero. Se define el coeficiente de determinación R 2 definido como el porcentaje de la varianza de la variable dependiente que es explicado por la independiente es igual a 0.3179, es decir que la variabe independiente (agricultura) no llega a explicar el 32% de la variable dependiente (tasa de nacimiento). La R 2 ajustada es igual a 0.2496, es decir, un porcentaje bajo a la hora de la explicación de la variable dependiente. Para obtener la tabla del análisis de la varianza con las de cuadrados deberemos escribir en la ventana de instrucciones: anova(ModelLin) El resultado se muestra a continuación: Anal ysi s of Var i ance Ta Tabl e Respon esponse: se: t asanaci asanaci mi ent ent o Df Sum Sq Mean Sq F val val ue Pr ( >F) agr agr i cul t ura 1 111. 111. 87 111. 111. 867 867 4. 6596 6596 0. 0562 05624 4 . Resi dual dual s 10 240. 240. 08 24. 24. 008 008 --Si gni f . c od odes : 0 ' * * * ' 0. 0. 001 ' * * ' 0. 01 ' * ' 0. 05 ' . ' 0. 1 ' ' 1
Figura 94. Resultados del Análisis de regresión regresión lineal simple en R (II). Bondad Bondad global del modelo
7.5.b. Análisis relacionados con la l a variable independiente
La función de regresión lineal simple Y = α + β X , siendo Y la tasa de nacimiento y X la agricultura puede escribirse utilizando los coeficientes obtenidos como: Y = 11.14595 + 0.174 X
68
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban Coef f i ci ent s: Est i mat e St d. Er r or t val val ue ( I nter cept cept ) 11. 11. 1459 14595 5 2. 1296 12960 0 5. 234 234 agr agr i cul t ura 0. 0. 1740 17400 0 0. 0806 08061 1 2. 159 159 --Si gni f . c od odes : 0 ' * * * ' 0. 0. 001 ' * * ' 0. 01
Pr ( >| t | ) 0. 0003 000382 82 ** * 0. 0562 056242 42 . ' * ' 0. 05 ' . ' 0. 1 ' ' 1
Figura 95. Resultados del análisis de regresión regresión lineal simple en R (III). Variable Variable independiente
R nos muestra el error típico de los coeficientes SEBi , así como el valor de la t de Student t i = Bi SEBi . Se obtiene un valor t para cada coeficiente. La interpretación de la t se realiza a partir del valor p asociado. En nuestro caso la t de la constante (11.14595) toma un valor de 5.234 y un valor p de 0.000382, por lo que es significativa, se rechaza la hipótesis nula (valor p igual a cero) y por lo tanto la constante es válida en nuestro modelo. En referencia al valor de la pendiente o coeficiente de la variable independiente que toma un valor de 0.174 alcanza un valor para la t de 2.159 y un valor p de 0.056242 que es mayor que un error Tipo I de 0.05, por lo que no es significativamente diferente de cero y tendremos que rechazar este modelo como válido. Por lo tanto, no se rechaza la hipótesis nula para el coeficiente de la variable independiente H0: β = 0. El intervalo de confianza de los coeficientes de la variable independiente pueden obtenerse tecleando en la ventana de instrucciones: confint(ModelLin) 2. 5 % 97. 5 % ( I nter cept cept ) 6. 4009 400913 1368 680 0 15. 15. 8909 890994 948 8 agr agr i cul t ura - 0. 0056 005604 0483 835 5 0. 3536 353609 095 5
Figura 96. Resultados del Análisis de regresión regresión lineal simple en R (III). Intervalos Intervalos de confianza coeficientes coeficientes
7.5.c. Valores pronosticados
Para obtener los valores pronosticados de la función obtenida Y = 11.14595 + 0.174 X , escribiremos en la ventana de instrucciones: predict(ModelLin) El resultado se muestra a continuación: J apón apón 12. 12. 01597 01597 Chi na 19. 19. 67207 67207
Gr eci a 13. 13. 23398 23398 I r l anda 12. 12. 53797 53797
URRSS 13. 13. 28618 28618 I ndi a 21. 21. 58609 58609
Pol oni a Yugosl Yugosl avi a 13. 13. 94739 94739 13. 13. 23398 23398 Mal asi a Fi l i pi nas 13. 13. 66899 66899 17. 17. 41004 41004
Fr anci a 11. 11. 85936 85936
Tai wan 12. 12. 53797 53797
Figura 97. Resultados del Análisis de regresión regresión lineal simple en R (IV). Valores Valores pronosticados
Se pueden guardar los valores pronosticados en una nueva variable que denominaremos “ajustados”, escribiendo en la ventana de instrucciones: ajustados = fitted(ModelLin). 7.5.d. Residuos
Se puede obtener los residuos definidos como el valor observado menos el valor teórico tecleando en la ventana de instrucciones: residuals(ModelLin) El resultado se muestra a continuación:
69
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban J apón apón Gr eci a URRSS Pol oni a Yugosl Yugosl avi a Fr anci a Tai wan - 2. 5459 545965 658 8 - 3. 5139 513982 820 0 - 3. 4861 486182 827 7 - 3. 1673 167391 915 5 - 1. 1139 113982 820 0 0. 2906 290636 363 3 0. 1020 102027 272 2 Chi na I r l anda I ndi a Mal asi a Fi l i pi nas - 6. 532067 5320678 8 1. 932027 9320272 2 0. 733906 7339068 8 9. 401012 4010122 2 7. 899962 8999624 4
Figura 98. Resultados del Análisis de regresión regresión lineal simple en R (V). Residuos
Frecuentemente necesitaremos guardar estos residuos como si fuera una nueva variable para comprobar hipótesis como la normalidad. Para ello escribiremos en la ventana de instrucciones: residuos =resid(ModelLin). Para comprobar que los residuos han sido almacenados tecleamos print(residuos) print(residuos).. 7.5.e. Gráficos
Para realizar gráficos bidimensionales se utilizará la instrucción plot, especificando las dos variables que se desean representar. Por ejemplo, para representar los valores pronosticados y los residuos, escribiremos en la ventana de instrucciones: ajustados = fitted(ModelLin) 0 1
residuos =residuals(ModelLin) plot(ajustados, plot(a justados, residuos) residuos)
5 s o u d i s e r 0
5 -
12
14
16
18 ajustados
Figura 99. Gráfico valores valores pronosticados pronosticados - residuos
Para obtener la representación de los valores originales:
20
70
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban
agric <-N -NacAgr$agricultura acAgr$agricultura nacim <-NacAgr$tasanacimiento 5 2
plot(agric, nacim)
0 2 m i c a n
5 1
0 1
10
20
30
40
50
60
agric
Figura 100. Gráfico valores valores originales originales
Si deseamos representar conjuntamente los datos originales con la línea de regresión escribiremos en la ventana de instrucciones: agric <-N -NacAgr$agricultura acAgr$agricultura nacim <-NacAgr$tasanacimiento plot(agric, nacim) abline(ModelLin)
5 2
0 2 m i c a n
5 1
0 1
10
20
30
40
50
60
agric
Para obtener ayuda sobre la funcionalidad del análisis de regresión lineal en R es posible teclear en la ventana de instrucciones: ?lm