P. 1
(9) R Manual Esp 004

(9) R Manual Esp 004

|Views: 7|Likes:
Publicado porJuan Rodríguez

More info:

Published by: Juan Rodríguez on Jun 05, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/14/2013

pdf

text

original

Sections

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 ASCII ........................................................................................................ 18
3.2. Importación de un fichero de SPSS ..................................................................................................... 25
3.3. Importación de ficheros EXCEL ......................................................................................................... 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 de resumen ......................................... 34
5. PRUEBAS DE NORMALIDAD ................................................................................................................ 36
5.1. Instalación de la librerí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 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 Pearson .............................................................................................................. 43
6.3. Coeficiente de correlación parcial de Pearson ..................................................................................... 44
6.4. Ejemplo de correlación lineal de Pearson ............................................................................................ 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É 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 específica para Windows x64 (Windows 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/, incluyendo enlaces para
bajar el programa y los códigos fuente de los paquetes. Hay bastantes espejos (“mirrors”)
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 paquetes recomendables en formato 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
Para instalar R en Windows seguiremos los siguientes pasos:
1.- Accederemos a http://cran.es.r-project.org/bin/windows/
2.- Seleccionaremos “base” en la ventana siguiente (o escribiremos: http://cran.es.r-
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 el fichero ejecutable R-2.10.1-win32.exe en el disco duro:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


7

Figura 3. Guardar programa R
5.- Cuando se haya descargado completamente, hacemos doble-click en el fichero R-
2.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. Instalación de R

Figura 5. Mensaje de advertencia en Windows Vista
6.- Seleccionamos el lenguaje de instalación y pulsamos 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
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 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 almacenar R
10.- Seleccionamos los componentes que desea instalar:

Figura 10. Selección de 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 que desea dar a R en el menú de inicio
13.- Seleccione algunos aspectos adicionales para trabajar con R:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


11

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 de instalación de R
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 por J ohn Fox que permite realizar análisis estadísticos sin 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 instalaremos RCommander desde 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
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 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
RCommander en ocasiones.
Opción I
1.- Nos aseguramons de que ha instalado RCommander siguiendo los pasos de la fase
2.b.anterior.
2.- En Rconsole escribimos:
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 acceso a Internet.
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ática de RCommander
Este procedimiento es adecuado si deseamos que RCommander aparezca
automáticamente 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
#.Library.site <- file.path(chartr(“\\”, “/”, R.home()), “site-library”)
#set a CRAN mirror
#local({r <- getOption(“repos”)
# r[”CRAN”] <- “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(defaultPackages =c(old, " Rcmdr"))
})
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 del idioma 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


IMPORTACIÓN 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. Importación de un fichero 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 fila contiene el nombre de las variables. En este caso, el delimitador que separa
las variables es un tabulador.
nombre Apellido1 Apellido2 Edad Calle Piso
J uan Martínez Olivera 43 Santa Clara, 5 6
María Fierro Menéndez 24 Camino Real, s/n 3
J esús Manuel Fernández Reguera 35 4
Ruth María Del Pino Del Río La Iglesia, 15 24


Para importar datos de un fichero de código ASCII seguiremos los siguientes pasos:
1.- Seleccionamos Datos\ Importar datos\ desde archivo de texto, portapapeles o URL…:

Figura 24. Importación de fichero 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


19

Figura 25. Importación de fichero ASCII en R (I)
3.- Buscamos el fichero que contiene la base en código ASCII que se desea importar:

Figura 26. Importación de fichero ASCII en R (II)
La ventana de RCommander cambiará:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


20

Figura 27. 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 de fichero 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 de fichero ASCII en R (VI)

Figura 30. 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 de datos 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


23
Arguments
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 UTF-
8 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 all of them unless colClasses is specified.
dec The character used in the file for decimal points.
row.names 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”. Otherwise there needs to be an as
method (from package methods) for conversion from “character” to the specified
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 Integer: the number of lines of the data file to skip before beginning to read data.
check.names 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 Logical: if TRUE blank lines in the input are ignored.
comment.char Character: a character vector of length one containing a single character or an
empty string. Use “” to turn off the interpretation of comments altogether.
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.
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 non-
blank 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 and 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 as.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 = “” 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.
See Also
The R Data Import/Export manual.
scan, type.convert, read.fwf for reading fixed width formatted input; write.table; data.frame.
count.fields can be useful to determine 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, 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/manuals/R-data.html, http://cran.r-project.org/doc/manuals/R-exts.pdf

