Вы находитесь на странице: 1из 51

LENGUAJE R

http://www.r-project.org/
Gustavo Adolfo Ovalles Rodrguez
Departamento de Matemticas y Estadstica - Universidad Francisco de Paula Santander

1. INTRODUCCIN

R es un lenguaje y entorno de programacin que permite realizar clculos numricos, anlisis


estadsticos y grficos. Fue creado por Ross Ihaka y Robert Gentleman del Departamento de
Estadstica de la Universidad de Auckland. Se considera un dialecto del lenguaje S, un lenguaje de
manipulacin de objetos creado en los Laboratorios AT&T Bell.

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).

Un grfico muy ilustrativo de la manera como funciona R es el siguiente:

Figura 1. Un esquema del funcionamiento de R (Tomado de R para principiantes. Paradis E.)


Dentro de las caractersticas ms notables de R se pueden mencionar las siguientes:

1. Contiene una amplia librera de funciones orientadas a procesos de computacin numrica,


manipulacin y anlisis de datos

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

4. Disponibilidad en la red de paquetes de funciones destinados a aplicaciones especficas

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

2.1. INICIANDO UNA SESIN EN R. OBJETOS

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.

Para observar el objeto se escribe su nombre

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

Solo muestra el resultado de la operacin y-5.

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 ( )

El mismo resultado se obtiene utilizando el comando ls ( ).

Para borrar un objeto de la memoria se utiliza la orden rm ( )


Se pueden agregar comentarios utilizando el smbolo #

Para finalizar una sesin de trabajo y salir del programa se utiliza la orden q( )

El programa pregunta si se desea guardar el espacio de trabajo (workspace)

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.

Para conocer el directorio de trabajo predeterminado se utiliza la orden getwd( )

Puede modificarse el directorio de trabajo utilizando la funcin setwd( )

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.

2.2 VECTORES NUMRICOS

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:

2.3 VECTORES LGICOS

Sus elementos son TRUE, FALSE, NA. Se generan mediante condiciones:

Los operadores de comparacin utilizados por R son

IGUAL ==
DIFERENTE !=
MAYOR >
MAYOR O IGUAL >=
MENOR <
MENOR O IGUAL <=

NA se utiliza cuando existen elementos desconocidos (valores perdidos) en un vector:


R representa por Inf y Inf. La expresin NaN identifica formas indeterminadas o valores que no
son numricos

2.4 VECTORES DE CARACTERES

Se generan colocando entre comillas los caracteres que definen al vector:

2.5 MODOS Y ATRIBUTOS DE UN OBJETO

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 funcin mode permite visualizar el modo de un objeto:

Si el objeto es un vector, todos sus elementos deben tener el mismo modo.

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:

El mismo resultado se obtiene utilizando la funcin seq:

Esta misma funcin permite generar secuencias con un incremento diferente de 1:

Tambin crea un vector con un nmero especfico de valores igualmente espaciados:

> seq(0,1,length=10)

[1] 0.0000000 0.1111111 0.2222222 0.3333333 0.4444444 0.5555556 0.6666667


0.7777778 0.8888889 1.0000000

Se puede crear un vector de elementos idnticos mediante la funcin rep:

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:

2.7 CREANDO OTROS OBJETOS

Adems de los vectores existen otros tipos de objetos en R: matrices, factores, listas, hojas de datos
(data frame) y funciones.

MATRICES

Se crean utilizando la funcin matrix:

Una matriz es el resultado de dimensionar un vector:

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.

Otro ejemplo de creacin de un 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

> pacientes<-data.frame()#crea la hoja de datos pacientes


> pacientes<-edit(pacientes)#abre el editor

Los datos se ingresan directamente en el editor:


Al cerrar el editor de datos el data frame se guarda en R.

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.

En la consola de trabajo de R introducimos la secuencia de comandos:

> data<-read.delim("clipboard",header=T,dec=",",check.names=T)

Seleccionamos la tabla en EXCEL y copiamos (CTRL+C). En la consola damos enter

> data

Aparece la base de datos

