Академический Документы
Профессиональный Документы
Культура Документы
http://www.r-project.org/
Gustavo Adolfo Ovalles Rodrguez
Departamento de Matemticas y Estadstica - Universidad Francisco de Paula Santander
1. INTRODUCCIN
R se distribuye en forma gratuita bajo licencia GNU General Public Licence. El desarrollo de este
lenguaje est a cargo de un equipo de trabajo conocido como R Development Core Team. Los
archivos necesarios para instalar R se descargan desde los sitios CRAN (Comprehensive R Archive
Network) de internet. En Colombia, se puede descargar directamente desde
https://www.icesi.edu.co/CRAN/.
Al igual que S, R es un lenguaje orientado a objetos. Debe aclararse que R es un lenguaje interpretado
y no compilado, esto significa que los comandos introducidos con el teclado se ejecutan directamente
sin necesidad de construir ejecutables. R considera como objetos las variables, datos, funciones,
resultados, etc., y los almacena en la memoria activa del computador. Estos objetos pueden ser
manipulados por medio de operadores y funciones.
Las funciones estn disponibles en una librera localizada en el directorio donde R est almacenado.
Esta librera est conformada por una serie de paquetes (packages) de funciones que pueden ser
utilizados de acuerdo a las necesidades del usuario. Por ejemplo, el paquete base es el ncleo de R y
contiene las funciones bsicas de lectura y manipulacin de datos, as como funciones grficas y
estadsticas bsicas. Existe una gran cantidad de paquetes disponibles en la red a los que se puede
acceder fcilmente ( http://www.cran.r-project.org).
2. Una de sus mayores fortalezas es la capacidad para generar grficas en dos y tres dimensiones,
desde las ms simples hasta las ms sofisticadas
3. Es un entorno de programacin flexible que permite al usuario crear sus propias funciones
5. R fue desarrollado bajo la filosofa del software libre. La tica del software libre propugna por el
derecho al libre acceso al conocimiento. Por tal razn, el usuario tiene la libertad de usar, copiar y
distribuir el programa. Tambin puede acceder al cdigo fuente, realizar modificaciones y compartir
esos cambios con la comunidad de usuarios del programa
2. MANEJO DE DATOS
Una vez ejecutado el programa aparece la consola de trabajo. El prompt de R es el signo > que indica
que el programa est listo para recibir comandos.
El objeto ms sencillo que se puede crear en R es un vector, una coleccin ordenada de nmeros. Por
ejemplo, para crear el vector x conformado por los elementos 2, 5, 7, 14 se utiliza la orden
En este caso se ha realizado una operacin de asignacin denotada por el smbolo <-. La funcin c ( )
genera el vector x.
Los nombres de los objetos deben comenzar con una letra y pueden incluir nmeros y puntos. El
lenguaje R diferencia entre maysculas y minsculas.
Es posible escribir simplemente una expresin, en este caso el programa realiza la operacin pero no
guarda el resultado
Se pueden generar diversos objetos en una misma lnea separndolos mediante punto y coma
La coleccin de objetos creados durante una sesin de trabajo se conoce como el espacio de trabajo
(workspace). Se puede visualizar mediante la orden objects ( )
Para finalizar una sesin de trabajo y salir del programa se utiliza la orden q( )
Al guardar el espacio de trabajo, todos los objetos creados durante la sesin se almacenan en un
archivo tipo R Workspace, en el directorio de trabajo predeterminado creado por el programa. Si se
ejecuta de nuevo el programa, todos los objetos almacenados son cargados de nuevo a la consola de
trabajo de R.
Archivo----Guardar en Archivo permite guardar en un archivo tipo texto (.txt), todo el trabajo
realizado en la ventana o consola del programa. Cuando se vuelva a ejecutar el programa este archivo
puede abrirse mediante Archivo----Mostrar archivo.
Se recomienda utilizar un directorio de trabajo distinto para cada sesin de anlisis en R, con el fin de
evitar confusiones al usar objetos con el mismo nombre.
Se puede solicitar informacin sobre una funcin en particular mediante la orden help( )
Aparece una nueva ventana con suficiente informacin sobre la funcin solicitada incluyendo
ejemplos.
Las cuatro operaciones aritmticas bsicas estn dadas por los signos + - * /. La operacin de
potenciacin est indicada por ^. Cualquier vector numrico puede ser sometido a estas operaciones.
Dos vectores con longitudes diferentes pueden sumarse siempre y cuando sus longitudes sean
mltiplos entre s. El vector menor es repetido hasta completar la longitud del vector mayor:
IGUAL ==
DIFERENTE !=
MAYOR >
MAYOR O IGUAL >=
MENOR <
MENOR O IGUAL <=
Todo objeto en R tiene dos atributos intrnsecos: modo y longitud. El modo de un objeto se refiere a la
clase del mismo y puede ser de 4 formas: numrico, complejo, lgico y carcter.
La longitud de un objeto se refiere al nmero de elementos que contiene. Se puede apreciar mediante
la funcin length:
2.6 GENERACIN DE SECUENCIAS DE DATOS
El operador : permite generar vectores numricos con nmeros separados una unidad:
> seq(0,1,length=10)
La funcin sequence crea secuencias de nmeros enteros desde 1 hasta los enteros especificados como
argumentos:
La funcin gl genera series regulares de factores, donde cada factor se puede replicar un nmero
determinado de veces:
Esta funcin tiene dos opciones: length que indica el nmero de datos y labels que permite dar
nombres a los factores:
La funcin expand.grid recibe como argumentos vectores y construye una tabla de datos con todas las
combinaciones posibles de sus elementos:
Adems de los vectores existen otros tipos de objetos en R: matrices, factores, listas, hojas de datos
(data frame) y funciones.
MATRICES
Por defecto las matrices se forman por columnas; el argumento byrow=TRUE permite formarlas por
renglones:
La funcin array permite crear colecciones de datos numricos al dimensionar un vector:
En los dos ejemplos anteriores y se convierte en una variable indexada. Por lo tanto, se puede concluir
que una matriz es una variable indexada con dos ndices.
Se pueden construir matrices mediante la anexin de filas o columnas utilizando las funciones rbind y
cbind respectivamente. Si se utiliza rbind, las matrices deben tener igual nmero de columnas; para
utilizar cbind deben tener igual nmero de filas.
R contiene un gran nmero de funciones para realizar operaciones con matrices. A continuacin
algunos ejemplos:
Los valores propios de la matriz son 2 y 1. Las dos primeras columnas de la matriz contienen los
vectores propios correspondientes a 2 y la ltima el vector propio correspondiente a 1.
FACTORES
Son objetos que estn conformados por datos categricos que pertenecen a un vector de caracteres. Se
crean utilizando la funcin factor.
LISTAS
Son colecciones ordenadas de objetos que pueden tener diferente modo (numrico, lgico, carcter,
complejo, matriz, .). Se generan utilizando la funcin list.
HOJAS DE DATOS (DATA FRAME)
Son tablas cuyas columnas estn conformadas por variables (vectores o factores) que deben tener la
misma longitud pero pueden tener diferentes modos. Se crean utilizando la funcin data.frame.
Una forma ms sencilla de crear el data frame es haciendo uso del editor de datos
Una forma ms prctica de manejar las hojas de datos (data frame) es importarlas desde otros
programas como por ejemplo cuando se trabaja con la hoja de clculo EXCEL. En este caso, el archivo
que contiene la base de datos debe guardarse con extensin .csv.
> data<-read.delim("clipboard",header=T,dec=",",check.names=T)
> data
> attach(data)
El programa R incluye bases de datos (datasets) que se encuentran en el paquete datasets. Estas
bases de datos estn almacenadas como data frames. Un listado de las bases de datos se puede
apreciar mediante la orden
Para manipular las variables de un dataset se hace necesario conectar la base de datos a la
trayectoria de bsqueda de R. Esto se hace posible mediante la funcin attach:
Esta orden coloca la base de datos en la segunda posicin de la trayectoria de bsqueda permitiendo
acceder a las variables. Por ejemplo, se pueden listar los valores de la variable age
> age
[1] 118 484 664 1004 1231 1372 1582 118 484 664 1004 1231 1372 1582 118
484 664 1004 1231 1372 1582 118 484 664 1004 1231 1372 1582 118 484
La trayectoria de bsqueda designa el orden seguido por R para buscar los objetos. Para observar la
trayectoria de bsqueda (search path) se usa la orden search
> search()
Se observa que Orange ocupa el segundo lugar en la trayectoria de bsqueda. GlobalEnv (la
primera posicin) corresponde al workspace y las dems posiciones estn ocupadas por paquetes
(packages) que contienen las funciones utilizadas en la sesin de trabajo de R. Por ejemplo, el paquete
base contiene las funciones bsicas de lectura y manipulacin de datos, as como funciones grficas y
estadsticas bsicas.
Para desconectar un objeto se utiliza la funcin detach. Sin embargo, al finalizar la sesin de trabajo, R
desconecta todos los objetos agregados a la trayectoria de bsqueda (search path).
3. GRFICOS
Los grficos realizados en R se visualizan en un dispositivo o ventana grfica. Para realizar un grfico
cualquiera deben utilizarse las funciones grficas de alto nivel y para realizar los cambios deseados
se utilizan las funciones grficas de bajo nivel. Adicionalmente existen diversos parmetros que
permiten mejorar notablemente las grficas obtenidas.
Una ventana grfica consiste de una zona grfica rodeada por cuatro mrgenes (bottom-left-top-right).
Los ttulos de los ejes y del grfico se ubicarn sobre los mrgenes.
Las tcnicas grficas para realizar el anlisis exploratorio de datos univariados incluyen el trazado del
histograma, diagrama de caja, curva de densidad y el grfico de quantiles normales. Para ilustrar estas
tcnicas se utiliza la base de datos airquality que contiene informacin acerca del aire de New York:
> data(airquality)
> airquality #muestra la base de datos
> attach(airquality)
Permite ubicar la base de datos como un objeto en el segundo lugar de la trayectoria de bsqueda.
> par(mfrow=c(2,2))
Divide la zona grfica en una matriz de 2 filas y 2 columnas. Las grficas se crean sucesivamente en
las filas. El anlisis se realiza para el vector Temp, que contiene los datos de temperatura del aire de
New York durante el perodo comprendido entre Mayo y Septiembre.
> summary(Temp)
Min. 1st Qu. Median Mean 3rd Qu. Max.
56.00 72.00 79.00 77.88 85.00 97.00
Los argumentos de la funcin hist pueden modificarse para obtener distintos histogramas de la
variable temperatura:
> par(mfrow=c(1,1))
> hist(Temp,xlab="Temperatura",main="Histograma",breaks=seq(50,100,5),col="red)
> hist(Temp,xlab="Temperatura",main="Histograma",freq=FALSE,col="red")
Se pueden realizar grficos comparativos de la variable Temperatura para los distintos meses. Se
deben seleccionar los elementos correspondientes del vector mediante la operacin de indexacin:
Temp[1:31] selecciona los valores de temperatura correspondientes al mes de mayo; los elementos de
los meses siguientes se obtienen en forma consecutiva.
En una misma grfica se obtienen los diagramas de caja correspondientes a cada mes, desde Mayo
hasta Septiembre.
Una de las grficas ms conocidas y utilizadas para el anlisis de datos bivariados es el diagrama de
dispersin (scatterplot). Se ilustra la construccin de este diagrama utilizando de nuevo la base de
datos airquality. Se consideran los vectores viento (Wind) y temperatura (Temp).
Wind[1:61] y Temp[1:61] seleccionan los valores correspondientes a los meses de Mayo y Junio.
90
80
Temperatura
70
60
5 10 15 20
Puede modificarse el diagrama para poder apreciar la informacin correspondiente a cada mes
mediante la adicin de puntos y texto:
El argumento type=n no permite que se dibujen los puntos. Estos se agregan a continuacin
utilizando la funcin point:
> points(Wind[1:31],Temp[1:31],col="blue",pch=16)
> points(Wind[32:61],Temp[32:61],col="red",pch=16)
Los puntos correspondientes al mes Mayo se dibujan de color azul y los puntos del mes Junio se
dibujan de color rojo. El argumento pch permite seleccionar el tipo de smbolo utilizado para dibujar
el punto y puede ser un entero entre 1 y 25. El valor pch=16 es un buen estndar para los scatterplots.
> legend("topleft",c("Mayo","Junio"),col=c("blue","red",pch=16,bty="n"))
La opcin topleft indica que la leyenda se ubica en la esquina superior izquierda; del mismo modo
se hubiera podido elegir topright, top, bottom, etc. La opcin bty=n no permite que la
leyenda se encierre en un recuadro.
Se pueden agregar lneas al diagrama de dispersin mediante el uso de la funcin abline. Es
particularmente til para visualizar la recta de regresin de mnimos cuadrados. Se ilustra con los
datos correspondientes al mes de Mayo:
Los valores de velocidad del viento y temperatura se asignan a los vectores x y y respectivamente.
La funcin lm ajusta el modelo de regresin lineal de la variable respuesta y con respecto a la variable
predictora x. Finalmente abline traza la lnea recta de acuerdo a los coeficientes estimados en la
regresin.
3.3 DATOS CATEGRICOS
Dentro de las tcnicas grficas que permiten representar datos cualitativos se encuentran el grfico de
puntos, el grfico de barras y el diagrama circular.
Ejemplo: Una compaa envasa un producto y utiliza tres lneas de produccin diferentes. Se
detectaron 5 tipos de incongruencias o defectos en las latas utilizadas para el envasado. Una muestra
tomada de cada lnea de produccin permite obtener los siguientes resultados:
A 34 65 17 21 13
B 23 52 25 19 6
C 32 28 16 14 10
Se crean primero dos vectores de caracteres que contienen las categoras de las filas y columnas:
Ahora se puede realizar un grfico de puntos para apreciar los defectos por cada una de las lneas de
produccin utilizando la funcin dotchart:
La informacin se presenta agrupada por tipo de defecto para cada lnea de produccin. Esto se
obtiene con el argumento labels=defecto
Puede obtenerse otro grfico donde se presente la informacin agrupada por lnea de produccin:
matrixdef [,1:5] grafica los valores de las columnas 1 hasta la 5 para todas las filas;
legend inserta un vector de texto que permite identificar los defectos observados; bottomright ubica
el vector en el extremo inferior derecho; bty=n no encierra la leyenda en un recuadro.
Para obtener los grficos de barras correspondientes se utiliza la funcin barplot:
beside=T: toma los valores de cada columna y los yuxtapone formando las barras del grfico;
names.arg: un vector que contiene los nombres que se colocan debajo de cada grupo de barras;
legend.text: un vector de texto que contiene los nombres de las filas de la matriz y que permite
identificar cada una de las barras individuales;
manchas
fisura
60
ubicacin
falta
otro
50
FRECUENCIAS
40
30
20
10
0
A B C
LINEAS DE PRODUCCIN
Con los valores marginales de la tabla se pueden construir grficos adicionales. Primero se crean dos
vectores numricos con los totales de filas y columnas:
La opcin space=0 dibuja las barras unidas, ylim=c(0,160) establece los lmites para los valores del eje
vertical.
ANLISIS ESCALA LIKERT CRISTINA VILLA
>barplot(matrixdef,beside=T,names.arg=escala,col=c("red","blue"),ylab="Frecuencia
Porcentual",main="GRFICO COMPARATIVO",ylim=c(0,40))
4. DISTRIBUCIONES DE PROBABILIDAD
Existe un amplio nmero de distribuciones de probabilidad que pueden ser utilizadas para el clculo
de funciones de distribucin, funciones de probabilidad acumulada, percentiles y en la simulacin de
valores de cada distribucin. En la siguiente tabla se presentan los nombres de las distribuciones de
probabilidad ms importantes que pueden ser utilizadas en R:
Ejemplos:
Se pueden dibujar las distribuciones de probabilidad de variables aleatorias discretas y continuas. Por
ejemplo, para un experimento binomial con 5 ensayos y probabilidades de xito 0.1, 0.5 y 0.9:
> y<-dbinom(x,size=5,prob=0.1)
> z<-dbinom(x,size=5,prob=0.5)
> w<-dbinom(x,size=5,prob=0.9)
> par(mfrow=c(1,3))
>plot(x,y,type="h",lwd=30,lend="square",col=red,main="Probabilidades
binomiales,n=5,p=0.1",ylab="f(x)")
>plot(x,z,type="h",lwd=30,lend="square",col=red,main="Probabilidades
binomiales,n=5,p=0.5",ylab="f(x)")
>plot(x,w,type="h",lwd=30,lend="square",col=red,main="Probabilidades
binomiales,n=5,p=0.9",ylab="f(x)")
La grfica es obtenida mediante la funcin plot y utilizando los argumentos type, lwd y lend.
Para dibujar las funciones de densidad de variables aleatorias continuas se utiliza la funcin curve ( ):
> curve(dnorm(x,mean=3,sd=.5),from=1.5,to=4.5)
En este caso dibuja la funcin de densidad de una distribucin normal de media 3 y desviacin
estndar 0.5 en el intervalo [1.5, 4.5].
> curve(pnorm(x,mean=3,sd=.5),from=1.5,to=4.5)
> x=runif(100,1,2)
> curve(dunif(x,1,2),add=T)
Para una distribucin normal:
> curve(dnorm(x,mean=3,sd=0.5),add=T)
> curve(dnorm(x,mean=0,sd=1),add=T)
4.3 MUESTREO
Mediante R se pueden generar procesos de muestreo con o sin reemplazo. La funcin que se debe
utilizar es sample ( ).
Ejemplos:
[1] 3 3 4 2 1 5 5 5
> ensayo
[1] 2 3 1 4 3 2 2 1 3 2 2 4 5 6 3 2 3 6 3 2 2 2 4 5 6 5 5 1 2 2 3 5 1 1 3 1 4 6 5 1 5 2 4
5 4 3 3 5 1 1 4 6 6 6 6 5 4 4 4 5 1 1 3 1 3 5 2 1 4 6 4 6 6 3 1 4 4 3 2 5
[81] 6 6 6 5 5 3 3 6 1 2 1 5 2 1 2 5 2 3 5 6 3 6 6 6 5 2 1 2 2 6 4 1 5 4 2 5 2 5 1 4 1 6 5
4 2 5 5 4 4 1 5 3 4 1 1 3 4 4 1 1 1 5 2 5 5 2 5 4 2 4 5 2 4 5 2 4 3 1 3 4
[161] 4 1 4 3 1 1 5 6 4 5 4 2 3 1 2 2 5 3 4 6 2 4 5 1 1 1 1 5 6 6 6 3 6 2 6 4 5 2 1 1 2 4 1
5 4 4 6 4 1 2 1 5 3 4 5 1 6 3 6 3 2 6 4 2 2 3 6 1 6 6 6 5 4 3 1 3 2 4 4 6
[241] 4 4 2 4 4 6 1 5 3 6 4 2 2 3 4 4 3 3 6 1 1 3 5 3 4 2 2 6 1 4 1 4 1 5 5 1 6 4 2 5 3 3 4
3 3 5 2 6 1 6 5 1 1 1 1 1 1 2 6 6 2 2 4 4 2 5 6 2 2 3 6 5 6 1 2 4 3 6 2 2
[321] 5 5 4 4 1 1 1 3 5 1 1 5 2 3 5 1 1 5 1 1 5 6 6 6 6 6 1 2 5 4 2 2 1 6 3 3 2 2 1 1 4 6 1
3 1 4 3 4 4 4 4 4 2 6 3 3 2 1 6 4 3 6 5 1 5 6 1 1 1 6 2 3 2 2 6 1 2 3 6 3
[401] 4 2 3 2 1 1 4 6 5 4 6 2 3 4 1 2 5 1 1 4 6 5 5 1 5 6 2 5 1 2 4 2 4 6 1 4 4 3 6 3 4 5 6
6 2 6 4 6 4 1 1 5 5 6 1 6 5 3 2 6 6 5 6 5 5 2 6 1 5 3 2 1 1 3 5 6 4 5 4 6
[481] 1 5 1 2 5 5 2 6 3 6 6 1 4 5 2 6 6 1 6 6 1 3 6 4 4 5 5 1 6 1 4 3 5 2 2 2 6 3 4 2 4 4 2
3 6 1 5 3 3 1 2 4 2 6 3 3 3 1 1 3 6 2 2 3 2 4 4 1 2 3 5 1 6 1 3 5 3 5 3 6
[561] 6 2 4 2 1 6 3 4 6 5 4 5 6 4 3 3 3 1 6 1 5 1 5 2 1 4 1 5 3 2 3 3 1 3 3 5 3 3 2 6 1 6 5
4 2 3 5 2 4 1 3 2 5 2 1 5 2 5 2 3 2 4 4 1 2 1 6 3 2 3 2 3 5 3 6 1 2 4 2 5
[641] 5 6 1 2 4 3 6 1 3 4 3 3 3 2 5 4 4 1 1 3 4 5 5 5 5 1 3 5 5 4 6 6 6 3 6 4 1 4 2 6 4 2 1
2 4 1 5 6 2 3 4 5 4 1 4 5 4 5 4 4 2 3 6 5 5 4 3 1 3 4 5 1 2 6 3 2 3 3 3 5
[721] 5 3 5 1 3 6 6 3 6 1 3 1 1 6 3 5 3 4 1 1 6 5 5 1 5 3 2 4 5 1 4 3 6 3 2 3 6 4 1 4 4 5 2
3 2 5 5 3 6 6 1 6 1 2 5 5 2 6 3 6 4 2 2 3 5 3 1 1 1 1 5 4 4 2 1 1 5 5 3 5
[801] 5 3 6 4 4 5 5 6 3 1 4 4 5 1 3 4 3 4 2 4 2 4 1 6 6 5 5 2 3 5 2 3 6 5 5 5 5 5 2 2 1 5 5
3 1 6 3 1 6 2 2 1 3 1 5 4 4 4 1 1 2 3 5 3 2 2 3 4 4 4 6 4 1 6 6 5 6 2 5 6
[881] 1 6 1 2 1 2 4 3 1 2 1 2 1 2 4 6 5 3 5 1 4 4 4 1 2 2 3 2 3 4 1 6 6 4 3 3 3 6 6 3 5 4 6
1 6 1 3 1 5 5 2 6 5 4 5 1 1 4 4 1 2 4 6 5 5 6 2 1 5 5 1 2 3 4 6 5 2 6 6 5
[961] 4 5 1 5 2 6 6 6 6 2 4 1 6 3 4 2 3 3 1 5 4 5 1 5 1 5 5 4 1 6 6 1 5 3 1 1 5 6 6 4
> frecuencia<-table(ensayo)
> frecuencia
ensayo
1 2 3 4 5 6
[1] 6 4 2 1 6 1 6 6
[1] 19 43 15 44 23 45
Ejemplo: Aproximacin del valor del nmero a partir del muestreo de una distribucin uniforme
El rea del cuadrado es 4 y el rea del crculo unitario es . Se generan puntos al azar dentro del
cuadrado provenientes de una distribucin uniforme. La probabilidad de que un punto se encuentre
dentro del crculo es p / 4 . Si n es el total de puntos generados y s es el nmero de puntos que se
encuentran dentro del crculo, entonces p s / n de acuerdo al mtodo Montecarlo. Por lo tanto, la
estimacin del nmero estar dada por 4s / n .
+ n <- n + 1
+ }
> piestimado
[1] 3.140594
> n
[1] 5050
Para realizar un nmero mayor de estimaciones se almacenan los valores estimados en el vector w y el
nmero de puntos generados en el vector z:
> w<-vector()
> z<-vector()
+ eps<-1;s<-0;n<-0
+ n <- n + 1
+ }
+ w[i]=piestimado
+ z[i]<-n
+ }
> w
[1] 3.140940 3.140693 3.141274 3.141463 3.142232 3.141593 3.140845 3.141700 3.140601
3.141361
> z
[1] 149 3696 1444 205 457 452 284 247 11906 191
5. MTODOS ESTADSTICOS
Ejemplo 1: Se consideran los datos correspondientes al ingreso familiar semanal (dlares) y el gasto de
consumo semanal (dlares):
INGRESO GASTO
80 70
100 65
120 90
140 95
160 110
180 115
200 120
220 140
240 155
260 150
> data<-read.delim("clipboard",header=T,dec=",",check.names=T)
> attach(data)
Se dibuja el grfico de dispersin para tener una aproximacin al modelo funcional de regresin:
> plot(INGRESO,GASTO)
> abline(lm(GASTO~INGRESO))
El modelo lineal parece ser una buena aproximacin. A continuacin se construye el modelo de
regresin utilizando la funcin lm ( ):
> fit<-lm(GASTO~INGRESO)
> summary(fit)
Call:
Residuals:
Min 1Q Median 3Q Max
-10.364 -4.977 1.409 4.364 8.364
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 24.45455 6.41382 3.813 0.00514 **
INGRESO 0.50909 0.03574 14.243 5.75e-07 ***
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Se aprecia que tanto los coeficientes como el modelo de regresin son significativos. Adems el
coeficiente de determinacin (R2) explica aproximadamente el 96% de la variabilidad observada.
Esto indica que para el intervalo de ingresos comprendido entre 80 y 260 dlares semanales, un
incremento de un dlar en el ingreso ocasiona que el gasto de consumo semanal ascienda a 51
centavos de dlar aproximadamente.
> anova(fit)
Esta tabla confirma la significancia global del modelo de regresin, al analizar las sumas de cuadrados
y el valor p obtenido.
Finalmente se verifican los supuestos del modelo mediante el anlisis de los residuales. Se observa el
contenido del objeto fit que es el nombre del modelo de regresin construido:
> attributes(fit)
$names
$class
[1] "lm"
> plot(fit$fitted.values,fit$residuals)
> abline(h=0)
> mean(fit$residuals)
[1] -1.775489e-16
> qqnorm(fit$residuals)
> qqline(fit$residuals)
Ejemplo 2: Los siguientes datos muestran peso de etileno en semillas de lechuga en funcin del tiempo
de exposicin a un absorbente de etileno:
TIEMPO PESO
2 408
10 274
20 196
30 137
40 90
50 78
60 51
70 40
80 30
90 22
100 15
> data<-read.delim("clipboard",header=T,dec=",",check.names=T)
> attach(data)
Se dibuja el grfico de dispersin para tener una aproximacin al modelo funcional de regresin:
> plot(TIEMPO,PESO)
> plot(TIEMPO,LNPESO)
Ahora se ajusta un modelo lineal para los datos transformados:
> fit<-(lm(LNPESO~TIEMPO))
> summary(fit)
Call:
lm(formula = LNPESO ~ TIEMPO)
Residuals:
Min 1Q Median 3Q Max
-0.147537 -0.033230 0.000425 0.039823 0.135430
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.9404951 0.0443816 133.8 3.68e-16 ***
TIEMPO -0.0323287 0.0007501 -43.1 9.73e-12 ***
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Se aprecia que tanto los coeficientes como el modelo de regresin son significativos. Adems el
coeficiente de determinacin (R2) explica la totalidad de la variabilidad observada.
Esto indica que para el intervalo de tiempo comprendido entre 2 y 100 minutos, un incremento de un
minuto en el tiempo ocasiona que el logaritmo natural del peso disminuya 0.03 unidades
aproximadamente.
La tabla de anlisis de varianza confirma la significancia global del modelo de regresin, al analizar
las sumas de cuadrados y el valor p obtenido.
> anova(fit)
Finalmente se verifican los supuestos del modelo mediante el anlisis de los residuales:
> plot(fit$fitted.values,fit$residuals)
> mean(fit$residuals)
[1] 2.839926e-18
> qqnorm(fit$residuals)
> qqline(fit$residuals)
La media de los residuales es cero y la grfica de cuantiles normales no muestra desviaciones
aparentes de la normalidad.
Ejemplo 3: La base de datos Mortalidad Infantil (Excel) contiene informacin de la Mortalidad Infantil
(MI), Tasa de Alfabetizacin Femenina (TAF) y Producto Interno Bruto Per Cpita (PIBPC) para 64
pases.
Se importan los datos desde Excel y se construye un modelo de regresin lineal mltiple:
> data<-read.delim("clipboard",header=T,dec=",",check.names=T)
> attach(data)
> fit<-lm(MI~TAF+PIBPC)
> summary(fit)
Call:
lm(formula = MI ~ TAF + PIBPC)
Residuals:
Min 1Q Median 3Q Max
-84.267 -24.363 0.709 19.455 96.803
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 263.641586 11.593179 22.741 < 2e-16 ***
TAF -2.231586 0.209947 -10.629 1.64e-15 ***
PIBPC -0.005647 0.002003 -2.819 0.00649 **
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Esto indica que si la influencia de la TAF se mantiene constante, un incremento de 1000 dlares en el
PIBPC de un pas reducira aproximadamente 6 muertes de nios. De otro lado, si la influencia del
PIBPC se mantiene constante, un aumento de un punto porcentual en la tasa de alfabetizacin de las
mujeres ocasiona una disminucin en el nmero de muertes de aproximadamente 2 nios.
> plot(fit$fitted.values,fit$residuals)
> abline(h=0)
Primero se crean los vectores que contienen la variable respuesta y los niveles del factor:
> bacterias<-c(7.66,6.98,7.80,5.26,5.44,5.80,7.41,7.33,7.04,3.51,2.91,3.66)
> empaque<-c(rep("A",3),rep("B",3),rep("C",3),rep("D",3))
Es necesario convertir el vector de caracteres empaque en un factor que contenga los diferentes
niveles A, B, C y D:
> empaque<-factor(empaque)
> empaque
[1] A A A B B B C C C D D D
> tabla<-data.frame(empaque,bacterias)
> tabla
empaque bacterias
1 A 7.66
2 A 6.98
3 A 7.80
4 B 5.26
5 B 5.44
6 B 5.80
7 C 7.41
8 C 7.33
9 C 7.04
10 D 3.51
11 D 2.91
12 D 3.66
Se pueden utilizar procedimientos de inferencia estadstica simultnea como el Mtodo de Tukey que
realiza la comparacin en pares de todos los tratamientos:
> TukeyHSD(anlisis)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = bacterias ~ empaque)
$empaque
diff lwr upr p adj
B-A -1.98 -2.869962 -1.090038 0.0004549
C-A -0.22 -1.109962 0.669962 0.8563618
D-A -4.12 -5.009962 -3.230038 0.0000020
C-B 1.76 0.870038 2.649962 0.0010160
D-B -2.14 -3.029962 -1.250038 0.0002639
D-C -3.90 -4.789962 -3.010038 0.0000031
Este diseo proporciona el menor nmero de corridas con las que pueden estudiarse los cuatro
factores en un diseo factorial completo.
6. Anlisis estadstico
Primero se crean los vectores que contienen la variable respuesta y los niveles del factor:
> A<-c(-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1)
> B<-c(-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1)
> C<-c(-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,1,1)
> D<-c(-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,1)
> indice<-c(45,71,48,65,68,60,80,65,43,100,45,104,75,86,70,96)
El anlisis de varianza indica que los nicos efectos estadsticamente significativos son los efectos
individuales de los factores A, C, D y las interacciones AC y AD. Obsrvese que no aparecen las
interacciones de tres y cuatro factores. La variabilidad debida a estas interacciones se combina para
obtener una estimacin de la varianza del error experimental, 25.56. Esta simplificacin se fundamenta
en el principio de efectos esparcidos, segn el cual, la mayora de los sistemas estn dominados
por algunos de los efectos principales y las interacciones de menor orden, mientras que las
interacciones de orden superior son insignificantes.
> par(mfrow=c(1,3))
> plot(A,indice)
> abline(lm(indice~A))
> plot(C,indice)
> abline(lm(indice~C))
> plot(D,indice)
> abline(lm(indice~D))
Como todos los efectos principales son positivos la solucin consiste en correr el proceso con estos
factores en el nivel alto, puesto que as se obtienen los valores ms altos de ndice de filtracin. Pero
debe recordarse que los efectos principales son insignificantes cuando estn presentes interacciones
significativas.
> AC=A*C
> AD=A*D
> par(mfrow=c(1,2))
> plot(AC,indice)
> abline(lm(indice~AC),col="red")
> plot(AD,indice)
> abline(lm(indice~AD),col="red")
Del anlisis de la interaccin AC se observa que el ndice de filtracin aumenta cuando la temperatura
(A) est en el nivel alto y cuando la concentracin de formaldehido (C) se encuentra en el nivel bajo,
que es un objetivo de la investigacin. De la interaccin AD se observa que los mejores resultados para
el ndice de filtracin se obtienen manteniendo la temperatura y la velocidad de agitacin en sus
niveles altos.
La siguiente tabla resume los niveles de los factores que permiten maximizar el ndice de filtracin:
Un modelo de regresin lineal que permite predecir el ndice de filtracin est dado por:
> fit<-lm(indice~A+C+D+AC+AD)
> summary(fit)
Call:
lm(formula = indice ~ A + C + D + AC + AD)
Residuals:
Min 1Q Median 3Q Max
-6.3750 -1.5000 0.0625 2.9062 5.7500
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 70.062 1.104 63.444 2.30e-14 ***
A 10.812 1.104 9.791 1.93e-06 ***
C 4.938 1.104 4.471 0.0012 **
D 7.313 1.104 6.622 5.92e-05 ***
AC -9.063 1.104 -8.206 9.41e-06 ***
AD 8.312 1.104 7.527 2.00e-05 ***
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Residual standard error: 4.417 on 10 degrees of freedom
Multiple R-squared: 0.966, Adjusted R-squared: 0.9489
F-statistic: 56.74 on 5 and 10 DF, p-value: 5.14e-07
Donde las variables experimentales se encuentran codificadas y asumen valores entre -1 y +1. Para
verificar la validez del modelo se realiza el anlisis de los residuales. Debe recordarse que uno de los
supuestos del modelo es que los errores experimentales son variables aleatorias independientes que
siguen una distribucin normal con media cero y varianza constante. Los residuales se definen como
la diferencia entre el valor observado experimentalmente y el valor predicho por el modelo de
regresin.
> shapiro.test(fit$residuals)
Shapiro-Wilk normality test
data: fit$residuals
W = 0.9535, p-value = 0.5466
> par(mfrow=c(1,1)
> plot(fit$fitted.values,fit$residuals)
> abline(h=0,col="red")
La grfica de residuales contra los valores ajustados del modelo no muestra evidencias de
heteroscedasticidad.