3.2. Importación de un fichero de 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 de fichero SPSS 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 de fichero SPSS en R (II)
3.- Seleccionamos el fichero de SPSS

Figura 34. Importación de fichero SPSS en R (III)
4.- En la ventana de instrucciones aparecerá la instrucción equivalente a realizar los dos
pasos anteriores:
DataBase_2 <- read.spss(“I:/world95.sav”, use.value.labels=TRUE,
max.value.labels=Inf, to.data.frame=TRUE)
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 de fichero SPSS 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 de fichero SPSS 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
= FALSE, trim_values = TRUE, reencode = NA)
Arguments
file Character string: the name of the file to read.
use.value.labels Convert variables with value labels into R factors with those levels?
to.data.frame return a data frame?
max.value.labels 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.
trim.factor.names Logical: trim trailing spaces from factor levels?
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/software/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 non-
ASCII 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 integer)
in attribute “codepage” of the result if it looks like a Windows codepage.
Author(s)
Saikat DebRoy and the R Core team
Examples
## Not run: 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 Also
http://cran.r-project.org/doc/manuals/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/manuals/R-data.html, http://cran.r-project.org/doc/manuals/R-exts.pdf
3.3. Importación de ficheros 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 de fichero 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 de fichero 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 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 de fichero 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 de fichero 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 ODBC database, and retrieve the results.
Usage
sqlQuery(channel, query, errors = TRUE, ..., rows_at_time = 1)
sqlGetResults(channel, as.is = FALSE, errors = FALSE,
max = 0, buffsize = 1000,
nullstring = NA, na.strings = “NA”,
believeNRows = TRUE, dec = getOption(“dec”),
stringsAsFactors = default.stringsAsFactors())
Arguments
channel connection handle as returned by odbcConnect.
query any valid SQL statement
errors if TRUE halt and display error, else return -1
... additional arguments to be passed to sqlGetResults.
rows_at_time The number of rows to fetch at a time, up to 1024. Not all drivers work correctly
with values > 1. See Details.
as.is which (if any) character columns should be converted, as in read.table? See the
details.
max limit on the number of rows to fetch, with 0 indicating no limit.
buffsize 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 character string(s) to be mapped to NA when reading character data.
believeNRows 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.
dec The character for the decimal place to be assumed when converting character
columns to numeric.
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).
Author(s)
Michael Lapsley and Brian Ripley
See Also
odbcConnect, sqlFetch, sqlSave, sqlTables, odbcQuery
Examples
## Not run:
channel <- odbcConnect(“test”)
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, paste(“select State, Murder from USArrests”,
“where Rape > 30 order by Murder”))
close(channel)
## End(Not run)
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


33


ESTADÍSTICOS DESCRIPTIVOS

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ón de un resumen de la tabla de datos completa
Si deseamos obtener un resumen de todas las variables que se encuentran en la base de
datos activa, pulsaremos Estadísticos\Resúmenes\Conjunto de datos activos:


Figura 42. Resumen de la tabla de datos 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 (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 datos completa (III)
4.2. Selección una variable numérica y obtenció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 de 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 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 de variables (III)

La instrucción en R es:
numSummary(World_95[,”poblac”], statistics=c(“mean”, “sd”, “quantiles”),
quantiles=c(0,.25,.5,.75,1))
El resultado que se obtiene es:


Figura 48. Resumen de una selección de variables (IV)





Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


36


PRUEBAS 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.com/web/packages/nortest/index.html
- mvnormtest:
http://cran.rakanu.com/web/packages/mvnormtest/index.html
- normwn.test:
http://cran.rakanu.com/web/packages/normwn.test/index.html
5.1. Instalación de la librería “ nortest”
1.- Para instalar la librería “nortest”, accedemos a la dirección de Internet:
http://cran.rakanu.com/web/packages/nortest/index.html
Version: 1.0
Author: Juergen Gross
Maintainer: Juergen Gross <gross at 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.fr/library/nortest/html/
00Index.html
2.- Pulsamos “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 paquete 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
updating HTML package descriptions
Warning in file.create(f.tg) :
cannot create file ‘C:\PROGRA~1\R-2.10.1/doc/html/packages.html’, reason
‘Permission 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 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 texto:
ls:::menuInstallLocal()
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


38
package ‘nortest’ successfully unpacked and MD5 sums checked
updating HTML package descriptions
5.2. Test de Shapiro-Wilk de normalidad
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.- Pulsamos “Estadísticos\Resúmenes\Test de normalidad de Shapiro-Wilk”.

Figura 51. Test de normalidad de Shapiro-Wilk (I)
2.- Seleccionamos la variable “poblac” y pulse “Aceptar”:

Figura 52. Test de normalidad de 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 de 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-Darling test de normalidad
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 de Anderson-Darling
5.4. Cramer-von Mises test de normalidad
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 de Cramer-von Mises
5.5. Lilliefors (Kolmogorov-Smirnov) test de normalidad
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: lillie.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 56. Test de normalidad de Lilliefors
5.6. Shapiro-Francia test de normalidad
El test de Shapiro-Francia se encuentra en la librería “nortest”. Asegúrese de tener esta
librería 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$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 57. Test de normalidad de Shapiro-Francia
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


42


CORRELACIÓ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 gráfica
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 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 Pearson
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:
|
|
.
|

\
|
|
|
.
|

\
|

|
|
.
|

\
|
|
|
.
|

\
|

|
|
.
|

\
|
|
|
.
|

\
|

= =
∑ ∑ ∑ ∑
∑ ∑ ∑∑
= = = =
= = = =
q q p p Y X
XY
XY
n y n x n x n x
n y n x n y x
S S
S
r
1 j
2
1 j
.j j .j
2
j
1 i
2
1 i
i. i i.
2
i
q
1 j
.j j
p
1 i
i. i
p
1 i
q
1 j
ij j i
N N
N

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. Coeficiente de correlación parcial de Pearson
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:
) 1 )( 1 (
2 2
·
wy wx
wy wx xy
w xy
r r
r r r
r
− −

=
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:
) 1 )( 1 (
2
·
2
·
· · ·
·
w yz w xz
w yz w xz w xy
wz xy
r r
r r r
r
− −

=

6.4. Ejemplo de correlación lineal de Pearson
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
tasa de
nacimiento
%
agricultura
J apón 9,47 5
Grecia 9,72 12
URRSS 9,8 12,3
Polonia 10,78 16,1
Yugoslavia 12,12 12
Francia 12,15 4,1
Taiwan 12,64 8
China 13,14 49
Irlanda 14,47 8
India 22,32 60
Malasia 23,07 14,5
Filipinas 25,31 36
Figura 59. Tabla de datos fichero 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


45

Figura 60. Importación de datos en EXCEL (I)
Daremos el nombre “NacAgr” a la nueva base de datos:

Figura 61. Importación de datos en EXCEL (II)
Buscamos el fichero excel que queremos importar, seleccionándolo:

Figura 62. Importación de datos en EXCEL (III)
Esto es equivalente a escribir en la ventana de instrucciones:
names(NacAgr) <- make.names(names(NacAgr))
Se produce un aviso en la importación:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


46
AVISO: NacAgr contains non-standard variable names:
These have been changed 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. Edición de datos
Comprobamos que los nombres de las variables han cambiado:

Figura 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 de 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 de variable (II)
Repetimos el proceso para todas las variables:

Figura 68. Cambio de 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 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 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


49

Figura 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:

Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


50

Figura 73. Gráfico 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:
agricultura
t
a
s
a
n
a
c
i
m
i
e
n
t
o
1
0
1
5
2
0
2
5
10 20 30 40 50 60
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


51

Figura 75. Gráfico de dispersión (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:

Figura 76. Gráfico de dispersión (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).
10 20 30 40 50 60
1
0
1
5
2
0
2
5
agricultura
t
a
s
a
n
a
c
i
m
i
e
n
t
o
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


52

Figura 77. Gráfico de dispersión (IV)

El resultado se muestra a continuación:

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:
10 20 30 40 50 60
1
0
1
5
2
0
2
5
agricultura
t
a
s
a
n
a
c
i
m
i
e
n
t
o
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


53

Figura 79. Copiar gráfico al 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 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 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:

Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


54

Figura 82. Identificación de individuos en 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)
10 20 30 40 50 60
1
0
1
5
2
0
2
5
agricultura
t
a
s
a
n
a
c
i
m
ie
n
t
o
1
2
3
4
5
6
7
8
9
10
11
12
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


55

Figura 85. Identificación de individuos en 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 (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.



10 20 30 40 50 60
1
0
1
5
2
0
2
5
agricultura
t
a
s
a
n
a
c
i
m
i
e
n
t
o
J apón
Grecia
URRSS
Polonia
Yugoslavia
Francia
Taiwan
China
Irlanda
India
Malasia
Filipinas
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


56

Figura 87. Obtención de la matriz de 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=4)
rcorr.adjust(NacAgr[,c("agricultura","tasanacimiento")], type="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 t ur a t asanaci mi ent o
agr i cul t ur a 1. 00 0. 56
t asanaci mi ent o 0. 56 1. 00

n= 12

agr i cul t ur a t asanaci mi ent o
agr i cul t ur a 0. 0562
t asanaci mi ent o 0. 0562

Adj ust ed p- val ues ( Hol m' s met hod)
agr i cul t ur a t asanaci mi ent o
agr i cul t ur a 0. 0562
t asanaci mi ent o 0. 0562
Figura 88. Resultados del coeficiente de correlación lineal de Pearson
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


57


REGRESIÓN LINEAL SIMPLE

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:
n i x y
i i i
,..., 2 , 1 = + + = ε β α
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:
( )
¦
)
¦
`
¹
¦
¹
¦
´
¦

=
2
2
2
1
2
2
1
) (
i
e f
i
ε
σ
ε
ε
σ π
ε
Teniendo en cuenta que las perturbaciones son independientes entre sí, la función de
densidad conjunta de las n perturbaciones se define como el producto de las n funciones
de densidad:

=
¦
)
¦
`
¹
¦
¹
¦
´
¦


= =
=
n
i
n n
i
n
i
i
e f L
1
2
1
2
1
2
2
2
1
) (
ε
σ
ε
ε
σ π
ε
En la función de regresión lineal simple:
n i x y
i i i
,..., 2 , 1 = + + = ε β α
Se despeja el error: n i x y
i i i
,..., 2 , 1 = − − = β α ε
Sustituyendo el error en la función de densidad conjunta obtenemos:


=
¦
)
¦
`
¹
¦
¹
¦
´
¦
− − −

= =
=
n
i
x y
n n
i
n
i
i i
e f L
1
) (
2
1
2
1
2
2
2
1
) (
β α
σ
ε
ε
σ π
ε
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


58
Aplicando logaritmos neperianos a la función:
( ) ( )

=
¦
)
¦
`
¹
¦
¹
¦
´
¦
− − −


(
(
(
¸
(

¸


= =
=
n
i
x y
n
n
i
n
i
i i
e Ln f Ln L Ln
1
) (
2
1
2 /
2 2 /
1
2
2
2 ) (
β α
σ
ε
ε
σ π ε
∑ − − − − − =
=
n
i
i i
x y Ln
n
Ln
n
L Ln
1
2
2
2
) (
2
1
) (
2
) 2 (
2
β α
σ
σ π
ε
ε

Y derivando la expresión respecto de alfa, beta e igualando a cero se obtiene:
∑ = − − ∑ ⇒ = − − =


= =
n
i
i i
n
i
i i
x y x y
L Ln
1 1
2
0 ) ( 0 ) (
2
1
β α β α
σ
α
ε

∑ = − − ∑ ⇒ = − − =


= =
n
i
i i i
n
i
i i i
x x y x x y
L Ln
1 1
2
0 ) )( ( 0 ) )( (
2
1
β α β α
σ
β
ε

A partir de las dos ecuaciones normales anteriores y despejando en ellas se determinan
los valores de beta y alfa:
2
x
xy
S
S
= β , y x y β α − =
Derivando respecto a la varianza de las perturbaciones e igualando a cero:
( )
∑ = − − ∑ ⇒ = − − + − =


= =
n
i
i i
n
i
i i
x y x y
n n L Ln
1
2 2
1
2
2
2
2 2
) ( 0 ) (
2
2
ε
ε
ε ε
σ β α β α
σ
σ σ

Luego:
2 2
ˆ ) (
ε
σ β α n x y
i i
= − −
Por lo que ( ) ( )
∑ ∑
= =
= − − =
n
i
i
n
i
i i
e
n
x y
n
1
2
1
2 2
1 1
ˆ β α σ
ε

Pero este estimador es sesgado, sustituyéndose por ( )

=

=
n
i
i
e
n
1
2 2
2
1
ˆ
ε
σ
De esta forma, es posible construir la función de regresión lineal que relaciona las dos
variables: X Y β α + = .
7.1. Fases en el análisis de regresión lineal simple
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 relacionados con la variable independiente
4. Análisis relacionados con la variable dependiente. Valores pronosticados
5. Análisis de los residuos
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


59
6. Estadísticos de influencia, "leverage" o apalancamiento. Casos atípicos
7. Autocorrelación
A continuación desarrollaremos las tres primeras fases.
7.2. Análisis de las correlaciones
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 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 Suma de cuadrados gl Media cuadrática F Sig.
1
Regresión 35877,712 1 35877,712 63,840 ,000(a)
Residual 7305,888 13 561,991




Total 43183,600 14






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:
( )
2 '
2
1
Y N Y Y Y Y TOTAL SC
N
i
i
− = − =

=

Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


60
• La suma de cuadrados explicada por la regresión se define como
( )
2 '
2
1
ˆ ˆ
Y N Y Y Y Y SCRegr
N
i
i
− = − =

=
, o también como
2 2
) 1 (
y
S N R SCRegr − =
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 Varianza Desviación típ. N
Y 176,40 3084,543 55,54 15
X 66,60 310,4 17,62 15
Figura 90. Estadísticos descriptivos en el Análisis de Regresión
Por lo que la suma de los cuadrados explicada por la regresión será igual a:
7 , 35877 543 , 3084 ) 1 15 ( 830817 , 0 = − = SCRegr . Se considera que el modelo tiene un
grado de libertad, ya que hay una variable independiente en el mismo.

• La suma de cuadrados no explicada por la regresión se define como
( )
2
1
ˆ

=
− =
N
i
i i
Y Y SCErr , o bien,
2 2
) 1 )( 1 (
y
S N R SCErr − − = con N-1 grados de libertad.
Para el ejemplo de la tabla 886 , 7305 543 , 3084 ) 1 15 )( 830817 , 0 1 ( = − − = SCErr
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: gl SC = MC , 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:
7 , 35877
1
7 , 35877
= = MCRegr y 991 , 561
13
888 , 7305
= = MCErr

• F de Snedecor-Fisher
La F de Snedecor se define como el cociente entre MC regresión y la MC residuos:

Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


61
) 1 1 , 1 ( ~
2) - (N (errores)/ residual Cuadrados Suma
)/1 (explicada regresión Cuadrados Suma
MCErr
MCRegr
F − − = = N F


) 1 1 15 , 1 ( ~ 840 , 63
13 / 7305,888
)/1 (explicada regresión Cuadrados Suma
561,991
35877,12
F − − = = = F

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 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:
2
y
2

2
S
S
= R o bien:
total cuadrados de Suma
regresión la por explicada cuadrados de Suma
2
= R
Esta expresión es equivalente para el caso lineal a definir el coeficiente de determinación
como:
TOTAL SC
SCErr
1
2
− = R

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:
830817 , 0
543 , 3084
694 , 2562
S
S
2
y
2

2
= = = R o bien como:
830817 , 0
6 , 43183
712 , 35877
total cuadrados de Suma
regresión la por explicada cuadrados de Suma
2
= = = R
830818 , 0
43183,6
7305,888
1
TOTAL SC
SCErr
1
2
= − = − = R

Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


62

• R
2
ajustada o corregida
Se define la R cuadrado ajustada, también denominada como corregida:

1
) 1 (
2
2 2
− −

− =
p N
R p
R ajustada R
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 R
2
, 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:
818 , 0
1 1 15
) 831 , 0 1 ( 1
831 , 0
1
) 1 (
2
2 2
=
− −

− =
− −

− =
p N
R p
R ajustada R
• El error estándar de la predicción, también denominado error típico, se define como:
ajustada R Sy Estándar Error
2
1− =
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á:
71 , 23 818 , 0 * 1
2
= = − Sy ajustada R Sy ; siendo S
y
=55,54
7.4. Análisis relacionados con la variable 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 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,965 +2,873 X
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


63
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:
2
1
x
S
Sxy
B = y la constante X B Y B
1 0
− =
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:
( )
2
1
X
B
S p N −
=
σ
σ , siendo
2
X
S la varianza de la variable independiente y la desviación
típica poblacional que se estima a partir de:
( )
Error del Cuadrática Media
1 1
ˆ
2
1
1 0
=
− −
=
− −
− −
=

=
p N
SCError
p N
x B B y
N
i
i i
σ
Teniendo en cuenta que en el caso de regresión lineal simple el número de variables
independientes (p) es igual a uno, las expresiones quedarían:
( )
2
1
1
X
B
S N −
=
σ
σ
, y
( )
Error del Cuadrática Media
2 2
ˆ
2
1
1 0
=

=

− −
=

=
N
SCError
N
x B B y
N
i
i i
σ
En nuestro ejemplo
( )
991 , 561
13
888 , 7305
2 1
ˆ
2
1
1 0
2
= =

=
− −
− −
=

=
N
SCError
p N
x B B y
N
i
i i
σ

( )
360 , 0
62 , 17 1 15
991 , 561
2
1
=

=
B
σ

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:

Sy
Sx
B BETA
i
i i
=

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:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


64
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:
11 9 , 0
54 , 55
62 , 17
873 , 2
1 1
= = =
Sy
Sx
B BETA

• El valor de t de Student
Se obtiene con el cociente entre Bi y el error estándar de Bi de la siguiente forma:
i
i
i
SEB
B
t =

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:
CAMBIO F Student de t
i i
=

• Intervalo de confianza
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:

p N B
t B

±
, 025 . 0 1 1
· ˆ σ
En nuestro ejemplo, 160 , 2
13 , 025 . 0
= t , luego
096 , 2 160 , 2 · 360 , 0 873 , 2 · ˆ
, 025 . 0 1 1
= − = −
− p N B
t B σ
650 , 3 160 , 2 · 360 , 0 873 , 2 · ˆ
1 , 025 . 0 1 1
= + = +
− − p N B
t B σ
36 , 68 160 , 2 · 720 , 24 965 , 14 · ˆ
2 , 025 . 0 0 0
− = − − = −
− N B
t B σ

43 , 38 160 , 2 · 720 , 24 965 , 14 · ˆ
2 , 025 . 0 0 0
= + − = +
− N B
t B σ
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 B
1
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álisis de los signos
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 análisis de regresión lineal simple 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
X Y β α + = , 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 lineal 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 de regresión lineal 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). 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 x y β α + = se definiría como 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


67
Resi dual s:
Mi n 1Q Medi an 3Q Max
- 6. 532 - 3. 247 - 0. 506 1. 033 9. 401

Coef f i ci ent s:
Est i mat e St d. Er r or t val ue Pr ( >| t | )
( I nt er cept ) 11. 14595 2. 12960 5. 234 0. 000382 ***
agr i cul t ur a 0. 17400 0. 08061 2. 159 0. 056242 .
- - -
Si gni f . codes: 0 ' ***' 0. 001 ' **' 0. 01 ' *' 0. 05 ' . ' 0. 1 ' ' 1

Resi dual st andar d er r or : 4. 9 on 10 degr ees of f r eedom
Mul t i pl e R- squar ed: 0. 3179, Adj ust ed R- squar ed: 0. 2496
F- st at i st i c: 4. 66 on 1 and 10 DF, p- val ue: 0. 05624
Resul t ados del anál i si s de r egr esi ón l i neal si mpl e en R ( I )
Figura 93. Resultados del Análisis de regresión lineal simple en R (I). Bondad 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 Tabl e
Response: t asanaci mi ent o
Df SumSq Mean Sq F val ue Pr ( >F)
agr i cul t ur a 1 111. 87 111. 867 4. 6596 0. 05624 .
Resi dual s 10 240. 08 24. 008
- - -
Si gni f . codes: 0 ' ***' 0. 001 ' **' 0. 01 ' *' 0. 05 ' . ' 0. 1 ' ' 1
Figura 94. Resultados del Análisis de regresión lineal simple en R (II). Bondad global del modelo
7.5.b. Análisis relacionados con la variable independiente
La función de regresión lineal simple X Y β α + = , siendo Y la tasa de nacimiento y X la
agricultura puede escribirse utilizando los coeficientes obtenidos como:
X Y 174 . 0 14595 . 11 + =
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


68
Coef f i ci ent s:
Est i mat e St d. Er r or t val ue Pr ( >| t | )
( I nt er cept ) 11. 14595 2. 12960 5. 234 0. 000382 ***
agr i cul t ur a 0. 17400 0. 08061 2. 159 0. 056242 .
- - -
Si gni f . codes: 0 ' ***' 0. 001 ' **' 0. 01 ' *' 0. 05 ' . ' 0. 1 ' ' 1
Figura 95. Resultados del análisis de regresión lineal simple en R (III). Variable independiente
R nos muestra el error típico de los coeficientes
i
SEB , así como el valor de la t de Student
i i i
SEB B t = . 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 H
0
: β = 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 nt er cept ) 6. 400913680 15. 8909948
agr i cul t ur a - 0. 005604835 0. 3536095
Figura 96. Resultados del Análisis de regresión lineal simple en R (III). Intervalos de confianza coeficientes
7.5.c. Valores pronosticados
Para obtener los valores pronosticados de la función obtenida X Y 174 . 0 14595 . 11 + = ,
escribiremos en la ventana de instrucciones:
predict(ModelLin)
El resultado se muestra a continuación:
J apón Gr eci a URRSS Pol oni a Yugosl avi a Fr anci a Tai wan
12. 01597 13. 23398 13. 28618 13. 94739 13. 23398 11. 85936 12. 53797
Chi na I r l anda I ndi a Mal asi a Fi l i pi nas
19. 67207 12. 53797 21. 58609 13. 66899 17. 41004
Figura 97. Resultados del Análisis de regresión lineal simple en R (IV). 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:
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


69
J apón Gr eci a URRSS Pol oni a Yugosl avi a Fr anci a Tai wan
- 2. 5459658 - 3. 5139820 - 3. 4861827 - 3. 1673915 - 1. 1139820 0. 2906363 0. 1020272
Chi na I r l anda I ndi a Mal asi a Fi l i pi nas
- 6. 5320678 1. 9320272 0. 7339068 9. 4010122 7. 8999624
Figura 98. Resultados del Análisis de 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).
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)
residuos =residuals(ModelLin)
plot(ajustados, residuos)



Figura 99. Gráfico valores pronosticados - residuos
Para obtener la representación de los valores originales:
12 14 16 18 20
-
5
0
5
1
0
ajustados
r
e
s
i
d
u
o
s
Manual de Lenguaje R (I). Enero 2012. Ramón Álvarez Esteban


70
agric <-NacAgr$agricultura
nacim <-NacAgr$tasanacimiento
plot(agric, nacim)

Figura 100. Gráfico valores originales
Si deseamos representar conjuntamente los datos originales con la línea de regresión
escribiremos en la ventana de instrucciones:
agric <-NacAgr$agricultura
nacim <-NacAgr$tasanacimiento
plot(agric, nacim)
abline(ModelLin)


Para obtener ayuda sobre la funcionalidad del análisis de regresión lineal en R es posible
teclear en la ventana de instrucciones:
?lm


10 20 30 40 50 60
1
0
1
5
2
0
2
5
agric
n
a
c
i
m
10 20 30 40 50 60
1
0
1
5
2
0
2
5
agric
n
a
c
i
m

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->