> attach(data)

Los datos ya se pueden utilizar

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 incorporar un dataset al espacio de trabajo (workspace) se escribe:

Orange contiene 35 datos correspondientes a tres variables: Tree, age y circumference.

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

[31] 664 1004 1231 1372 1582

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()

[1] ".GlobalEnv" "Orange" "package:stats" "package:graphics"


"package:grDevices" "package:utils" "package:datasets"

[8] "package:methods" "Autoloads" "package:base"

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).

2.8 CAMBIANDO EL MODO DE LOS OBJETOS

R permite cambiar el modo de un objeto mediante la funcin as.something

El nmero cero se transforma en FALSE, cualquier otro nmero se transforma en TRUE

Cualquier caracter distinto a T y F ser transformado en NA (no disponible)

2.9 INDEXANDO OBJETOS

Los procedimientos de indexacin disponibles en R permiten seleccionar elementos de un objeto


determinado. Para indexar un elemento se deben utilizar corchetes [ ].
La indexacin realizada en estos ejemplos es de tipo numrico. Tambin es posible realizar indexacin
lgica:

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.

Figura 2. Una ventana grfica en R

3.1 GRAFICANDO DATOS UNIVARIADOS

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.

> hist(Temp,xlab="Temperatura",main="Histograma") #genera el histograma


> boxplot(Temp,main="Boxplot") #genera el diagrama de caja
> plot(density(Temp),xlab="Temperatura",main="Curva de densidad") #genera la curva
de densidad
> qqnorm(Temp,main="Normal Q-QPlot") #genera la grfica de cuantiles normales
> qqline(Temp)
Figura 3. Anlisis grfico de la variable Temperatura

La funcin summary muestra los valores ms representativos de la distribucin:

> 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)

Figura 4. Histograma de la variable Temperatura

El argumento breaks=seq(50,100,5) crea un histograma con intervalos de ancho 5 unidades


comenzando en 50 y terminando en 100.
El argumento col permite dar color a las celdas. Los cdigos de los colores son los siguientes: blanco
(0,8), negro (1,9), rojo (2,10), verde (3,11), azul (4,12), magenta (5,13), violeta (6,14), amarillo (7,15).

> hist(Temp,xlab="Temperatura",main="Histograma",freq=FALSE,col="red")

Figura 5. Histograma de frecuencias relativas

El argumento freq=FALSE genera el histograma de frecuencias relativas.

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.

3.2 GRAFICANDO DATOS BIVARIADOS

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).

La funcin plot permite realizar el diagrama de dispersin:

> plot(Wind[1:61],Temp[1:61],xlab="Velocidad del viento",ylab="Temperatura")

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

Velocidad del viento

Puede modificarse el diagrama para poder apreciar la informacin correspondiente a cada mes
mediante la adicin de puntos y texto:

> plot(Wind[1:61],Temp[1:61],type="n",xlab="Velocidad del viento",ylab="Temperatura")

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.

Finalmente, para identificar los colores en la grfica se utiliza la funcin legend

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

Lnea de Produccin Manchas Fisura Ubicacin Falta Otro

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:

Despus se genera una matriz que contiene las frecuencias de la tabla:

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:

Las opciones utilizadas en este grfico son las siguientes:

matrixdef [,1:5] grafica los valores de las columnas 1 hasta la 5 para todas las filas;

labels=lnea permite agrupar por lneas de produccin (A, B y C);

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:

Las opciones utilizadas son las siguientes:

matrixdef: la matriz cuyos valores sern utilizados para construir el grfico;

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;

Si se transpone la matriz se puede obtener el grfico de barras por lnea de produccin:

DEFECTOS OBSERVADOS EN LAS LNEAS DE PRODUCCIN


70

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:

Despus se crea el grfico de barras para cada vector:

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))

> legend("topleft",c("Primer Semestre","Noveno Semestre"),fill=c("red","blue"),bty="n")

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:

DISTRIBUCIN NOMBRE EN R ARGUMENTOS


