notas montoya curso r 3erverano probabilidad a cimat

79
Gr´ aficas y C ´ omputo Estad´ ıstico Usando R Jos´ e A. Montoya Departamento de Matem ´ aticas Universidad de Sonora

Upload: sarai-hernandez

Post on 13-Oct-2014

75 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Graficas y ComputoEstadıstico Usando R

Jose A. MontoyaDepartamento de Matematicas

Universidad de Sonora

Page 2: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

ii

Page 3: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Contenido

1 Antes de iniciar 1

1.1 Instalacion de R . . . . . . . . . . . . . . . . . . . 1

1.2 Directorio de trabajo . . . . . . . . . . . . . . . . 2

1.3 Archivo de trabajo en R . . . . . . . . . . . . . . . 2

1.4 Primer programa en R . . . . . . . . . . . . . . . . 3

1.5 Ayuda para programar en R . . . . . . . . . . . . . 3

2 Tipos de objetos en R 5

2.1 Tipos de objetos . . . . . . . . . . . . . . . . . . . 5

2.1.1 Vector . . . . . . . . . . . . . . . . . . . . 5

2.1.2 Matriz . . . . . . . . . . . . . . . . . . . . 6

2.1.3 Arreglo . . . . . . . . . . . . . . . . . . . 7

2.1.4 Factor . . . . . . . . . . . . . . . . . . . . 7

2.1.5 data.frame . . . . . . . . . . . . . . . . . . 8

2.1.6 lista . . . . . . . . . . . . . . . . . . . . . 8

2.1.7 ts . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Atributos de objetos . . . . . . . . . . . . . . . . . 10

2.2.1 Tipo y longitud . . . . . . . . . . . . . . . 10

3 Manejo de archivos de datos 11

Page 4: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

iv CONTENIDO

3.1 Leer datos de un archivo . . . . . . . . . . . . . . 11

3.1.1 Archivos de texto . . . . . . . . . . . . . . 11

3.1.2 Archivos de Excel . . . . . . . . . . . . . 12

3.2 Guardar datos en un archivo . . . . . . . . . . . . 12

3.2.1 Archivos de texto . . . . . . . . . . . . . . 12

3.2.2 Archivos de Excel . . . . . . . . . . . . . 13

4 Variables aleatorias 15

4.1 Discretas . . . . . . . . . . . . . . . . . . . . . . 16

4.1.1 Poisson . . . . . . . . . . . . . . . . . . . 16

4.1.2 Binomial . . . . . . . . . . . . . . . . . . 16

4.1.3 Binomial Negativa . . . . . . . . . . . . . 17

4.2 Continuas . . . . . . . . . . . . . . . . . . . . . . 17

4.2.1 Uniforme . . . . . . . . . . . . . . . . . . 17

4.2.2 Exponencial . . . . . . . . . . . . . . . . . 18

4.2.3 Normal . . . . . . . . . . . . . . . . . . . 18

5 Analisis exploratorio de datos 19

5.1 Estadısticas descriptivas . . . . . . . . . . . . . . . 19

5.2 Graficas descriptivas . . . . . . . . . . . . . . . . 20

5.2.1 Histograma . . . . . . . . . . . . . . . . . 20

5.2.2 Grafica de barras . . . . . . . . . . . . . . 20

5.2.3 Grafica de X versus Y . . . . . . . . . . . . 21

6 Operaciones basicas 23

6.1 Vectores . . . . . . . . . . . . . . . . . . . . . . . 24

6.2 Matrices . . . . . . . . . . . . . . . . . . . . . . . 25

6.3 Logicas . . . . . . . . . . . . . . . . . . . . . . . 26

Page 5: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

CONTENIDO v

7 Estructuras de programacion en R 27

7.1 for . . . . . . . . . . . . . . . . . . . . . . . . . . 27

7.2 while . . . . . . . . . . . . . . . . . . . . . . . . 28

7.3 if-else . . . . . . . . . . . . . . . . . . . . . . . . 28

7.4 repeat . . . . . . . . . . . . . . . . . . . . . . . . 28

7.5 switch . . . . . . . . . . . . . . . . . . . . . . . . 29

8 Definir, evaluar y maximizar funciones 31

8.1 Ejemplo: Funcion de verosimilitud Binomial (N0, p) 31

8.2 Ejemplo: Funcion de verosimilitud Exponencial (λ) 33

8.3 Ejemplo: Funcion de verosimilitud Lognormal (μ, σ) 34

9 Superficies, Contornos y perfiles de funciones 37

9.1 Ejemplo: Funcion de verosimilitud Normal (μ, σ) . 37

9.2 Tarea Final . . . . . . . . . . . . . . . . . . . . . 40

Page 6: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

vi CONTENIDO

Page 7: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Capıtulo 1

Antes de iniciar

1.1 Instalacion de R

Para instalar R se sugiere seguir los siguentes pasos:

1. Ir a la pagina del proyecto R (http://www.r-project.org/).

2. Seleccionar la opcion CRAN.

3. Aparecera una lista de lugares de donde es posible descar-gar R. Seleccionar uno de ellos. Por ejemplo, Argentina(http://cran.patan.com.ar/).

4. Seleccionar el sistema operativo para R. Por ejemplo, Win-dows.

5. Seleccionar el subdirectorio llamado base para descargar R.

6. Seleccionar la version de R (Download R 2.11.0 for Win-dows) y guardar el archivo de instalacion en tu computadora(R-2.11.0-win32.exe).

7. Por ultimo, se debe abrir el archivo anterior y seguir el pro-ceso de instalacion.

Page 8: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

2 Antes de iniciar

1.2 Directorio de trabajo

Para crear una carpeta de trabajo donde R guarde y lea informacionde forma directa se procedera de la siguiente forma:

1. Crear una carpeta en algun lugar del disco duro o en algunamemoria USB(C:\Documents and Settings\Mery\Escritorio\R-JAMontoya).La carpeta creada (R-JAMontoya) sera llamada carpeta detrabajo.

2. Usar la carpeta de trabajo como direccion actual de trabajode R. Para ello se seguiran los siguientes pasos.

(a) Abrir el programa R.

(b) Seleccionar la opcion Archivo del menu y luego ir aCambiar dir...

(c) Seleccionar la carpeta de trabajo (R-JAMontoya) y Acep-tar.

1.3 Archivo de trabajo en R

Para crear un archivo donde se especificaran las instrucciones ocomandos que R ejecutara se siguen los siguientes pasos:

1. Seleccionar la opcion Archivo del menu y luego ir a Nuevoscript.

2. Seleccionar la opcion Ventana del menu y elegir una vistaadecuada.

3. Seleccionar la opcion Archivo del menu y luego ir a Guan-dar como ...

Page 9: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

1.4 Primer programa en R 3

4. Dar un nombre adecuado al archivo y Guardar(JAMontoyaPrograma01).

5. Por ultimo, verificar que el archivo de trabajo se guardo enla carpeta de trabajo.

1.4 Primer programa en R

El Programa01 del Apendice muestra como asignar valores a ob-jetos y como borrar objetos en memoria. Se usan las siguientesinstrucciones:

Comando Descripcion# Un caracter que define comentarios en el

archivo de datos. Lıneas que comienzen coneste caracter son ignoradas en la lectura.

<- Asigna valores a objetosls() Lista objetos en memoriarm() Borra objetos en memoria

• Escribe tu propia version del Programa01 y grabalo en tucarpeta de trabajo.

1.5 Ayuda para programar en R

A continuacion se muestran dos estrategias para buscar ayuda.

1. Cuando se conoce el nombre de la funcion o caracter noconvencional que se desea utilizar.

Instruccion Descripcionhelp(“rm”) Muestra la ayuda para la funcion rmhelp(“!=”) Muestra la ayuda para el caracter no con-

vencional !=

Page 10: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

4 Antes de iniciar

2. Cuando no se conoce el nombre de la funcion o caracter noconvencional que se desea utilizar.

• Se recomienda buscar en Google utilizando palabrasclaves. Por ejemplo,

¿Que deseo hacer? Palabras claves en GoogleBorrar objetos de lamemoria de R.

R delete object.

Evaluar si un objetoes diferente a otro.

R no equal operator.

Intentalo!!!

Page 11: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Capıtulo 2

Tipos de objetos en R

• ¿Como le hago entender a R que los valores 0 y 1 no son re-sultados de una variable aleatoria sino que representan cate-gorıas?

• Aquı se presentaran 7 diferentes tipos de objetos de R: Vec-tor, factor, arreglo, matriz, data.frame, ts y lista.

• Ademas, para cada tipo de objeto se especificaran sus atrib-utos. Vease el Programa02 del Apendice.

• Particularmente, todo esto es importante puesto que la accionde una funcion sobre un objeto depende del tipo de objeto.

2.1 Tipos de objetos

2.1.1 Vector

Instruccion Descripcionx<-c(0,1,2.5,-100,9,20) x es un vector numericoy<-c(“A”,“B”,“C”,“D”) y es un vector de caracteresz<-c(T,T,F,F) z es un vector logico

Page 12: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

6 Tipos de objetos en R

• Para obtener el i-esimo elemento de un vector x se escribex[i].

2.1.2 Matriz

Todas las columnas en una matriz deben ser de la misma clase(numerico, caracteres, etc.) y de la misma longitud.

Instruccion DescripcionMx<-matrix(x,nrow=3,ncol=2,byrow=FALSE)

Convierte al vector x en unamatriz numerica Mx de 3 fi-las y 2 columnas. Notese quelos elementos del vector x soncolocados verticalmente en lamatriz Mx (byrow=FALSE)

My<-matrix(y,nrow=2,ncol=2,byrow=F)

Convierte al vector y en unamatriz de caracteres My de 2filas y 2 columnas. Noteseque los elementos del vector yson colocados verticalmenteen la matriz My (byrow=F)

Mz<-matrix(z,nrow=2,ncol=2,byrow=T)

Convierte al vector z en unamatriz logica My de 2 filas y 2columnas. Notese que los ele-mentos del vector z son colo-cados horizontalmente en lamatriz Mz (byrow=T)

• Para obtener el ij-esimo elemento de una matriz M se escribeM[i,j].

• ¿Como se obtiene la i-esima fila de M?

• ¿Como se obtiene la j-esima columna de M?

Page 13: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

2.1 Tipos de objetos 7

• ¿Como se obtienen los elementos de la columna j contenidosentre las filas r y s de M?

2.1.3 Arreglo

Son similares a las matrices pero pueden tener mas de dos dimen-siones.

Instruccion DescripcionMa<-array(c(1, 2, 3, 4, 5, 6, 7,8, 9, 10, 11, 12), dim=c(2,2,3))

>Ma[,,1][, 1] [, 2]

[1, ] 1 3[2, ] 2 4>Ma[,,2]

[, 1] [, 2][1, ] 5 7[2, ] 6 8>Ma[,,3]

[, 1] [, 2][1, ] 9 11[2, ] 10 12

2.1.4 Factor

Un objeto factor almacena el valor de una variable nominal (vari-able cualitativa que no puede ser sujeta a un orden). Por ejemplo,sexo, colores, etc.

Instruccion DescripcionF<-factor(c(“Hombre”, “Hombre”,“Mujer”, “Mujer”, “Hombre”))

>summary(F)Hombre Mujer

3 2

Page 14: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

8 Tipos de objetos en R

2.1.5 data.frame

Es mas general que una matriz en el sentido de que las columnaspueden tener diferentes clases de objetos (numericos, caracteres,factores, etc).

Instruccion DescripcionD<-data.frame(c(0,1),c(“Rojo”,“Amarillo”), c(TRUE,FALSE))names(D)<-c(“X1”,“X2”,“X3”)

>DX1 X2 X3

1 0 Rojo TRUE2 1 Amarillo FALSE

2.1.6 lista

Es una coleccion ordenada de objetos.

Instruccion DescripcionL<-list(x,Mx,D) >L[[1]]

[1] 0 1 2.5 -100 9 20>L[[2]]

[, 1] [, 2][1, ] 0 -100[2, ] 1 9[3, ] 2.5 20>L[[3]]

X1 X2 X31 0 Rojo TRUE2 1 Amarillo FALSE

2.1.7 ts

Crea un objeto serie de tiempo.

Page 15: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

2.1 Tipos de objetos 9

Instruccion DescripcionDT<-data.frame(c(0.2875, 0.3000,0.3195, 0.3180, 0.3415, 0.3725,0.5550, 0.7825, 0.7475, 0.5520,0.2860, 0.2620, 0.3270, 0.3960,0.4060), c(16.0484, 17.1786, 18.7016,23.4083, 24.7016, 28.4417, 30.2742,28.9677, 27.9000, 23.2016, 18.2000,13.0323, 14.8710, 15.0357, 15.9032))names(DT)<-c(“NDVI”,“Temp”)

>DTNDVI Temp

1 0.2875 16.04842 0.3000 17.17863 0.3195 18.70164 0.3180 23.40835 0.3415 24.70166 0.3725 28.44177 0.5550 30.27428 0.7825 28.96779 0.7475 27.9000

10 0.5520 23.201611 0.2860 18.200012 0.2620 13.032313 0.3270 14.871014 0.3960 15.035715 0.4060 15.9032

tsData<-ts(DT,frequency=12) >tsDataNDVI Temp

Jan 1 0.2875 16.0484Feb 1 0.3000 17.1786Mar 1 0.3195 18.7016Apr 1 0.3180 23.4083May 1 0.3415 24.7016Jun 1 0.3725 28.4417Jul 1 0.5550 30.2742

Aug 1 0.7825 28.9677Sep 1 0.7475 27.9000Oct 1 0.5520 23.2016Nov 1 0.2860 18.2000Dec 1 0.2620 13.0323Jan 2 0.3270 14.8710Feb 2 0.3960 15.0357Mar 2 0.4060 15.9032

Page 16: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

10 Tipos de objetos en R

2.2 Atributos de objetos

Todo objeto tiene dos atributos intrınsecos: tipo y longitud.

2.2.1 Tipo y longitud

• El tipo se refiere a la clase basica de los elementos en elobjeto. Por ejemplo, numerico, caracter, logico.

• La longitud es simplemente el numero de elementos en elobjeto.

• Para ver el tipo y la longitud de un objeto se pueden usar lasfunciones mode y length como se muestra a continuacion:

Instruccion Descripcionmode(x) [1] “numeric”length(x) [1] 6mode(Mx) [1] “numeric”length(Mx) [1] 6mode(Ma) [1] “numeric”length(Ma) [1] 12mode(F) [1] “numeric”length(F) [1] 5mode(D) [1] “list”length(D) [1] 3mode(L) [1] “list”length(L) [1] 3

Escribe tu propia version del Programa02 y grabalo en tu car-peta de trabajo.

Page 17: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Capıtulo 3

Manejo de archivos de datos

• R puede leer y guardar datos en diferentes formatos (Texto,Excel, SAS, SPSS,...).

• Aquı se describiran unicamente funciones para leer y guardardatos en formato Texto y Excel (vease Programa03).

3.1 Leer datos de un archivo

3.1.1 Archivos de texto

• Para leer un archivo de texto (ASCII) se puede utilizar lafuncion read.table.

• La funcion read.table crea un marco de datos de tipo data.frame.

DatosPMA<-read.table(“s26032PrecipMaxAnual.txt ”,header=TRUE,sep=“”)

Page 18: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

12 Manejo de archivos de datos

3.1.2 Archivos de Excel

• Para leer un archivo Excel se puede usar la funcion read.xls.Sin embrago, esta funcion requiere tener instalada la librerıaxlsReadWrite.

• Para instalar esta librerıa se puede escribir la siguiente or-den:

install.packages(“xlsReadWrite ”)

• Luego, comentar la instruccion anterior para no reinstalarxlsReadWrite cada vez que se ejecute el programa.

#install.packages(“xlsReadWrite ”)

• Una vez instalada la librerıa xlsReadWrite es necesario ac-tivarla. Para hacerlo se escribe lo siguiente:

library(xlsReadWrite)

• Ahora ya se puede utilizar la funcion read.xls para leer unarchivo Excel.

NivelGlucosa<-read.xls(“DatosGlucosa2007Nogales.xls ”,sheet=1,type=“data.frame ”)

3.2 Guardar datos en un archivo

3.2.1 Archivos de texto

• Para guardar informacion en un archivo de texto se puedeutilizar la funcion write.table.

Page 19: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

3.2 Guardar datos en un archivo 13

write.table(DatosPMA,file=“PrecipMaxAnual.txt ”,sep=“”, col.names = TRUE, row.names = FALSE)

3.2.2 Archivos de Excel

• Para guardar informacion en un archivo de Excel se puedeutilizar la funcion write.xls.

write.xls(DatosPMA,file=“PrecipMaxAnual.xls ”,colNames = TRUE,sheet = 1,rowNames = FALSE)

Escribe tu propia version del Programa03 y grabalo en tu car-peta de trabajo.

Page 20: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

14 Manejo de archivos de datos

Page 21: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Capıtulo 4

Variables aleatorias

Aquı se vera como evaluar la funcion de densidad de probabilidad(d) y la funcion de distribucion (p) de variables aleatorias discretasy continuas. Ademas, se mostrara como calcular los cuantiles (q)y como simular muestras (r) de dichas variables (Programa04).

• R tiene implemetado, para diversas variables aleatorias, fun-ciones especıficas para calcular d, p, q y r.

• En general, el nombre de estas funciones se encuentra con-formado por dos partes: (OperacionNombreR):

1. Operacion: d, p, q, r.

2. NombreR : Es el nombre que R tiene especificado parala variable aleatoria (beta, binom, exp, norm, etc.). Paramas informacion vease pagina 33 de R-intro.pfd (Menude R, Ayuda, Manuales (en PDF), An Introductionto R).

Por ejemplo,

dbeta(), pbeta(), qbeta() y rbeta().dnorm(), pnorm(), qnorm() y rnorm().

Page 22: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

16 Variables aleatorias

4.1 Discretas

4.1.1 Poisson

• Supongase que X es una variable aleatoria Poisson con me-dia λ = 30.

Instruccion Descripciondpois(25,lambda=30) Funcion de probabilidad

evaluada en X = 25ppois(25,lambda=30) Funcion de distribucion,

P(X ≤ 25)qpois(0.95,lambda=30) Cuantil 0.95rpois(50,lambda=30) Muestra simulada de

tamano n = 50

4.1.2 Binomial

• Supongase que X es una variable aleatoria Binomial conparametros N = 100 y p = 0.3.

Instruccion Descripciondbinom(25,size=100,prob=0.3) Funcion de probabilidad

evaluada en X = 25pbinom(25,size=100,prob=0.3) Funcion de distribucion,

P(X ≤ 25)qbinom(0.95,size=100,prob=0.3) Cuantil 0.95rbinom(50,size=100,prob=0.3) Muestra simulada de

tamano n = 50

Page 23: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

4.2 Continuas 17

4.1.3 Binomial Negativa

• Supongase que X es una variable aleatoria Binomial Nega-tiva con parametros r = 100 y p = 0.9. Aquı, X se puedepensar como el numero de fallas antes de conseguir r exitos.La probabilidad de exito es p.

Instruccion Descripciondnbinom(25,size=100,prob=0.9) Funcion de probabilidad

evaluada en X = 25pnbinom(25,size=100,prob=0.9) Funcion de distribucion,

P(X ≤ 25)qnbinom(0.95,size=100,prob=0.9) Cuantil 0.95rnbinom(50,size=100,prob=0.9) Muestra simulada de

tamano n = 50

4.2 Continuas

4.2.1 Uniforme

• Supongase que X es una variable aleatoria Uniforme conparametros a = 0 y b = 1.

Instruccion Descripciondunif(0.5,min=0,max=1) Funcion de densidad

evaluada en X = 0.5punif(0.5,min=0,max=1) Funcion de distribucion,

P(X ≤ 0.5)qunif(0.95,min=0,max=1) Cuantil 0.95runif(50,min=0,max=1) Muestra simulada de

tamano n = 50

Page 24: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

18 Variables aleatorias

4.2.2 Exponencial

• Supongase que X es una variable aleatoria Exponencial conparametro α = E[X] = 10.

Instruccion Descripciondexp(10,rate=1/10) Funcion de densidad

evaluada en X = 10pexp(10,rate=1/10) Funcion de distribucion,

P(X ≤ 10)qexp(0.95,rate=1/10) Cuantil 0.95rexp(50,rate=1/10) Muestra simulada de

tamano n = 50

4.2.3 Normal

• Supongase que X es una variable aleatoria Normal con me-dia μ = E[X] = 0 y desviacion σ =

√Var[X] = 1.

Instruccion Descripciondnorm(0,mean=0,sd=1) Funcion de densidad

evaluada en X = 0pnorm(0,mean=0,sd=1) Funcion de distribucion,

P(X ≤ 0)qnorm(0.95,mean=0,sd=1) Cuantil 0.95rnorm(50,mean=0,sd=1) Muestra simulada de

tamano n = 50

• ¿Que sucede si las funciones de densidad, distribucion ycuantiles son evaluadas en un vector?

Escribe tu propia version del Programa04 y grabalo en tu carpetade trabajo.

Page 25: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Capıtulo 5

Analisis exploratorio de datos

• Aquı se calcularan varias estadısticas descriptivas (media,varianza, desviacion, etc.) haciendo uso de funciones de R.

• Tambien se mostrara como elaborar y almacenar graficastıpicas en el analis exploratorio de datos (histogramas, graficade dispersion, etc.).

• Detalles del codigo de programacion empleado se muestranen el Programa05.

5.1 Estadısticas descriptivas

Instruccion Descripcionlength(y) Numero de elementos de ymin(y) Mınimo valor de ymax(y) Maximo valor de ymean(y) Media muestral o promediomedian(y) Mediana muestralvar(y) Varianza muestral (usa n-1)sd(y) Desviacion muestral (usa n-1)

Page 26: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

20 Analisis exploratorio de datos

• La funcion sort() ordena elementos de un vector en formadescendente o ascendente. Ası, para obtener la i-esima es-tadıstica de orden se puede escribir la siguiente instruccion:

sort(y)[i]

• Notese que el rango muestral se puede calcular como elmaximo menos el mınimo de los datos.

5.2 Graficas descriptivas

5.2.1 Histograma

• A continuacion se muestran las funciones usadas en el Pro-grama05 para graficar el histograma del nivel de glucosade mujeres entre 15 y 70 anos medido en Nogales, Sonora,Mexico durante el 2008.

Instruccion Descripcionread.xls() Leer los datos (Hombres y

Mujeres)subset() Seleccionar nivel de glucosa

de mujeres entre 15 y 70 anoshist() Graficar el histogramaaxis() Manejar los ejes del his-

tograma (espaciamiento)curve() Ajustar una curva al his-

tograma

5.2.2 Grafica de barras

• A continuacion se muestran las funciones usadas en el Pro-grama05 para elaborar una grafica de barras de tres tipos de

Page 27: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

5.2 Graficas descriptivas 21

defectos encontrados en siete actividades asociadas al desar-rollo de software (DatosDefectosSoftware.xls).

Instruccion Descripcionread.xls() Leer los datosas.matrix() Convierte los datos a una ma-

trizbarplot() Grafica de barras

5.2.3 Grafica de X versus Y

• A continuacion se muestran las funciones usadas en el Pro-grama05 para graficar la precipitacion maxima anual obser-vada en una estacion meteorologoca de Hermosillo, Sonora,Mexico.

Instruccion Descripcionread.table() Leer los datosplot() Grafica de X versus Ylegend() Leyendatitle() Tıtulo de la grafica

• Para grabar una grafica sigue la siguiente instruccion. Delmenu de R, primero selecciona Archivo y luego Guardarcomo. Por ultimo, selecciona el formato de grabacion: Metafile,Postscript, PDF, etc.

• Escribe tu propia version del Programa05 y grabalo en tucarpeta de trabajo.

Page 28: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

22 Analisis exploratorio de datos

Page 29: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT
Page 30: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

24 Operaciones basicas

Capıtulo 6

Operaciones basicas

6.1 Vectores

Instruccion Descripcionrep() Repite un vector un numero

especificado de vecesseq() Crea una secuencia de val-

ores. Requiere un valor ini-cial, un valor final y el tamanode los incrementos

cbind() Concatena vectores (porcolumnas)

rbind() Concatena vectores (por filas)cumsum() Suma acumulada de los elem-

ntos de un vectorvec1==vec2 Compara los elementos de

dos vectores. Produce TRUEsi son iguales o FALSE si sondiferentes

vec1!=vec2 Compara los elementos dedos vectores. Produce TRUEsi son diferentes o FALSE sison iguales

Page 31: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

6.2 Matrices 25

6.2 Matrices

Supongase que X, Y y Z son matrices y que c es un escalar.

Instruccion DescripcionX + Y Suma de matricesX + c Suma a cada elemento de la

matriz X el escalar cX − Y Resta de matricesX − c Resta a cada elemento de la

matriz X el escalar cX%*%Z Producto de matrices (di-

mension compatible)X ∗ Y Multiplicacion de matrices

elemento a elemento (di-mension compatible)

X ∗ c Multiplica a cada elemento dela matriz X el escalar c

X Y Potencia de matrices ele-mento a elemento (dimensioncompatible)

X ˆc Eleva cada elemento de lamatriz X a la potencia c

X/Y Division de matrices ele-mento a elemento (dimensioncompatible)

X/c Divide a cada elemento de lamatriz X entre el escalar c

t(X) Transpuesta de Xsolve(X) Inversa de Xdet(X) Determinante de Xdiag(k) Matriz identidad de kxk (con-

tiene unos en la diagonal)

Page 32: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

26 Operaciones basicas

6.3 Logicas

Supongase que vec es un vector logico. Es decir, sus entradas sonTRUE o FALSE.

Instruccion Descripcionall(vec) Produce TRUE si todas las

entradas de vec son TRUE.En otro caso produce FALSE

any(vec) Produce TRUE si alguna delas entradas de vec es TRUE.En otro caso produce FALSE

Escribe tu propia version del Programa06 y grabalo en tu carpetade trabajo.

Page 33: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Capıtulo 7

Estructuras de programacionen R

R permite crear estructuras repetitivas y la ejecucion condicionalde sentencias a traves de las instrucciones for, while, if-else, re-peat y switch. Detalles del codigo de programacion relacionadocon estas instrucciones se muestran en el Programa07.

7.1 for

Permite crear una estructura repetitiva.

Instruccion Descripcionfor(i in VectorValores){sentencias}

Para cada i en VectorValores,se repiten las sentencias o in-strucciones programadas den-tro de las llaves. Notese quelas sentencias pueden depen-der de i

Page 34: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

28 Estructuras de programacion en R

7.2 while

Permite crear una ejecucion condicionada.

Instruccion Descripcionwhile(condicion){sentencias}

Se ejecutan la sentenciasmientras que la condicion secumpla

7.3 if-else

Permite crear una ejecucion condicionada.

Instruccion Descripcionif(condicion){sentencias1}else{sentencias2}

Si se cumple la condicion en-tonces se ejecutan las senten-cias1. En caso contrario, seejecutan las sentencias2

7.4 repeat

Permite crear una estructura repetitiva.

Page 35: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

7.5 switch 29

Instruccion Descripcionrepeat{if(condicion){sentencias}else{break}}

Repite las sentencias si secumple la condicion. En casocontrario, finaliza el procesode repeticion

7.5 switch

Permite crear una estructura condicionada.

Instruccion Descripcionswitch(opcion,Instruccion 1Instruccion 2Instruccion 3...Instruccion n}

Si opcion es igual a 1 en-tonces ejecuta Instruccion 1.Si opcion es igual a 2 en-tonces ejecuta Instruccion 2. . .

Escribe tu propia version del Programa07 y grabalo en tu carpetade trabajo.

Page 36: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

30 Estructuras de programacion en R

Page 37: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Capıtulo 8

Definir, evaluar y maximizarfunciones

Aquı se muestra como se puede definir, evaluar y maximizar unafuncion matematica que realiza una tarea especıfica. Se presen-tan tres ejemplos desarrollados en el Programa08, Programa09 yPrograma10, respectivamente.

8.1 Ejemplo: Funcion de verosimilitud Bi-nomial (N0, p)

Supongase que se tiene la siguiente funcion de p:

L(p; N0, x0) =

(N0

x0

)px0 (1 − p)N0−x0 ,

donde p ∈ [0, 1] y N0 y x0 son fijos y conocidos. Notese quese trata del modelo de probabilidad Binomial(N0, p); pero vistocomo funcion del parametro p. La frecuencia de exitos, x0, y elnumero de experimentos, N0, ya fueron observados. Esta funcionsera llamada funcion de verosimilitud de p.

Page 38: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

32 Definir, evaluar y maximizar funciones

1. Definir la funcion L(p; N0, x0) en el lenguaje R.

2. Evaluar la funcion L(p; N0, x0) en p = 0.5. De aquı en ade-lante usar N0 = 10 y x0 = 5.

3. Encontrar el estimador de maxima verosimilitud (emv) dep, p. Es decir, hallar el valor p que maximiza la funcionL(p; N0, x0). Notese que encontrar el valor p que maximizala funcion L(p; N0, x0) es equivalente a encontar el valor pque minimiza la funcion -log[L(p; N0, x0)] (logverosimili-tud). Se recomienda usar la funcion nlm().

4. Definir la funcion de verosimilitud relativa de p,

R(p; N0, x0) =L(p; N0, x0)L(p; N0, x0)

,

donde p es el estimador de maxima verosimilitud de p. Notese

que R(p; N0, x0) no requiere el calculo de

(N0

x0

), el cual puede

causar problemas computacionales cuando N0 es grande conrespecto a x0.Nota: Muchas veces es computacionalmente convenienteprogramar la verosimilitud relativa en terminos de la logverosimil-itud,

R(p; N0, x0) = exp[logL(p; N0, x0) − logL(p; N0, x0)

].

5. Calcula los valores de p que cumplen que R(p; N0, x0) = c,donde 0 ≤ c ≤ 1 es un valor fijo y conocido. Se recomiendaprogramar una nueva funcion R(p; N0, x0)−c y encontrar susraices empleando la funcion uniroot(). Usar c = 0.15.

Escribe tu propia version del Programa08 y grabalo en tu carpetade trabajo.

Page 39: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

8.2 Ejemplo: Funcion de verosimilitud Exponencial (λ) 33

8.2 Ejemplo: Funcion de verosimilitud Ex-ponencial (λ)

Supongase que se tiene la siguiente funcion de λ:

L(λ; x1, ..., xn) =

(1λ

)n

exp

(−∑n

i=1 xi

λ

),

donde λ > 0 y x0 = (x1, ..., xn) es un vector de cantidades fijasy conocidas. Notese que se trata del producto de densidades ex-ponenciales; pero visto como funcion del parametro λ = E[X]. Elvector x0 = (x1, ..., xn) ya fue observado. Esta funcion sera llamadafuncion de verosimilitud de λ.

1. Definir la funcion L(λ; x0) en el lenguaje R.

2. Evaluar la funcion L(λ; x0) en λ = 10. De aquı en adelanteusar x0 = (1.51, 9.31, 30.74, 7.48, 1.01).

3. Encontrar el estimador de maxima verosimilitud (emv) deλ, λ. Es decir, hallar el valor λ que maximiza la funcionL(λ; x0). Notese que encontrar el valor λ que maximiza lafuncion L(λ; x0) es equivalente a encontar el valor λ queminimiza la funcion -log[L(λ; x0)]. Se recomienda usar lafuncion nlm().

4. Definir la funcion de verosimilitud relativa de λ,

R(λ; x0) =L(λ; x0)

L(λ; x0),

donde λ es el estimador de maxima verosimilitud de λ.Nota: Se recomienda programar la verosimilitud relativa deλ en terminos de la logverosimilitud de λ como en el ejerci-cio anterior.

Page 40: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

34 Definir, evaluar y maximizar funciones

5. Calcula los valores de λ que cumplen que R(λ; x0) = c,donde 0 ≤ c ≤ 1 es un valor fijo y conocido. Se recomiendaprogramar una nueva funcion R(λ; x0) − c y encontrar susraices empleando la funcion uniroot(). Usar c = 0.15.

Escribe tu propia version del Programa9 y grabalo en tu carpetade trabajo.

8.3 Ejemplo: Funcion de verosimilitud Log-normal (μ, σ)

Supongase que se tiene la siguiente funcion de (μ, σ):

L(μ, σ; x0) =n∏

i=1

1√2πσxi

exp

{− 1

2σ2

[log(xi) − μ]2

}

= C ∗(

)n

exp

⎧⎪⎪⎨⎪⎪⎩−1

2σ2

n∑i=1

[log(xi) − μ]2

⎫⎪⎪⎬⎪⎪⎭ ,donde μ ∈ R, σ > 0 y C es una constante que no depende de losparametros μ y σ. Notese que se trata del producto de densidadeslognormales; pero visto como funcion de los parametros μ y σ. Elvector x0 = (x1, ..., xn) ya fue observado. Esta funcion sera llamadafuncion de verosimilitud lognormal de μ y σ.Nota: Por simplicidad, considera a la funcion de verosimilitudlognormal de (μ, σ) como:

L(μ, σ; x0) =

(1σ

)n

exp

⎧⎪⎪⎨⎪⎪⎩−1

2σ2

n∑i=1

[log(xi) − μ]2

⎫⎪⎪⎬⎪⎪⎭ ,

1. Definir la funcion -log[L(μ, σ; x0)

]en el lenguaje R.

2. Evaluar la funcion -log[L(μ, σ; x0)

]en (μ, σ) = (1, 1). De

aquı en adelante usar x0 = (0.83, 4.53, 2.84, 1.14, 1.53, 3.47,9.74, 4.81, 11.07, 2.68).

Page 41: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

8.3 Ejemplo: Funcion de verosimilitud Lognormal (μ, σ) 35

3. Encontrar el estimador de maxima verosimilitud (emv) de μy σ, (μ, σ). Es decir, hallar los valores μ y σ que maximizanla funcion L(μ, σ; x0). Notese que encontrar los valores dede μ yσ que maximizan la funcion L(μ, σ; x0) es equivalentea encontar los valores de μ y σ que minimizan la funcion-log

[L(μ, σ; x0)

](logverosimilitud). Se recomienda usar la

funcion nlm().

Escribe tu propia version del Programa10 y grabalo en tu carpetade trabajo.

Page 42: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

36 Definir, evaluar y maximizar funciones

Page 43: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Capıtulo 9

Superficies, Contornos yperfiles de funciones

Aquı se muestra como graficar superficies, contornos y perfiles defunciones enR2. Se presenta un ejemplo para el caso Normal(μ, σ).Vease Programa11.

9.1 Ejemplo: Funcion de verosimilitud Nor-mal (μ, σ)

Supongase que se tiene la siguiente funcion de μ y σ:

L(μ, σ; x) =n∏

i=1

1√2πσ

exp

[− 1

2σ2(xi − μ)2

],

donde μ ∈ R, σ > 0. Notese que se trata del producto de den-sidades normales; pero visto como funcion de los parametros μ yσ. El vector x = (x1, ..., xn) ya fue observado. Esta funcion serallamada funcion de verosimilitud normal de μ y σ.

1. Graficar la funcion de verosimilitud relativa de μ y σ. Es

Page 44: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

38 Superficies, Contornos y perfiles de funciones

decir, la superficie de verosimilitud. El vector que contienela muestra observada se presenta en Programa11.

2. Graficar los contornos de la verosimilitud relativa de μ y σ.

3. Graficar la funcion de verosimilitud perfil relativa de μ.

4. Graficar la funcion de verosimilitud perfil relativa de σ.

Nota (Superficies): Para graficar una superficie se recomiendadefinir la funcion de verosimilitud relativa de μ y σ de manera vec-torial. Es decir, considerar a μ y σ como vectores de la misma di-mension y en consecuencia la funcion de verosimilitud relativa deμ y σ produce una matriz, donde la fila i y columna j correspondea la relativa evaluada en μ[i] y σ[ j], respectivamente. Ejemplo:

Relativamusigma<-function(vmu,vsigma,datos){n<-length(datos)MV<-0for(i in 1:n){MV<-MV+(log(1/vsigma)-0.5*((datos[i]-vmu)ˆ2)/vsigmaˆ2)}y<-exp(MV-max(max(MV)))y}

Luego, instalar la librerıa lattice y usar la funcion de R llamadawireframe.

Nota (Contornos): Para graficar contornos se recomienda usarla funcion outer y contour.

Nota (Perfiles): Para el calculo de las perfiles se considerarauna expresion simple de la funcion de verosimilitud de μ y σ

Page 45: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

9.1 Ejemplo: Funcion de verosimilitud Normal (μ, σ) 39

puesto que para el computo es adecuado:

L(μ, σ; x) =n∏

i=1

1√2πσ

exp

[− 1

2σ2(xi − μ)2

]

= C ∗(

)n

exp

⎡⎢⎢⎢⎢⎢⎣− 12σ2

n∑i=1

(xi − μ)2

⎤⎥⎥⎥⎥⎥⎦ ,

Definicion: La perfil de μ es la silueta que se observa cunadola funcion z = L(μ, σ; x) se proyecta sobre en el plano μ × Z. Ladefinicion matematica es:

LP (μ; x) = maxσ|μ

L (μ, σ; x) ,

Los pasos para el calculo computacional de la perfil de μ seran lossiguientes. Primero, se define la menos logverosimilitud de μ y σ;pero considerando a μ fijo.

MenosLogLsigmamufijo<-function(vec,datos,vmu){vsigma<-vec[1]if(vsigma>0){n<-length(datos)S2<-sum((datos-vmu)ˆ2)z<-n*log(1/vsigma)-(0.5*S2/vsigmaˆ2)y<–zy}else{y<-10ˆ100y}}

Page 46: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

40 Superficies, Contornos y perfiles de funciones

Luego, se mediante la instruccion for se minimiza la funcionMenosLogLsigmamufijo para cada valor fijo de μ[i] y se guardaen un vector el valor mınimo de la funcion; pero multiplicado pormenos uno. Es decir, el vector contiene el valor mas alto de lalogverosimilitud para cada valor fijo μ[i]. Posteriormente, se cal-cula la verosimilitud relativa perfil de μ dividiendo el vector entresu maximo.

Para calcular la perfil de σ se procede de forma analoga.

Escribe tu propia version del Programa9 y grabalo en tu car-peta de trabajo.

9.2 Tarea Final

Supongase que se tiene la siguiente funcion de (μ, σ):

L(μ, σ; x0) =n∏

i=1

1√2πσxi

exp

{− 1

2σ2

[log(xi) − μ]2

}

= C ∗(

)n

exp

⎧⎪⎪⎨⎪⎪⎩−1

2σ2

n∑i=1

[log(xi) − μ]2

⎫⎪⎪⎬⎪⎪⎭ ,donde μ ∈ R, σ > 0 y C es una constante que no depende de losparametros μ y σ. Notese que se trata del producto de densidadeslognormales; pero visto como funcion de los parametros μ y σ. Elvector x0 = (x1, ..., xn) ya fue observado. Esta funcion sera llamadafuncion de verosimilitud lognormal de μ y σ.Nota: Por simplicidad, considera a la funcion de verosimilitudlognormal de (μ, σ) como:

L(μ, σ; x0) =

(1σ

)n

exp

⎧⎪⎪⎨⎪⎪⎩−1

2σ2

n∑i=1

[log(xi) − μ]2

⎫⎪⎪⎬⎪⎪⎭ ,1. Simula n = 30 observaciones de una variable aleatoria Log-

normal con parametros μ = 1 y σ = 0.7.

Page 47: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

9.2 Tarea Final 41

2. Calcula las estadısticas descriptivas.

3. Grafica el histograma.

4. Calcula los estimadores de maxima verosimilitud de μ y σ.

5. Ajusta la densidad Lognormal al histograma (usa los valoresestimados para los parametros).

6. Grafica de superficie de la verosimilitud relativa de μ y σ.

7. Grafica los contornos de la verosimilitud relativa de μ y σ.

8. Grafica la perfil de μ.

9. Entrega un reporte (en un archivo PDF o Word) condel codigo y los resultados obtenidos al ejecutar dichocodigo. Ademas, al final del archivo escribe un comen-tario breve sobre el curso de R.Nombre del archivo: TrabajoFinalCursoR Nombre Apellido

Page 48: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 1

#############################################################Programa01 : Asignar valores a objetos y borrar objetos ## en memoria ##Elaborado por: José A. Montoya ([email protected]) ## 20/05/2010 #############################################################

x<-1 #Asigna al objeto x el valor 1X<-100 #Asigna al objeto X el valor 100x #Muestra el contenido del objeto xX #Muestra el contenido del objeto X#R reconoce mayúsculas y minúsculas

x<-2 #Asigna al objeto x el valor 2X<-200 #Asigna al objeto X el valor 200x #Muestra el contenido del objeto xX #Muestra el contenido del objeto X#Si objeto ya existe, su valor anterior es borrado después#de la asignación

ls() #Lista los objetos en memoriarm(x,X) #Borra los objetos x, Xls()xX

#Se recomienda colocar al inicio de cada programa la#siguiente instrucción: rm(list=ls()) #Borra todos los objetos en memoria

#Tarea 1: Mostrar que la instrucción anterior# borra todos los objetos en memoria

Page 49: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 1

#############################################################Programa02 : Definición de diferentes tipos de objetos ## en R. Además se muestran sus atributos ##Elaborado por: José A. Montoya ([email protected]) ## 24/05/2010 #############################################################

###############TIPOS DE OBJETOS EN R########################

x<-c(0,1,2.5,-100,9,20) #Vector numérico xx #Contenido del vector xy<-c("A","B","C","D") #Vector de caracteres yy #Contenido del vector yz<-c(T,T,F,F) #Vector lógico zz #Contenido del vector zx[4] #Cuarto elemento del vector x

Mx<-matrix(x,nrow=3, ncol=2, byrow=FALSE ) #Matriz de 3x2 por columnaMx #Contenido de la matriz MxMy<-matrix(y,nrow=2, ncol=2, byrow=F ) #Matriz de 2x2 por columnaMy #Contenido de la matriz MyMz<-matrix(z,nrow=2, ncol=2, byrow=T ) #Matriz de 2x2 por filaMz #Contenido de la matriz MzMx[2,1] #Fila 2 y columna 1 de Mx Mx[1,] #Fila 1 de MxMx[,2] #Columna 2 de MxMx[1:2,1] #Fila 1 y 2 de la columna 1 de Mx

Ma<-array(c(1,2,3,4,5,6,7,8,9,10,11,12), dim=c(2,2,3) ) #Arreglo de dimensión 2x2x3Ma[,,1] #Matriz 2x2 para la posición 1Ma[,,2] #Matriz 2x2 para la posición 2Ma[,,3] #Matriz 2x2 para la posición 3

F<-factor(c("Hombre","Hombre","Mujer", "Mujer","Hombre"), ) #Objeto tipo factorsummary(F) #Frecuencias de categorías

D<-data.frame(c(0,1), c("Rojo","Amarillo"), c(TRUE,FALSE)

Page 50: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 2

) #Objeto tipo data.frameD #Muestra el contenido de Dnames(D)<-c("X1", "X2", "X3") #Asigna nombres a las columnas de DD #D tiene nombres en las columnas

L<-list(x,Mx,D) #Lista de tres diferentes objetosL[[1]] #Muestra el objeto 1L[[2]] #Muestra el objeto 2L[[3]] #Muestra el objeto 3

DT<-data.frame(c(0.2875,0.3000,0.3195,0.3180,0.3415, 0.3725,0.5550,0.7825,0.7475,0.5520, 0.2860,0.2620,0.3270,0.3960,0.4060), c(16.0484,17.1786,18.7016,23.4083,24.7016, 28.4417,30.2742,28.9677,27.9000,23.2016, 18.2000,13.0323,14.8710,15.0357,15.9032) ) #Objeto tipo data.framenames(DT)<-c("NDVI", "Temp" ) #Nombres a las columnas de DTDT #Muestra el contenido de DTtsData<-ts(DT, frequency=12 ) #Convierte DT a objeto tstsData #Muestra el objeto serie de tiempo

#################ATRIBUTOS DE OBJETOS EN R##################

mode(x) #x es numérico (x es un vector)length(x) #x tiene 6 elementos

mode(Mx) #Mx es numérico (Mx es una matriz)length(Mx) #Mx tiene 6 elementos

mode(Ma) #Ma es numérico (Ma es un arreglo)length(Ma) #Ma tiene 12 elementos

mode(F) #F es numérico (F es un factor)length(F) #F tiene 5 elementos

mode(D) #D es list (D es un data.frame)length(D) #D tiene 3 elementos

Page 51: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 3

mode(L) #L es list (L es una lista)length(L) #L tiene 3 elementos

#Tarea 2: Crea un vector de 12 elementos.#Convirte el vector a una matriz de 3x4.#Convierte el mismo vector a un arreglo de 3x2x2.#Por último, crea una lista con los objetos anteriores.

Page 52: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 1

#############################################################Programa03 : Manejo de archivo de datos. Leer y guardar ## datos en formato texto y Excel. ##Elaborado por: José A. Montoya ([email protected]) ## 31/05/2010 #############################################################

rm(list=ls(all=TRUE))###############LEER ARCHIVO DE TEXTO########################

DatosPMA<-read.table("s26032PrecipMaxAnual.txt", header=TRUE, sep="" ) #Lee archivo de texto y lo almacena #en el objeto DatosPMA (data.frame) #La primera línea contiene el #nombre de las variables. Los datos #son leidos considerando espacios en #blanco como separación entre ellos

DatosPMA #Primera columna el año y segunda #columana el nivel de precipitación #máximo

##################LEER ARCHIVO EXCEL (xls)##########################################NO FUNCIONA EN VERSIONES ACTUALES DE R ¿Porqué?

#install.packages("xlsReadWrite") #Instala la librería #xlsReadWrite que permite #leer archivos Excel

#library(xlsReadWrite) #Activar la librería

#NivelGlucosa<-read.xls("DatosGlucosa2007Nogales.xls", sheet=1, type="data.frame" ) #Lee la primera hoja del #archivo Excel. La guarda #como tipo data.frame

#NivelGlucosa #Primera columna Glucosa #Segunda columna Edad #Tercera columna el sexo

##################LEER ARCHIVO EXCEL (csv)########################

NivelGlucosa<-read.csv("DatosGlucosa2007Nogalescsv.csv", sep = ";") #Lee archivo Excel (csv)

NivelGlucosa #Primera columna Glucosa #Segunda columna Edad #Tercera columna el sexo

###############GUARDAR ARCHIVO DE TEXTO#####################

write.table(DatosPMA, file="PrecipMaxAnual.txt", sep = " ",

Page 53: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 2

col.names = TRUE, row.names = FALSE ) #Guarda la información #contenida en el objeto #DatosPMA en un archivo de #texto PrecipMaxAnual.txt #el cual es ubicado en el #directorio de trabajo. #Guadra el nombre de las #variables (columnas). No #guarda nombre de filas

##################GUARDAR ARCHIVO EXCEL########################

write.xls(DatosPMA, file="PrecipMaxAnual.xls", colNames = TRUE, sheet = 1, rowNames = FALSE ) #Guarda la información #contenida en el objeto #DatosPMA en la Hoja 1 de #un archivo Excel llamado #PrecipMaxAnual.xls (véase #directorio de trabajo). #Guadra el nombre de las #variables (columnas). No #guarda nombre de filas

#Tarea 3:#(a) Crea una pequeña base de datos (archivo Excel o texto) y#léela usando alguna de las instrucciones anteriores. Luego,#modifica parte de la información y gúarda la base de datos#modificada como un archivo Excel. #(b) Guarda el objeto DatosPMA como un archivo de objetos#de R dándole el nombre PrecipMaxAnualObjR.Rdata. Para esta#tarea usa la función save.#Luego, borra todos los objetos en memoria y verifica que el#objeto DatosPMA no se encuentra en memoria.#Ahora, carga los datos del archivo PrecipMaxAnualObjR.Rdata#en la memoria de R usando la función load.#Luego, verifica que la información del objeto DatosPMA ya se#encuentra cargada en memoria.#Para más información sobre las funciones load y save usa la #ayuda de R: help("load") y help("save").

Page 54: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 1

#############################################################Programa04 : Variables aleatorias: Densidad, ## distribución, cuantiles y simulación. ##Elaborado por: José A. Montoya ([email protected]) ## 01/06/2010 #############################################################

rm(list=ls(all=TRUE))

################VARIABLES ALEATORIAS DISCRETAS##############

#################POISSONvlambda<-30 #Valor esperado

fP<-dpois(25,lambda=vlambda) #ProbabilidadfPFP<-ppois(25,lambda=vlambda) #DitribuciónFPQP<-qpois(0.95,lambda=vlambda) #Cuantil 0.95QPxP<-rpois(50,lambda=vlambda) #Muestra simulada (n=50)xP

#################BINOMIALvN<-100 #Número de experimentosvp<-0.3 #Probabilidad de éxito

fB<-dbinom(25,size=vN,prob=vp) #ProbabilidadfBFB<-pbinom(25,size=vN,prob=vp) #DitribuciónFBQB<-qbinom(0.95,size=vN,prob=vp) #Cuantil 0.95QBxB<-rbinom(50,size=vN,prob=vp) #Muestra simulada (n=50)xB

#################BINOMIAL NEGATIVAvr<-100 #Éxitos a conseguirvp<-0.9 #Probabilidad de éxito

fBN<-dnbinom(25,size=vr,prob=vp) #ProbabilidadfBNFBN<-pnbinom(25,size=vr,prob=vp) #DitribuciónFBNQBN<-qnbinom(0.95,size=vr,prob=vp) #Cuantil 0.95QBNxBN<-rnbinom(50,size=vr,prob=vp) #Muestra simulada (n=50)xBN

################VARIABLES ALEATORIAS CONTINUAS##############

#################UNIFORMEva<-0 #Valor mínimovb<-1 #Valor máximo

fU<-dunif(0.5,min=va,max=vb) #DensidadfU

Page 55: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 2

FU<-punif(0.5,min=va,max=vb) #DitribuciónFUQU<-qunif(0.95,min=va,max=vb) #Cuantil 0.95QUxU<-runif(50,min=va,max=vb) #Muestra simulada (n=50)xU

#################EXPONENCIALvalpha<-10 #Parámetro escala=E[X]

fE<-dexp(10,rate=1/valpha) #DensidadfEFE<-pexp(10,rate=1/valpha) #DitribuciónFEQE<-qexp(0.95,rate=1/valpha) #Cuantil 0.95QExE<-rexp(50,rate=1/valpha) #Muestra simulada (n=50)xE

#################NORMALvmu<-0 #Parámetro localizaciónvsigma<-1 #Parámetro escala

fN<-dnorm(0,mean=vmu,sd=vsigma) #DensidadfNFN<-pnorm(0,mean=vmu,sd=vsigma) #DitribuciónFNQN<-qnorm(0.95,mean=vmu,sd=vsigma) #Cuantil 0.95QNxN<-rnorm(50,mean=vmu,sd=vsigma) #Muestra simulada (n=50)xN

#Tarea 4: Simula n=100 observaciones de una variable aleatoria:#(a) Hipergeométrica#(b) Gamma#(c) Gumbel#Nota: Para el caso (c) primero debes activar la librería evd.

Page 56: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 1

#############################################################Programa05 : Análisis exploratorio de datos. ## Estadísticas y gráficas descriptivas ##Elaborado por: José A. Montoya ([email protected]) ## 06/06/2010 #############################################################

rm(list=ls(all=TRUE))

#################ESTADÍSTICAS DESCRIPTIVAS##################

DatosPMA<-read.table("s26032PrecipMaxAnual.txt", header=TRUE, sep="" ) y<-DatosPMA[,2] #El objeto y contiene los datos de #precipitación máxima anual

numdedatos<-length(y) #Número de datos (tamaño de muestra)numdedatosminimoy<-min(y) #Mínimo valor de yminimoymaximoy<-max(y) #Máximo valor de ymaximoymediay<-mean(y) #Promediomediaymedianay<-median(y) #Mediana muestralmedianayvarianzay<-var(y) #Varianza muestral (usa n-1)varianzaydesviaciony<-sd(y) #Desviación estándar (usa n-1)desviacionyEstOrdeni<-sort(y)[30] #Estadística de orden i=30EstOrdeniRangoy<-maximoy-minimoy #Rango muestralRangoy

###################GRÁFICAS DESCRIPTIVAS####################

library(xlsReadWrite)

#######HISTOGRAMA (NIVEL GLUCOSA MUJERES ENTRE 15 Y 70 AÑOS)NivelGlucosa<-read.xls("DatosGlucosa2007Nogales.xls", sheet=1, type="data.frame" ) #Lee los datosNivelGlucosa #Datos de niveles de glucosa, #edad y sexoNGMujeres<-subset(NivelGlucosa, Edad>15 & Edad<70 & Sexo=="FEMENINO", select=c(mg.dL) ) #Datos de niveles de glucosa #de mujeres entre 15 y 70 añosx<-NGMujeres[,1] #Vector numérico x con los #datos de glucosa de mujeres #entre 15 y 70 años

###GRÁFICA 1: SIN CONTROL DE ESPACIAMIENTO EN LOS EJES

Page 57: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 2

hist(x, #Vector de datos nclass=40, #Número de casillas freq=TRUE, #Y=Frecuencia Absoluta main=paste("Histograma"), #Titulo xlab="Nivel Glucosa", #Etiqueta eje X ylab="Frecuencia Observada", #Etiqueta eje Y cex.main=2, #Tamaño de letra: Título cex.lab=1.5, #Tamaño: Etiquetas de ejes cex.axis=1.2, #Tamaño: Marcas de ejes xlim=c(0,500), #Límites eje X ylim=c(0,500), #Límites eje Y )

###GRÁFICA 2: CONTROL DEL ESPACIAMIENTO EN LOS EJES hist(x, nclass=40, freq=TRUE, main=paste("Histograma"), xlab="Nivel Glucosa", ylab="Frecuencia Observada", cex.main=2, cex.lab=1.5, xlim=c(0,500), ylim=c(0,500), axes=F )axis(1, #Eje X at=seq(0,500, by=50), #Espaciamiento labels=seq(0,500, by=50), #Marcas cex.axis=1.2 #Tamaño de las marcas )axis(2, #Eje Y cex.axis=1.2 #Tamaño de las marcas )

###GRÁFICA 3: AJUSTANDO UNA DENSIDAD NORMAL AL HISTOGRAMAhist(x, nclass=40, freq=FALSE, #Y=Frecuencia Relativa main=paste("Histograma"), xlab="Nivel Glucosa", ylab="Frecuencia Observada", cex.main=2, cex.lab=1.5, cex.axis=1.2, xlim=c(0,500), ylim=c(0,0.03) )curve(dnorm(x,mean=111,sd=55), #Curva Normal col=2, #Color de la curva lty=2, #Tipo de línea lwd=2, #Grueso de línea add=TRUE #Añade la curva )

########################GRÁFICA DE BARRAS

Page 58: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 3

DatosDefectos<-read.xls("DatosDefectosSoftware.xls", sheet=1, type="data.frame" ) #Lee los datosDatosDefectosdatos<-as.matrix(DatosDefectos) #Convierte los datos a #una matrizdatosbarplot(datos, #Datos xlab="Actividad", #Etiqueta eje X ylab="Defectos", #Etiqueta eje Y cex.lab=1.5, #Tamaño: Etiquetas de ejes cex.names=1, #Tamaño: Marcas del eje X cex.axis=1.2, #Tamaño: Marcas de eje Y beside=TRUE, #Barras yuxtapuestas col=c("lightblue","mistyrose","lightcyan"), #Colores legend=rownames(datos), #Legenda: Nombre de filas ylim=c(0,50) #Límites eje Y )

########################GRÁFICA DE X versus YDatosPMA<-read.table("s26032PrecipMaxAnual.txt", header=TRUE, sep="" ) #Leer datosDatosPMA Tiempo<-DatosPMA[,1] #Variable para el eje XPMaxAH<-DatosPMA[,2] #Variable para el eje Y

vxmin<-min(Tiempo) #Valor mínimo para eje Xvxmax<-max(Tiempo) #Valor máximo para eje X

vymin<-min(PMaxAH) #Valor mínimo para eje Yvymax<-max(PMaxAH) #Valor máximo para eje Y

plot(Tiempo,PMaxAH, #Vectores X y Y type="b", #Tipo: puntos y lineas pch=19, #Tipo de símbolo col="blue", #Color de líneas y puntos xlab="Años", ylab="Precip. máxima (mm)", cex.lab=1.5, cex.axis=1.2, ylim=c(vymin,vymax), xlim=c(vxmin,vxmax) )

legend("topleft", #Ubicación:Derecha-Arriba c("s26032"), #Legenda pch=19, #Símbolo col=c("blue"), #Color box.lty=0 #No aparece caja de leyenda )

title("Precipitación máxima anual", cex.main=1.8, #Tamaño de letra font.main=1, #Tipo de letra col.main= "black" #Color de letra )

Page 59: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 4

#Tarea 5: (a) Realiza un histograma del nivel de glucosa#de hombres entre 15 y 70 años.#(b) Grafica el peso versus la altura de mujeres de#Sonora dados en el archivo PesoAlturaMujeresSonora.xls.#(c) Simula 50 observaciones de una variable aleatoria normal#con media mu=20 y varianza=2. Luego, realiza un histograma con#los datos simulados y ajústa una densidad normal con media 20 y#varianza 2.

Page 60: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 1

#############################################################Programa06 : Operaciones básicas con vectores y matrices## También operaciones lógicas. ##Elaborado por: José A. Montoya ([email protected]) ## 09/06/2010 #############################################################

rm(list=ls(all=TRUE))

############################VECTORES########################

##########REPETIR UN VECTORvec1<-c(1,2,3,4,5)vec2<-c(1,-2,3,-4,5)rep(vec1,times=4)rep(vec2,times=5)rep(0,times=10)

##########GENERAR UNA SECUENCIAseq(from=0,to=1,by=0.01)

##########UNIR VECTOREScbind(vec1,vec1) #Por columnasrbind(vec1,vec1) #Por filas

##########SUMA ACUMULADO DE LOS ELEMENTOS DE UN VECTORvec1cumsum(vec1)

##########IGUAL: PRODUCE VERDAD O FALSOvec1==vec2

##########DIFERENTE: PRODUCE VERDAD O FALSOvec1!=vec2

############################MATRICES########################

X<-matrix(c(1,2,3,4),ncol=2)Y<-matrix(c(5,6,7,8,9,10),ncol=3)Z<-matrix(c(10,20,30,40),ncol=2)

XYZ

##########SUMAX+ZX+5

##########RESTAX-ZX-5

##########PRODUCTOX%*%YX*ZX*3

##########POTENCIA

Page 61: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 2

Z^XY^2

##########COCIENTEZ/XY/2

##########TRANSPUESTAt(Y)

##########INVERSAsolve(X)X%*%solve(X)

##########DETERMINANTEdet(X)

##########MATRIZ DIAGONAL (IDENTIDAD)diag(4)

##########MATRIZ DE CEROSnfilas<-3mcolumnas<-4vec<-rep(0,times=nfilas*mcolumnas) matrix(vec,ncol=mcolumnas)

############################LÓGICAS########################

x<-c(-1,0,1)y<-c(-2,0,2)x>0 #Vector lógico

##########VERDAD: SI TODOS SON VERDADall(x>0)

##########VERDAD: SI ALGUNO ES VERDADany(x>0)

#Tarea 6: (a) Investiga el funcionamiento de: cumprod(),#cummax() y cummin().#(b) Crea una matriz identidad 10x10 y agrégale una primera#columna con el valor 1. Usa funciones mostradas en esta#práctica.

Page 62: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 1

#############################################################Programa07 : Estructuras de programación en R: for, ## while, if-else, repeat, whicth ##Elaborado por: José A. Montoya ([email protected]) ## 12/06/2010 #############################################################

rm(list=ls(all=TRUE))

##############################FOR###########################

######EVALUAR UNA EXPRESIÓN E IMPRIMIRLA EN PANTALLA

for (i in 1:10){print(choose(10,i))}

######EVALUAR UNA EXPRESIÓN, GUARDAR EL RESULTADO Y GRAFICAR

p<-seq(from=0,to=1,by=0.001) #Secuencia de valores (rejilla)n<-length(p) #Número de elementos de pLp<-c() #Se crea un vector sin elementos for(i in 1:n) #i toma valores 1,2,3,...,n{Lp[i]<-p[i]^5*(1-p[i])^5 #Evalua la expresión para cada i}Rp<-Lp/max(Lp) #Estandariza Lp, 0<=Rp<=1plot(p,Rp,type="l") #Grafica cada punto (p[i],Rp[i]) #y los une con una línea

##############################WHILE#########################

######IMPRIME EN PANTALLA LOS NÚMEROS NATURALES MENORES QUE 5

z<-1 #z toma el valor inicial 1while(z<5) #Mientras z<5, el valor de z{ #se imprime en pantallaprint(z)z<-z+1}

######CALCULAR LOS VALORES DE p TAL QUE fx==c (APROXIMACIÓN)

c<-0.15

######CASO 1: VALOR INFERIOR

k<-1 #k toma el valor inicial 1while(Rp[k]<c ) #Mientras Rp[k]<c, el valor de k { #se incrementa. En caso contrario, #finaliza el ciclok<-k+1

}LimiteInferior<-p[k-1] #Valor de p buscado LimiteInferior

Page 63: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 2

######CASO 2: VALOR SUPERIOR

k<-n #k toma el valor inicial nwhile(Rp[k]<c) #Mientras Rp[k]<c, el valor de k { #decrece. En caso contrario, #finaliza el ciclok<-k-1

}LimiteSuperior<-p[k+1] #Valor de p buscado LimiteSuperior

######GRAFICAR LOS LIMITES E INCLUYE SU VALOR

plot(p,Rp,type="l") #Gráfica de Rpsegments( #Une dos puntos con una línea LimiteInferior,0, #Primer punto LimiteInferior,c, #Segundo punto lty=1, #Tipo de línea lwd=1, #Grosor de línea col="blue" #Color de la línea ) text( #Insertar texto 0.25,0.075, #Ubicación: Coordenadas X y Y labels=LimiteInferior, #Texto: Valor límite inferior cex=1.2 #Tamaño texto )segments(LimiteSuperior,0, LimiteSuperior,c, lty=2, lwd=2, col="green" ) text(0.75,0.075,labels=LimiteSuperior,cex=1.2)

############################IF-ELSE#########################

######GUARDAR PARES E IMPARES DEL 1 AL M=10

M<-10 #Se inicializa Mpares<-c() #Se crea un vector sin elementosimpares<-c() #Vector sin elementos (vacio)for(i in 1:M) #i toma valores 1,2,...,M{ if(i%%2==0) #Si al dividir i entre 2 sale 0 { pares<-c(pares,i) #Se concatenan los números pares } else #En caso contrario { impares<-c(impares,i) #Concatenar los números impares }}paresimpares

Page 64: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 3

############################REPEAT#########################

######IMPRIME EN PANTALLA LOS NÚMEROS NATURALES MENORES QUE 5######NOTA QUE PRODUCE EL MISMO RESULTADO QUE WHILE

i<-1 #i toma el valor inicial 1repeat #Inicia ciclo de repetición{ if(i<5) #Si i<5 entonces se imprime i. Además { #se incrementa i en una unidad print(i) i<-i+1 } else #En caso contrario, se rompe el ciclo { #de repetición break }}

################################SWITCH###########################

######CALCULAR LA MEDIA, MEDIANA Y VARIANZA SEGÚN LA SELECCIÓN

datos<-rnorm(100,0,1) #muestra normal simulada de tamaño 100

######CASO 1: SE CALCULA LA MEDIAopcion<-1switch(opcion, media=mean(datos), mediana=median(datos), varianza=var(datos) )mean(datos)

######CASO 2: SE CALCULA LA MEDIANAopcion<-2switch(opcion, media=mean(datos), mediana=median(datos), varianza=var(datos) )median(datos)

######CASO 3: SE CALCULA LA VARIANZAopcion<-3switch(opcion, media=mean(datos), mediana=median(datos), varianza=var(datos) )var(datos)

Page 65: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 4

#Tarea 7: #(a)Piensa en aplicaciones simples de cada una de las #estructuras de programación mostradas aquí. Intenta#programarlas. #(b)Usa la función menu() para construir una barra de#opciones. La primera opción proporciona un histograma.#La segunda opción produce una gráfica de X versus Y.#Usa los datos de Programa05.

op<-menu(c("Histograma","Gráfica X versus Y"), graphics = TRUE, title = "Barra de opciones")library(xlsReadWrite)switch(op,{#######################HISTOGRAMANivelGlucosa<-read.xls("DatosGlucosa2007Nogales.xls", sheet=1, type="data.frame" ) #Lee los datos #edad y sexoNGMujeres<-subset(NivelGlucosa, Edad>15 & Edad<70 & Sexo=="FEMENINO", select=c(mg.dL) ) #Datos de niveles de glucosa #de mujeres entre 15 y 70 añosx<-NGMujeres[,1] #Vector numérico x con los #datos de glucosa de mujeres #entre 15 y 70 años

Histrograma=hist(x, #Vector de datos nclass=40, #Número de casillas freq=TRUE, #Y=Frecuencia Absoluta main=paste("Histograma"), #Titulo xlab="Nivel Glucosa", #Etiqueta eje X ylab="Frecuencia Observada", #Etiqueta eje Y cex.main=2, #Tamaño de letra: Título cex.lab=1.5, #Tamaño: Etiquetas de ejes cex.axis=1.2, #Tamaño: Marcas de ejes xlim=c(0,500), #Límites eje X ylim=c(0,500) #Límites eje Y )},{ ########################GRÁFICA DE X versus YDatosPMA<-read.table("s26032PrecipMaxAnual.txt", header=TRUE, sep="" ) #Leer datos Tiempo<-DatosPMA[,1] #Variable para el eje XPMaxAH<-DatosPMA[,2] #Variable para el eje Y

vxmin<-min(Tiempo) #Valor mínimo para eje X

Page 66: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 5

vxmax<-max(Tiempo) #Valor máximo para eje X

vymin<-min(PMaxAH) #Valor mínimo para eje Yvymax<-max(PMaxAH) #Valor máximo para eje Y

plot(Tiempo,PMaxAH, #Vectores X y Y type="b", #Tipo: puntos y lineas pch=19, #Tipo de símbolo col="blue", #Color de líneas y puntos xlab="Años", ylab="Precip. máxima (mm)", cex.lab=1.5, cex.axis=1.2, ylim=c(vymin,vymax), xlim=c(vxmin,vxmax) )

legend("topleft", #Ubicación:Derecha-Arriba c("s26032"), #Legenda pch=19, #Símbolo col=c("blue"), #Color box.lty=0 #No aparece caja de leyenda )

title("Precipitación máxima anual", cex.main=1.8, #Tamaño de letra font.main=1, #Tipo de letra col.main= "black" #Color de letra )})

Page 67: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 1

#############################################################Programa08 : Se define, evalua y maximiza la función de ## verosimilitud Binomial (N0,p). ##Elaborado por: José A. Montoya ([email protected]) ## 20/06/2010 #############################################################

rm(list=ls(all=TRUE))

##################VALORES FIJOS DE N0 Y x0##################vN0<-10 #Valor de N0vx0<-5 #Valor de x0

##############FUNCIÓN DE VEROSIMILITUD DE p#################Lp<-function(vec,N0,x0){p<-vec[1] #p es el primer y único elemento de vecy<-choose(N0,x0)*(p^x0)*(1-p)^(N0-x0)y}Lp(0.5,vN0,vx0) #Valor de Lp para p=0.5, N0=10 y x0=5

##############GRÁFICA DE LA FUNCIÓN Lp vp<-seq(0.1,0.9,0.01) #Valores de pvLp<-c() #Vector vacíofor(i in 1:length(vp)){vLp[i]<-Lp(vp[i],vN0,vx0) #Almacena valores de Lp}plot(vp,vLp,type="l") #Gráfica de Lp

#########FUNCIÓN MENOS LOG VEROSIMILITUD DE p###############MenosLogLp<-function(vec,N0,x0){p<-vec[1]z<-x0*log(p)+(N0-x0)*log(1-p)y<--zy}MenosLogLp(0.5,vN0,vx0) #Valor de MenosLogLp para #p=0.5, N0=10 y x0=5

##MINIMIZACIÓN DE LA FUNCIÓN MENOS LOG VEROSIMILITUD DE p###vp0<-0.4 #Valor inicial de p para la #optimización (minimización)

nlm(MenosLogLp,vp0,vN0,vx0) #nlm minimiza la función #MenosLogLp. Aparece un mensaje #de alerta puesto que el método #de minimización (tipo Newton) #evalua valores de p fuera de #su dominio

#Nota: A continuación se programa nuevamente la fución#MenosLogLp; pero considerando que 0<p<1 para evitar#problemas numéricos del método de minimización.

Page 68: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 2

MenosLogLp<-function(vec,N0,x0){p<-vec[1] if(p>0 & p<1) { z<-x0*log(p)+(N0-x0)*log(1-p) y<--z y } else { y<-10^100 y }}

MenosLogLp(0.5,vN0,vx0) #Valor de MenosLogLp para #p=0.5, N0=10 y x0=5

MenosLogLp(2,vN0,vx0) #Valor de MenosLogLp para #p=2, N0=10 y x0=5

nlm(MenosLogLp,vp0,vN0,vx0) #nlm minimiza la función #MenosLogLp. Nótese que ya no #se muestra en consola ningún #mensaje de alerta

ValoresOpt<-nlm(MenosLogLp,vp0,vN0,vx0) #Se alamcenan los #resultados de la #minimización ValoresOpt #Se muestran los resultados #de la minimización

MinimoMenosLogLp<-ValoresOpt$minimum #Mínimo de MenosLogLpemvp<-ValoresOpt$estimate #Valor de p donde la #función MenosLogLp #alcanza el mínimoVConvergencia<-ValoresOpt$code #Código de convergencia #del método. El valor 1 #indica convergencia

MinimoMenosLogLp #Mínimo de la funciónemvp #Valor donde se alcanza el mínimoVConvergencia #Código de convergencia

########NOTA: MINIMIZACIÓN USANDO LA FUNCIÓN optimize #######

optimize(MenosLogLp, interval=c(0.25,0.75), N0=vN0, x0=vx0, maximum=FALSE )

##############GRÁFICA DE LA FUNCIÓN MenosLogLp##############vp<-seq(from=0.1,to=0.9,by=0.01)

Page 69: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 3

vMenosLogLp<-c()for(i in 1:length(vp)){vMenosLogLp[i]<-MenosLogLp(vp[i],vN0,vx0)}plot(vp,vMenosLogLp,type="l")

#########FUNCIÓN DE VEROSIMILITUD RELATIVA DE p#############Relativap<-function(p,N0,x0,vemvp){y<-exp(-MenosLogLp(p,N0,x0)+MenosLogLp(vemvp,N0,x0))y}

Relativap(0.5,vN0,vx0,emvp) #Valor de Relativap para #p=0.5, N0=10 y x0=5. El emv #de p es emvp.

##############GRÁFICA DE LA FUNCIÓN RELATIVA DE p###########vp<-seq(from=0.1,to=0.9,by=0.01)vRelativap<-c()for(i in 1:length(vp)){vRelativap[i]<-Relativap(vp[i],vN0,vx0,emvp)}plot(vp,vRelativap,type="l")

######CALCULAR LOS VALORES DE p TAL QUE Relativap==c########

#########FUNCIÓN OBJETIVO#############fObjetivo<-function(p,N0,x0,vemvp,c){y<-Relativap(p,N0,x0,vemvp)-cy}

vc<-0.15Raiz1<-uniroot(fObjetivo, c(min(vp),emvp), N0=vN0, x0=vx0, vemvp=emvp, c=vc)LimiteInferior<-Raiz1$rootLimiteInferior

Raiz2<-uniroot(fObjetivo, c(emvp,max(vp)), N0=vN0, x0=vx0, vemvp=emvp, c=vc)LimiteSuperior<-Raiz2$rootLimiteSuperior

##############GRÁFICA DE LA FUNCIÓN RELATIVA DE p###########plot(vp,vRelativap,

Page 70: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 4

type="l", main="Titulo", xlab="p", ylab="Verosimilitud Relativa", cex.main=1.5, cex.axis=1.5, cex.lab=1.5, ylim=c(0,1), xlim=c(min(vp),max(vp)) )segments( #Une dos puntos con una línea LimiteInferior,0, #Primer punto LimiteInferior,vc, #Segundo punto lty=1, #Tipo de línea lwd=1, #Grosor de línea col="red" #Color de la línea ) text( #Insertar texto x=LimiteInferior, #Ubicación: Coordenadas X y=0 , #Ubicación: Coordenadas Y labels=round(LimiteInferior,3), #Redondeado a 3 decimales cex=1.2 #Tamaño texto )segments(LimiteSuperior,0, LimiteSuperior,vc, lty=1, lwd=1, col="red" ) text(x=LimiteSuperior, y=0, labels=round(LimiteSuperior,3), cex=1.2 )

#Tarea 8: #(a) Simula una observación x0 de una variable aleatoria#Binomial (N0,p0), donde N0=50 y p0=0.7. El emv de p ¿Se#encuentra cerca de p0? El intervalo que calculate,#[LimiteInferior,LimiteSuperior], ¿cubre al valor verdadero#de p (p0=0.7)?.#(b) Repite el proceso anterior M=10000 veces y calcula#la frecuencia con la que el intervalo cubre el verdadero#valor de p. Usa p= 0.4, 0.5 y 0.6.

Page 71: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 1

#############################################################Programa09 : Se define, evalua y maximiza la función de ## verosimilitud Exponencial con lambda=E[X]. ##Elaborado por: José A. Montoya ([email protected]) ## 20/06/2010 #############################################################

rm(list=ls(all=TRUE))

#######################VALOR FIJO DE x0#####################vx0<-c(1.51,9.31,30.74,7.48,1.01) #Valor de x0

#############FUNCIÓN DE VEROSIMILITUD DE lambda#############Llambda<-function(vec,x0){vlambda<-vec[1] #Primer y único elemento de vecn<-length(x0) #Tamaño de muestras<-sum(x0) #Suma de los datosy<-(1/vlambda)^n*exp(-s/vlambda)y}Llambda(10,vx0) #Valor de Llambda para lambda=0.5 y #x0=(1.51,9.31,30.74,7.48,1.01)

################GRÁFICA DE LA FUNCIÓN Llambda############### vlambda<-seq(1,50,0.1) vLlambda<-c() for(i in 1:length(vlambda)){vLlambda[i]<-Llambda(vlambda[i],vx0)}plot(vlambda,vLlambda,type="l")

#########FUNCIÓN MENOS LOG VEROSIMILITUD DE ###############MenosLogLlambda<-function(vec,x0){vlambda<-vec[1]n<-length(x0)s<-sum(x0)z<-n*log(1/vlambda)-(s/vlambda)y<--zy}MenosLogLlambda(10,vx0) #Valor de MenosLogLlambda #para lambda=10 y x0=vx0

###MINIMIZACIÓN DE LA MENOS LOG VEROSIMILITUD DE lambda###vlambda0<-15 #Valor inicial de lambda #para la minimización

VOpt<-nlm(MenosLogLlambda,vlambda0,vx0) #Se alamcenan los #resultados de la #minimización

Page 72: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 2

VOpt #Se muestran los resultados #de la minimización

MinMenosLogLlambda<-VOpt$minimum #Mínimo de MenosLogLlambda

emvlambda<-VOpt$estimate #Valor de lambda donde la #función MenosLogLlambda #alcanza el mínimo

VConvergencia<-VOpt$code #Código de convergencia #del método. El valor 1 #indica convergencia

MinMenosLogLlambda #Mínimo de la funciónemvlambda #Valor donde alcanza el mínimoVConvergencia #Código de convergencia

########NOTA: MINIMIZACIÓN USANDO LA FUNCIÓN optimize #######

optimize(MenosLogLlambda, interval=c(0.01,30), x0=vx0, maximum=FALSE )

############GRÁFICA DE LA FUNCIÓN MenosLogLlambda###########vlambda<-seq(from=1,to=50,by=0.1)vMenosLogLlambda<-c()for(i in 1:length(vlambda)){vMenosLogLlambda[i]<-MenosLogLlambda(vlambda[i],vx0)}plot(vlambda,vMenosLogLlambda,type="l")

#######FUNCIÓN DE VEROSIMILITUD RELATIVA DE lambda##########Relativalambda<-function(z,x0,vemvlambda){y<-exp(-MenosLogLlambda(z,x0)+MenosLogLlambda(vemvlambda,x0))y}

Relativalambda(10,vx0,emvlambda)

#############GRÁFICA DE LA FUNCIÓN RELATIVA DE lambda#######vlambda<-seq(from=1,to=50,by=0.1)vRelativalambda<-c()for(i in 1:length(vlambda)){vRelativalambda[i]<-Relativalambda(vlambda[i],vx0,emvlambda)}plot(vlambda,vRelativalambda,type="l")

###CALCULAR LOS VALORES DE lambda TAL QUE Relativalambda==c##

#########FUNCIÓN OBJETIVO#############fObjetivo<-function(w,x0,vemvlambda,c)

Page 73: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 3

{y<-Relativalambda(w,x0,vemvlambda)-cy}

vc<-0.15Raiz1<-uniroot(fObjetivo, c(min(vlambda),emvlambda), x0=vx0, vemvlambda=emvlambda, c=vc)LimiteInferior<-Raiz1$rootLimiteInferior

Raiz2<-uniroot(fObjetivo, c(emvlambda,max(vlambda)), x0=vx0, vemvlambda=emvlambda, c=vc)LimiteSuperior<-Raiz2$rootLimiteSuperior

############GRÁFICA DE LA FUNCIÓN RELATIVA DE lambda########plot(vlambda,vRelativalambda, type="l", main="Titulo", xlab=expression(paste(lambda)), #Inserta símbolo lambda ylab="Verosimilitud Relativa", cex.main=1.5, cex.axis=1.5, cex.lab=1.5, ylim=c(0,1), xlim=c(min(vlambda),max(vlambda)) )segments( #Une dos puntos con una línea LimiteInferior,0, #Primer punto LimiteInferior,vc, #Segundo punto lty=1, #Tipo de línea lwd=1, #Grosor de línea col="red" #Color de la línea ) text( #Insertar texto x=LimiteInferior, #Ubicación: Coordenadas X y=0 , #Ubicación: Coordenadas Y labels=round(LimiteInferior,3), #Redondeado a 3 decimales cex=1.2 #Tamaño texto )segments(LimiteSuperior,0, LimiteSuperior,vc, lty=1, lwd=1, col="red" ) text(x=LimiteSuperior, y=0, labels=round(LimiteSuperior,3), cex=1.2 )

Page 74: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 4

#Tarea 9:#(a) Simula n=30 observaciones de una variable aleatoria#exponencial de parámetro lamnda0=E[X]=5. El emv de lambda ¿Se#encuentra cerca de lamnda0?. El intervalo que calculate,#[LimiteInferior,LimiteSuperior], ¿cubre al valor verdadero#de lambda (lambda0=5)?. Repite el proceso varias veces.#(b) Repite el proceso anterior M=10000 veces y calcula#la frecuencia con la que el intervalo cubre el verdadero#valor de lambda. Usa lambda0= 10, 20 y 50.

Page 75: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 1

#############################################################Programa10 : Se define, evalua y maximiza la función de ## verosimilitud lognormal de mu y sigma ##Elaborado por: José A. Montoya ([email protected]) ## 23/06/2010 #############################################################

rm(list=ls(all=TRUE))

#######################VALOR FIJO DE x0#####################vx0<-c(0.83,4.53,2.84,1.14,1.53,3.47,9.74,4.81,11.07,2.68)

#############FUNCIÓN DE VEROSIMILITUD DE (mu,sigma)#########MenosLogLmusigma<-function(vec,x0){vmu<-vec[1] #Primer elemento de vecvsigma<-vec[2] #Segundo elemento de vecn<-length(x0) #Tamaño de muestraS2<-sum((log(x0)-vmu)^2) z<-n*log(1/vsigma)-(0.5*S2/vsigma^2)y<--zy}MenosLogLmusigma(c(1,1),vx0) #Valor de MenosLogLmusigma para #mu=1, sigma=1 y x0=vx0

#########MINIMIZACIÓN DE LA FUNCIÓN MenosLogLmusigma########vec0<-c(1,1) #Valor inicial de mu y sigma #para la minimización

VOpt<-nlm(MenosLogLmusigma,vec0,vx0) #Se alamcenan los #resultados de la #minimización VOpt #Se muestran los resultados #de la minimización

MaxLmusigma<-VOpt$minimum #Mínimo de MenosLogLmusigma

emvmusigma<-VOpt$estimate #Valor de (mu,sigma) donde la #función MenosLogLmusigma #alcanza el mínimo

VConvergencia<-VOpt$code #Código de convergencia #del método. El valor 1 #indica convergencia

MaxLmusigma emvmusigma VConvergencia

#######NOTA: MINIMIZACIÓN USANDO LA FUNCIÓN optim #######optim(vec0, MenosLogLmusigma, method="Nelder-Mead", control=list(maxit=20000),

Page 76: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 2

x0=vx0)

#Tarea 10:#(a) Simula n=30 observaciones de una variable aleatoria#lognormal de parámetros (mu0=0,sigma0=1). El emv de (mu,sigma)#¿Se encuentra cerca de (mu0,sigma0)?#(b) Simula n=30 observaciones de una variable aleatoria#Gamma con parámetro alpha0 y beta0 (seleccionalos). Luego,#define la función de verosimilitud Gamma (alpha,beta) y#encuentra los emv de alpha y beta bajo los datos simulados.

Page 77: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 1

#############################################################Programa11 : Superficies, contornos y perfiles de ## funciones en R^2:Verosimilitud Normal ##Elaborado por: José A. Montoya ([email protected]) ## 30/06/2010 #############################################################

rm(list=ls(all=TRUE))

#######################DATOS SIMULADOS######################vmu0<-100sigma0<-4n0<-20#vdatos<-rnorm(n0,mean=vmu0,sd=sigma0)vdatos<-c(102.05,99.38,96.47,99.71,94.11, 99.94,94.27,102.37,99.16,100.93, 103.27,109.67,96.97,101.89,101.72, 102.02,98.75,98.36,101.03,98.21 )

####FUNCIÓN DE VEROSIMILITUD RELATIVA (PARA SUPERFICIE)#####Relativamusigma<-function(vmu,vsigma,datos){n<-length(datos)MV<-0for(i in 1:n){MV<-MV+(log(1/vsigma)-0.5*((datos[i]-vmu)^2)/vsigma^2)}y<-exp(MV-max(max(MV)))y}

###########SUPERFICIE VEROSIMILITUD RELATIVA NORMAL#########library(lattice)amu<-97bmu<-103asigma<-2bsigma<-6longitudmu<-75longitudsigma<-75x<-seq(amu,bmu,length=longitudmu)y<-seq(asigma,bsigma,length=longitudsigma)g<-expand.grid(x=x,y=y)g$z<-Relativamusigma(g$x,g$y,vdatos)trellis.par.get() #Parámetros gráficostrellis.par.set("axis.line",list(col="transparent"))wireframe(z~x*y, data=g, screen=list(z=-245,x=-75,y=0), xlab=expression(paste(mu)), ylab=list(label=expression(paste(sigma)),cex=2.5), zlab=list(label="Verosimilitud",rot=90,font=4,cex=1.5), zlim=range(seq(0,1,by=0.2)), scales=list(arrows=FALSE,cex=1,col="black",font=3) )

###########CONTORNOS VEROSIMILITUD RELATIVA NORMAL##########

Page 78: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 2

Z<-outer(x,y,Relativamusigma,vdatos)contour(x,y,Z, vfont=c("sans serif","plain"), levels=c(0.05,0.15,0.25,1), labels=c(0.05,0.15,0.25,1), cex.lab=1.5, xlab=expression(paste(mu)), ylab=expression(paste(sigma)), lwd=2, labcex=1 )

###############VEROSIMILITUD DE sigma CON mu fijo###########

MenosLogLsigmamufijo<-function(vec,datos,vmu){vsigma<-vec[1]if(vsigma>0) { n<-length(datos) S2<-sum((datos-vmu)^2) z<-n*log(1/vsigma)-(0.5*S2/vsigma^2) y<--z y }else { y<-10^100 y }}vsigma0<-3MenosLogLsigmamufijo(vsigma0,vdatos,97)

LogVeroPerfilmu<-c()for(i in 1:longitudmu){Vopt<-nlm(MenosLogLsigmamufijo,vsigma0,vdatos,vmu=x[i])vsigma0<-Vopt$estimateLogVeroPerfilmu[i]<--Vopt$minimum}RelativaPerfilmu<-exp(LogVeroPerfilmu-max(LogVeroPerfilmu))

plot(x,RelativaPerfilmu, type="l", xlab=expression(mu), ylab="Verosimilitud Perfil Relativa" )

###############VEROSIMILITUD DE mu CON sigma fijo###########

MenosLogLmusigmafijo<-function(vec,datos,vsigma){vmu<-vec[1]n<-length(datos)S2<-sum((datos-vmu)^2) z<-n*log(1/vsigma)-(0.5*S2/vsigma^2)y<--z

Page 79: Notas Montoya Curso R 3erVerano Probabilidad a CIMAT

Page 3

y}vmu0<-100MenosLogLmusigmafijo(vmu0,vdatos,3)

LogVeroPerfilsigma<-c()for(i in 1:longitudsigma){Vopt<-nlm(MenosLogLmusigmafijo,vmu0,vdatos,vsigma=y[i])vmu0<-Vopt$estimateLogVeroPerfilsigma[i]<--Vopt$minimum}RelativaPerfilsigma<-exp(LogVeroPerfilsigma-max(LogVeroPerfilsigma))

plot(y,RelativaPerfilsigma, type="l", xlab=expression(sigma), ylab="Verosimilitud Perfil Relativa" )

op<-par(mfrow=c(1,2))

plot(x,RelativaPerfilmu, type="l", xlab=expression(mu), ylab="Verosimilitud Perfil Relativa" )

plot(y,RelativaPerfilsigma, type="l", xlab=expression(sigma), ylab="Verosimilitud Perfil Relativa" )