beta beta shape1, shape2, ncp
binomial binom size, prob
binomial negativa nbinom size, prob
exponencial exp rate
F f df1,df2
gamma gamma shape, scale
geomtrica geom prob
hipergeomtrica hyper m, n, k
Ji- cuadrado chisq df
log-normal lnorm meanlog, sdlog
normal norm mean, sd
Poisson pois lambda
t de Student t df
uniforme unif min, max
Weibull weibull shape, scale
Wilcoxon wilcox m, n

Para realizar clculos de probabilidad debe tenerse en cuenta la siguiente sintaxis:

Si se antepone al nombre de la distribucin la letra d, se obtiene la funcin de probabilidad

Si se antepone al nombre de la distribucin la letra p, se obtiene la funcin de distribucin


acumulada P( X x)

Si se antepone al nombre de la distribucin la letra q, se obtiene el percentil o cuantil


correspondiente

Si se antepone al nombre de la distribucin la letra r, se generan en forma aleatoria valores


correspondientes de la distribucin

Ejemplos:

> dbinom(1,size=5,prob=0.20)# halla P(X=1) donde X~b(5,0.20)


[1] 0.4096
> dbinom(0:2,size=5,prob=0.20)# halla P(X=0),P(X=1)y P(X=2) donde X~b(5,0.20)
[1] 0.32768 0.40960 0.20480

> pbinom(2,size=5,prob=0.20)# halla P(X<=2) donde X~b(5,0.20)


[1] 0.94208

> ppois(2,lambda=5)# halla P(X=2) donde X~p(5)


[1] 0.124652

> pnorm(2.5,mean=3,sd=0.5)# halla P(X<=2.5) donde X~N(3,0.5)


[1] 0.1586553

> qt(0.25,df=15)# halla el percentil 25 de la variable X donde X~t(15)


[1] -0.6911969

> rnorm(8)# genera en forma aleatoria 8 valores de la distribucin normal estndar


[1] -0.7711913 0.1369663 0.7546452 0.3189814 -0.3334258 1.4904652 -0.2882074 0.7419320

4.1 GRFICAS DE DISTRIBUCIONES DE PROBABILIDAD

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:

> x<-0:5 #genera un vector con valores de 0 a 5

Calcula las probabilidades binomiales y las almacena en los vectores y, z y w:

> y<-dbinom(x,size=5,prob=0.1)

> z<-dbinom(x,size=5,prob=0.5)

> w<-dbinom(x,size=5,prob=0.9)

Se divide la ventana grfica:

> 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)

Permite obtener la distribucin acumulada de la variable x:


4.2 GENERACIN DE NMEROS ALEATORIOS

R permite la generacin de valores de variables aleatorias que siguen una distribucin de


probabilidad conocida. Por ejemplo, para una distribucin uniforme:

> runif(4,1,2)# genera 4 nmeros aleatorios en el intervalo [1,2]

[1] 1.095234 1.735210 1.365109 1.209391

> runif(4)# genera 4 nmeros aleatorios en el intervalo [0,1]

[1] 0.8051385 0.8306021 0.8508614 0.9601664

> x=runif(100,1,2)

> hist(x,prob=T,col=gray(0.5),main="Distribucin uniforme en [1,2]")

> curve(dunif(x,1,2),add=T)
Para una distribucin normal:

> x=rnorm(100,mean=3,sd=0.5)# genera 100 nmeros aleatorios

> hist(x,prob=T,col=gray(0.5),main="Distribucin normal,media=3,desviacin=0.5")

> curve(dnorm(x,mean=3,sd=0.5),add=T)

> x=rnorm(100)# genera 100 nmeros aleatorios de la normal estndar

> hist(x,prob=T,col=gray(0.5), main="Distribucin normal, media=0,desviacin=1")

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

> sample(1:6,8,replace=T)#8 lanzamientos de un dado

[1] 3 3 4 2 1 5 5 5

> ensayo<-sample(1:6,1000,replace=T)# simulacin de 1000 lanzamientos de un dado

> 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

186 157 155 165 174 163

> barplot(frecuencia)# dibuja el histograma

> sample(1:6,8,replace=T,c(0.2,0.1,0.1,0.05,0.05,0.5))#8lanzamientos de un dado con


probabilidades distintas

[1] 6 4 2 1 6 1 6 6

> sample(1:45,6)# jugando la lotera Baloto

[1] 19 43 15 44 23 45

> caja<-c(rep("defectuoso",3),rep("no defectuoso",22))


> sample(caja,3,replace=F)#toma una muestra de 3 artculos de la caja

[1] "no defectuoso" "no defectuoso" "no defectuoso"

4.4 EXPERIMENTOS MONTECARLO

Son esencialmente experimentos de simulacin o muestreo que se realizan mediante la generacin de


nmeros aleatorios.

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 .

> eps <- 1; s <- 0; n <- 0

> while(eps > .001) {

+ n <- n + 1

+ x <- runif(1,-1,1)#genera un valor para x en el intervalo [-1,1]

+ y <- runif(1,-1,1)#genera un valor para y en el intervalo [-1,1]

+ if(x^2 + y^2 < 1) s <- s + 1

+ piestimado <- 4*s/n

+ eps = abs(piestimado - pi)

+ }

> 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()

> for(i in 1:10){

+ eps<-1;s<-0;n<-0

+ while(eps > .001) {

+ n <- n + 1

+ x <- runif(1,-1,1)#genera un valor para x en el intervalo [-1,1]

+ y <- runif(1,-1,1)#genera un valor para y en el intervalo [-1,1]

+ if(x^2 + y^2 < 1) s <- s + 1

+ piestimado <- 4*s/n

+ eps = abs(piestimado - pi)

+ }

+ 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

5.1 REGRESIN LINEAL

Para ajustar un modelo de regresin lineal se utiliza la funcin lm ( ).

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

Se importan los datos desde Excel:

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

lm(formula = GASTO ~ INGRESO)

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

Residual standard error: 6.493 on 8 degrees of freedom


Multiple R-squared: 0.9621, Adjusted R-squared: 0.9573
F-statistic: 202.9 on 1 and 8 DF, p-value: 5.753e-07

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.

El modelo de regresin estimado es:

GASTO = 24.45455 + 0.50909 INGRESO

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.

Es conveniente construir la tabla de anlisis de varianza:

> anova(fit)

Analysis of Variance Table


Response: GASTO
Df Sum Sq Mean Sq F value Pr(>F)
INGRESO 1 8552.7 8552.7 202.87 5.753e-07 ***
Residuals 8 337.3 42.2
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

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

[1] "coefficients" "residuals" "effects" "rank" "fitted.values"


"assign" "qr" "df.residual" "xlevels" "call"

[11] "terms" "model"

$class

[1] "lm"

La grfica de residuales contra valores ajustados no muestra evidencias de heteroscedasticidad:

> plot(fit$fitted.values,fit$residuals)
> abline(h=0)

> mean(fit$residuals)

[1] -1.775489e-16

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

Se importan los datos desde Excel:

> 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)

El diagrama de dispersin parece indicar un comportamiento de descenso exponencial. Por lo tanto,


se transforma el vector que contiene los pesos de etileno:

> LNPESO<-c(log(PESO))# calcula el logaritmo natural de los pesos

> 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

Residual standard error: 0.07797 on 9 degrees of freedom


Multiple R-squared: 0.9952, Adjusted R-squared: 0.9946
F-statistic: 1857 on 1 and 9 DF, p-value: 9.734e-12

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.

El modelo de regresin estimado es:

LN PESO = 5.9405 0.0323 TIEMPO

PESO = 380.125 exp (-0.0323*TIEMPO)

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)

Analysis of Variance Table


Response: LNPESO
Df Sum Sq Mean Sq F value Pr(>F)
TIEMPO 1 11.2914 11.2914 1857.3 9.734e-12 ***
Residuals 9 0.0547 0.0061
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

Finalmente se verifican los supuestos del modelo mediante el anlisis de los residuales:

> plot(fit$fitted.values,fit$residuals)

La grfica de residuales contra valores ajustados no muestra evidencias de heteroscedasticidad.

> 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

Residual standard error: 41.75 on 61 degrees of freedom


Multiple R-squared: 0.7077, Adjusted R-squared: 0.6981
F-statistic: 73.83 on 2 and 61 DF, p-value: < 2.2e-16
Todos los coeficientes resultan ser significativos, adems el valor p obtenido indica la significancia
global del modelo de regresin mltiple. El coeficiente de determinacin ajustado indica que el
modelo explica aproximadamente el 70% de la variabilidad observada.

La ecuacin del modelo de regresin es

MI = 263.6416 0.0056 PIBPC 2.2316 TAF

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)

El grfico de residuales no muestra evidencias de heteroscedasticidad.

5.2 DISEO DE EXPERIMENTOS

Ejemplo 1: Experimento con un solo factor

Tomado del libro Diseo de Experimentos de Robert Kuehl, Thomson Learning.


Las bacterias sicotrpicas se encuentran en la superficie de la carne y se asocian con la carne
deteriorada. Algunos estudios recientes sugieren las atmsferas controladas de gas como alternativas
a los empaques actuales. Se us un diseo totalmente aleatorizado con 3 rplicas que incluy los
siguientes empaques: comercial de plstico (A), al vaco (B), mezcla de CO, O2 y N (B) y 100% de CO2.

Los resultados se muestran en la siguiente tabla:


Condiciones de empaque Nmero de bacterias
Log (N/cm2)
A 7.66, 6.98, 7.80
B 5.26, 5.44, 5.80
C 7.41, 7.33, 7.04
D 3.51, 2.91, 3.66

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

Se construye un data frame con los datos del experimento:

> 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 realiza el anlisis de varianza utilizando la funcin aov ( ). Los resultados se almacenan en un


objeto llamado anlisis:
> anlisis<-aov(bacterias~empaque)
> summary(anlisis)
Df Sum Sq Mean Sq F value Pr(>F)
empaque 3 32.873 10.9576 94.584 1.376e-06 ***
Residuals 8 0.927 0.1159
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Teniendo en cuenta el p-valor obtenido, se concluye que existen diferencias significativas en los
promedios del nmero de bacterias sicotrpicas dependiendo del empaque utilizado.
Los promedios se pueden calcular con la funcin tapply( ) que aplica una funcin a los subgrupos
definidos por el factor:
> tapply(bacterias,empaque,mean)
A B C D
7.48 5.50 7.26 3.36
Un grfico con los boxplot resulta muy ilustrativo:
> boxplot(bacterias ~ empaque, horizontal = T, xlab="Nmero de bacterias", col = "gray")

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

Se observa que las mayores diferencias se obtienen para el empaque D.


Ejemplo 2: Diseo factorial 2k
Tomado del libro Diseo y Anlisis de Experimentos de Douglas Montgomery, Jhon Wiley and
Sons, Inc.
1. Identificacin del problema
Un proceso industrial requiere el uso de formaldehido como ayudante en una operacin de filtracin.
Se lleva a cabo un experimento en la planta piloto para estudiar los factores que influyen en el ndice
de filtracin. Los cuatro factores son la temperatura (A), la presin (B), la concentracin del
formaldehdo (C) y la velocidad de agitacin (D). Cada factor se analiza en dos niveles.

El Departamento de Ingeniera de proceso est interesado en maximizar el ndice de filtracin. Las


condiciones actuales de proceso producen ndices de filtracin de alrededor de 75 gal/h. Asimismo,
en el proceso actual la concentracin de formaldehdo, se usa en el nivel alto. El problema consiste en
determinar el nivel de estos factores que optimiza el resultado deseado, en este caso, el ndice de
filtracin y al mismo tiempo disminuir la concentracin de formaldehido para poder cumplir con las
regulaciones ambientales existentes.

2. Eleccin de las variables experimentales (factores) y sus niveles


Factor Unidades Nivel bajo Nivel alto
A. Temperatura C 24 35
B. Presin Psig 10 15
C. Concentracin Porcentaje 2 4
D. Velocidad de agitacin rpm 15 30

3. Seleccin de la variable respuesta


El ndice de filtracin del producto (gal/h).
4. Eleccin del diseo experimental
4
Se desarrollar un diseo factorial 2 no replicado con 4 factores en dos niveles. Los diseos
factoriales se utilizan ampliamente en experimentos que incluyen varios factores cuando es necesario
estudiar el efecto conjunto de los factores sobre una respuesta.

5. Desarrollo del experimento


La matriz del diseo y los datos de la respuesta obtenida de una sola rplica se aprecian a
continuacin:

Nmero Factor A Factor B Factor C Factor D Etiqueta ndice


1 - - - - (1) 45
2 + - - - a 71
3 - + - - b 48
4 + + - - ab 65
5 - - + - c 68
6 + - + - ac 60
7 - + + - bc 80
8 + + + - abc 65
9 - - - + d 43
10 + - - + ad 100
11 - + - + bd 45
12 + + - + abd 104
13 - - + + cd 75
14 + - + + acd 86
15 - + + + bcd 70
16 + + + + abcd 96

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)

Se construye un data frame con los datos del experimento:

> tabla<- data.frame(block=gl(16,1),A=factor(A),B=factor(B),C=factor(C),D=factor(D),


response=indice)
> tabla
block A B C D response
1 1 -1 -1 -1 -1 45
2 2 1 -1 -1 -1 71
3 3 -1 1 -1 -1 48
4 4 1 1 -1 -1 65
5 5 -1 -1 1 -1 68
6 6 1 -1 1 -1 60
7 7 -1 1 1 -1 80
8 8 1 1 1 -1 65
9 9 -1 -1 -1 1 43
10 10 1 -1 -1 1 100
11 11 -1 1 -1 1 45
12 12 1 1 -1 1 104
13 13 -1 -1 1 1 75
14 14 1 -1 1 1 86
15 15 -1 1 1 1 70
16 16 1 1 1 1 96
Se realiza el anlisis de varianza utilizando la funcin aov ( ). Slo se tienen en cuenta las interacciones
entre los factores de segundo orden. Los resultados se almacenan en un objeto llamado anlisis:
> anlisis<-aov(indice~(A+B+C+D)^2,data=tabla)
> summary(anlisis)
Df Sum Sq Mean Sq F value Pr(>F)
A 1 1870.56 1870.56 73.1760 0.0003596 ***
B 1 39.06 39.06 1.5281 0.2712969
C 1 390.06 390.06 15.2592 0.0113371 *
D 1 855.56 855.56 33.4694 0.0021718 **
A:B 1 0.06 0.06 0.0024 0.9624777
A:C 1 1314.06 1314.06 51.4059 0.0008208 ***
A:D 1 1105.56 1105.56 43.2494 0.0012200 **
B:C 1 22.56 22.56 0.8826 0.3906126
B:D 1 0.56 0.56 0.0220 0.8878710
C:D 1 5.06 5.06 0.1980 0.6749089
Residuals 5 127.81 25.56
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

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.

Se construyen las grficas de los efectos principales de cada factor:

> 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.

La grfica de las interacciones significativas AC y AD es muy importante para resolver el problema:

Se deben generar primero los vectores AC y AD:

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

Factor Nivel bajo Nivel alto Nivel ptimo


A. Temperatura 24 35 35
B. Presin 10 15 15
C. Concentracin 2 4 2
D. Velocidad de agitacin 15 30 30

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

NDICE = 70.062 + 10.812 A + 4.938 C + 7.313 D 9.063 AC + 8.312 AD

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.

La prueba de Shapiro permite verificar el supuesto de normalidad:

> shapiro.test(fit$residuals)
Shapiro-Wilk normality test
data: fit$residuals
W = 0.9535, p-value = 0.5466

Teniendo en cuenta el valor-p obtenido, no se rechaza la hiptesis nula de normalidad en los


residuales.

> 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.

Вам также может понравиться