SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4        42
Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006
Dra. Diana M. Kelmansky

Trabajo Práctico 4: Introducción al lenguaje R - cont.

6. Probabilidad, Distribuciones y Simulación
6.1 Funciones de Distribución en R

R permite calcular probabilidades (incluyendo acumuladas), la evaluación de funciones
de densidad y probabilidad puntual y la generación de valores pseudo-aleatorios
siguiendo diferentes funciones de distribución habituales (tanto discretas como
continuas). La tabla siguiente muestra los nombres en R de varias funciones junto con
argumentos adicionales.

Distribución             nombre         Argumentos adicionales2                 Argumentos por
                           R                                                    defecto
beta                     beta           shape1 (α), shape2 (β)
binomial                 binom          size (n), prob (p)
Chi-square               chisq          df (degrees of freedom r)
continuous uniform       unif           min (a), max (b)                        min = 0, max = 1
exponential              exp            rate (λ= 1/θ)                           rate = 1
F distribution           f              df1 (r1), df2 (r2)
gamma                    gamma          shape (α), rate (λ)                     rate = 1
hypergeometric           hyper          m = N1, n = N2,
                                        k = n (sample size)
normal                   norm           mean (µ), sd (σ)                        mean = 0, sd = 1
Poisson                   pois          lambda (λ)
t distribution           t              df (degrees of freedom r)
Weibull                  weibull        shape (α), scale (β)                    scale = 1



A cada nombre de función dado por R (tabla anterior) se le agrega un prefijo ‘d’ para
obtener la función de densidad o de probabilidad puntual, ‘p’ para la función de
distribución acumulada FDA, ‘q’ para la función cuantil o percentil y ‘r’ para generar
variables pseudo-aleatorias (random). La sintaxis es la siguiente:

      >   drname(x,    ...)   #   evalúa   la fdp o la fpp en x
      >   prname(q,    ...)   #   evalúa   la FDA en q
      >   qrname(p,    ...)   #   evalúa   el pésimo percentil de esta distribución
      >   rrname(n,    ...)   #   simula   n observaciones de esta distribución


donde rname (wildcard) indica el nombre de cualquiera de las distribuciones, x y q
son vectores que toman valores en el soporte de la distribución, p es un vector de
probabilidades y n es un valor entero. Los siguientes son ejemplos:


      > x <- rnorm(100) # asigna a x 100 valores
                        # generados de una normal estándar
      > w <- rexp(100,rate=.1) # asigna a x 100 valores
                               # generados de una Exp(θ = 10)
      > dbinom(3,size=10,prob=.25) # P(X = 3) para X ~ Bin(n=10, p=.25)
Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4               43
Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006
Dra. Diana M. Kelmansky

        > pbinom(3,size=10,prob=.25) # P(X ≤ 3) en la distr. anterior
        > pnorm(12,mean=10,sd=2) # P(X ≤ 12) para X~N(mu = 10, sigma = 2)
        > qnorm(.75,mean=10,sd=2) # cuartil superior de una
                                  # N(mu = 10,sigma = 2)
        > qchisq(.10,df=8) # percentil del 10% de χ2(8)
        > qt(.95,df=20) # percentil del 95% de t(20)

2
Hogg and Tanis (2006) parameter names are given in parentheses. See the help files for the exact
distribution parameterizations.



6.2 Una aplicacón de simulación: Integración de Monte Carlo Integration

Supongamos que queremos calcular

                                                       b
                                                   I = ∫ g ( x)dx,
                                                       a


pero que la primitiva de g(x) no puede darse en una forma cerrada. Las técnicas estándar
involucran aproximar la integral por una suma, muchos paquetes de computación hacen
esto. Otro procedimiento para hallar I es llamado integración de Monte Carlo.
Supongamos que generamos observaciones pseudo-aleatorias x = (x1, x2, …, xn ) de n
variables aleatorias independientes X = X1, X2, …, Xn con distribución uniforme en el
intervalo [a, b] y calculamos

                                                       1       n
                                       I ( x) = (b − a) ∑ g ( xi )
                                       ˆ
                                                       n i =1



Por la Ley de los Grandes Números, a medida que n crece (sin ninguna cota),

                                      1    n
                     I ( X ) = (b − a) ∑ g ( X i ) ⎯n ⎯ ⎯ →(b − a) E [g ( X )].
                     ˆ                              ⎯⎯⎯→ ∞

                                      n i =1



Pero,

                                                                    ⎛ 1 ⎞
                                               b
                                                            1
                              E [g ( X ) ] = ∫ g ( x )         dx = ⎜   ⎟I
                                               a
                                                           b−a      ⎝b−a⎠

                ˆ
De manera que, I ( x) puede ser utilizada como una aproximación de I que mejora a
medida que n crece.

Este método puede ser modificado para utilizar otras distribuciones (aparte de la
Uniforme) definidas sobre el mismo intervalo. Comparado con otros métodos
numéricos para aproximar integrales, el método de Monte Carlo no es especialmente
Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4     44
Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006
Dra. Diana M. Kelmansky

eficiente. Sin embargo, el método de Monte Carlo tiene una eficiencia creciente a
medida que aumenta la dimensionalidad de la integral (por ej. integrales dobles, triples).

                                                        2

                                                        ∫e
                                                                x3
Ejemplo: Consideremos integral definida:                             dx
                                                        0


Un estimador de Monte Carlo (utilizando 1 000 000 de observaciones) estará dado por:

        > 2*mean(exp(runif(1000000,min=0,max=2)^3)) # a=0, b=2, luego b–
a=2
        [1] 277.0928

Otra llamada da un resultado diferente (son distintas estimaciones del valor límite!):

        > 2*mean(exp(runif(1000000,min=0,max=2)^3))
        [1] 276.6815


6.3 Graficando Distribuciones

6.3.1 Distribuciones Discretas

Los gráficos de las funciones de probabilidad puntual y sus funciones de distribuciónes
acumuladas pueden realizarse utilizando la función plot() dandole el soporte de la
función y las probabilides en esos puntos. Por defecto, R simplemente producirá un
diagrama de dispersión. La presentación se mejora utilizando los argumentos type y
lwd (line width; ancho de línea). Por ejemplo, para graficar la función de probabilidad
puntual para la distribución binomial con n = 10 y p = .25:

      > x <- 0:10 # generamos el soporte de la distribución
      > y <- dbinom(x, size=10, prob=.25) # evaluamos las probabilidades
      > plot(x, y, type = "h", lwd = 30, main = "Probabilidades
      Binomiales con n = 10, p = .25", col = "gray") # enter

(queda feo !?! )
                                   Probabilidades Binomiales con n = 10, p = .25
                            0.25
                            0.20
                            0.15
                        y

                            0.10
                            0.05
                            0.00




                                   0       2        4                6    8    10

                                                            x
Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4   45
Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006
Dra. Diana M. Kelmansky

Hemos realizado algunas cosas aquí. Primero hemos creado el vector x que contiene los
enteros del 0 al 10. Luego calculamos las probabilidades binomiales en cada uno de los
puntos de x y las guardamos en el vector y. Luego especificamos un gráfico de tipo "h"
que da el aspecto de histograma con líneas verticales y hemos engordado las líneas con
la opción lwd = 20 (el ancho por defecto es 1, que corresponde al grosor de la línea).
Finalmente le dimos un color y un título informativo. Notemos que para ahorrar espacio
en el espacio de trabajo, podriamos haber obtenido el mismo gráfico sin crear los
vectores x e y:

> plot(0:10, dbinom(0:10, size=10, prob=.25),xlab="x", ylab="y", type
= "h", lwd = 20, main = "Probabilidades Binomiales con n = 10, p =
.25", col = "gray") # enter
Otra forma de obtener un diagrama de barras de una función de probabilidad puntual es
mediante la función barplot():

      > barplot(y,names.arg=as.character(0:10),main = "Probabilidades
      Binomiales con n = 10, p = .25", xlab="x")


                                Probabilidades Binomiales con n = 10, p = .25
                         0.25
                         0.20
                         0.15
                         0.10
                         0.05
                         0.00




                                 0   1   2   3   4    5   6   7   8   9   10

                                                      x

Para crear el gráfico de la función de distribución acumulada de la binomial:
Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4                46
Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006
Dra. Diana M. Kelmansky


                                 Función de Distr. Acum. de la Bi(n = 10, p = .25 )




                           1.0
                           0.8
                           0.6
                    F(x)

                           0.4
                           0.2




                                 0                2           4            6       8           10

                                                                       x

    > plot(stepfun(1:10, pbinom(c(0,1:10), size=10, prob=.25))
    +         , verticals=FALSE, ylab="F(x)",
    + main = "Función de Distr. Acum. de la Bi(n = 10, p = .25 )",)

Utilice el help para ver que acción realiza la función stepfun.


6.3.2 Distribuciones Continuas

Para graficar funciones suaves como una función de densidad de probabilidad o la FDA
de una variable aleatoria continua podemos utilizar la función curve() que fue
introducida en el Capítulo 4. Podemos utilizar los nombres de las funciones de
densidad de R como el argumento de expresión (expression argument). Mostramos
algunos ejemplos a continuación:

      > curve(dnorm(x), from = -3, to = 3) # curva normal estándar
                                                  0.4
                                                  0.3
                                       dnorm(x)

                                                  0.2
                                                  0.1
                                                  0.0




                                                        -3   -2   -1       0   1       2   3

                                                                           x




      > curve(pnorm(x, mean=10, sd=2), from = 4, to = 16) # CDF normal
Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4                47
Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006
Dra. Diana M. Kelmansky




                                                              1.0
                                                              0.8
                                pnorm(x, mean = 10, sd = 2)

                                                              0.6
                                                              0.4
                                                              0.2
                                                              0.0
                                                                    4   6   8   10   12   14   16

                                                                                x




Note que en el primer gráfico hemos restringido los valores al intervalo -3 , 3 donde la
normal estándar tiene la mayor parte de su área. En forma alternativa podríamos haber
usado percentiles superior e inferior (digamos del .5% y 99.5%) calculándolos mediante
la función qnorm():

      > curve(dnorm(x), from = qnorm(0.005), to = qnorm(0.995))

Cuando se utiliza la función curve()para superponer una curva a un gráfico no deben
especificarse los argumentos from y to debido a que R los toma por defecto de los
valores mínimo y máximo de x en el gráfico original plot, sí debe ponerse add = T.
Veamos como se comparan el histograma de 1000 datos simulados de una variable
exponencial con λ = 0.1 y su función de densidad:

    > datos.simulados <- rexp(1000, rate=.1)
                                         # 1000 Exponenciales
    (lambda=0.1)
    > hist(datos.simulados, prob = T,
                    breaks = "FD", main="V.A. Exponenciales lambda =
    0.1")
    > curve(dexp(x, rate=.1), add = T # superponer la curva de densidad
Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4   48
Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006
Dra. Diana M. Kelmansky



                                    V.A. Exponenciales lambda = 0.1




                         0.08
                         0.06
              Density

                         0.04
                         0.02
                         0.00




                                0   10   20      30       40      50      60

                                              datos.simulados

6.4 Muestreo aleatorio

En R pueden simularse experimentos aleatorios simples como “elegir un número al azar
entre 1 y 100” y “extraer tres bolitas de una urna” . La teoría detrás de este tipo de
juegos constituye la base de la teoría de muestreo -sampling theory- (extracción de
muestras de poblaciones fijas); además, los métodos de resampling (muestreo repetido
dentro de una muestra) como el de bootstrap son herramientas importantes en
estadística. La función clave en R es la función sample():

sample(x, size, replace = FALSE, prob = NULL)

    Argumentos:

            x: un vector (numérico, complejo, de caracter o lógico) de
    más
                        de un elemento del que se realizará la elección, o un
    entero
                        positivo.

        size: entero no negativo dando la cantidad de items a elegir.

    replace: indica si el muestreo se realiza con o sin reemplazo.

        prob: un vector opcional de pesos que da la probabilidad con que
              cada elemento es muestreado.

Ejemplos:

    >   sample(1:100, 1) # elige un número entre 1 y 100
    [1] 88
Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4   49
Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006
Dra. Diana M. Kelmansky


    >   sample(1:6, 10, replace = T) # arroja un dado equilibrado 10
    veces
     [1] 6 4 2 5 5 5 2 2 4 1

    >   sample(1:6, 10, T, c(.6,.2,.1,.05,.03,.02)) # dado no
    equilibrado!!
     [1] 1 6 1 1 3 1 3 3 1 1

    >   urna <- c(rep("rojo",8),rep("azul",4),rep("amarillo",3))
    >   sample(urna, 6, replace = F) # elige 6 balitas de la urna
    [1] "amarillo" "rojo"     "rojo"     "amarillo" "rojo"     "rojo"



6.5 Ejercicios

1. Genere 20 observaciones de una distribución binomial con n = 15 y p = 0.2.
2. Halle el 20ésimo percentil de la distribución gamma de parámetros α = 2, λ = 0.1.
3. Halle P(T > 2) para T ~ t8.
4. Grafique la función de probabilidad puntual de una Poisson (λ = 4) sobre el rango de
valores x = 0, 1, … 15.
5. Utilice el método de integración aproximado de Monte Carlo, para estimar

                                       π /4

                                        ∫ log(1 + tan
                                                        2
                                                            ( x))dx
                                        0

con n = 1 000 000
6. Genere 100 observaciones de una distribución Normal ( µ = 50, σ2 = 42). Grafique la
función de distribución empírica (empirical cdf) Fn(x) para esta muestra y superpóngala
con la verdadera FDA F(x).
7. Simule 25 tiradas de una moneda equilibrada registrando los resultados con “cara” y
“ceca.”


Estas primeras 4 guías de R están basadas en
W. J. Owen 2006. The R Guide
       http://cran.r-project.org/doc/contrib/Owen-TheRGuide.pdf

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Cap7
Cap7Cap7
Cap7
 
Aplicaciones de la derivada
Aplicaciones de la derivadaAplicaciones de la derivada
Aplicaciones de la derivada
 
Integrales area electricidad, electronica y telecomunicaciones [muy bueno]
Integrales   area electricidad, electronica y telecomunicaciones [muy bueno]Integrales   area electricidad, electronica y telecomunicaciones [muy bueno]
Integrales area electricidad, electronica y telecomunicaciones [muy bueno]
 
Formulascalculo
FormulascalculoFormulascalculo
Formulascalculo
 
No lineal
No linealNo lineal
No lineal
 
Derivadas
DerivadasDerivadas
Derivadas
 
Ayudantia7 (derivadas)
Ayudantia7 (derivadas)Ayudantia7 (derivadas)
Ayudantia7 (derivadas)
 
examen de calculo 1
examen de calculo 1examen de calculo 1
examen de calculo 1
 
4 Temas Adicionales De La Derivada
4 Temas Adicionales De La Derivada4 Temas Adicionales De La Derivada
4 Temas Adicionales De La Derivada
 
Glosario
GlosarioGlosario
Glosario
 
La Integral Definida
La Integral DefinidaLa Integral Definida
La Integral Definida
 
4 extremos
4 extremos4 extremos
4 extremos
 
Fórmulas de derivación
Fórmulas de derivaciónFórmulas de derivación
Fórmulas de derivación
 
Calculo u5
Calculo u5Calculo u5
Calculo u5
 
Log2
Log2Log2
Log2
 
Comandos ejemplo-matlab
Comandos ejemplo-matlabComandos ejemplo-matlab
Comandos ejemplo-matlab
 
Cálculo Integral para Empresariales
Cálculo Integral para EmpresarialesCálculo Integral para Empresariales
Cálculo Integral para Empresariales
 
T6 funciones varias_variables
T6 funciones varias_variablesT6 funciones varias_variables
T6 funciones varias_variables
 
7 análisis vectorial
7 análisis vectorial7 análisis vectorial
7 análisis vectorial
 
Cap4
Cap4Cap4
Cap4
 

Destacado

Methode Visualisierung
Methode VisualisierungMethode Visualisierung
Methode VisualisierungPeter Micheuz
 
Story board Maltrato en el noviazgo
Story board Maltrato en el noviazgoStory board Maltrato en el noviazgo
Story board Maltrato en el noviazgovioletahcherri
 
Semaforo electronico a 110 voltios
Semaforo electronico a 110 voltiosSemaforo electronico a 110 voltios
Semaforo electronico a 110 voltiosGabucho666
 
Explosivos en la escuela
Explosivos en la escuelaExplosivos en la escuela
Explosivos en la escuelaunidyair
 
El grupo nominal
El grupo nominalEl grupo nominal
El grupo nominalJuan4508
 
Paradigmas investigación
Paradigmas investigaciónParadigmas investigación
Paradigmas investigaciónNelson Rojas
 
Maltrato escolar
Maltrato escolarMaltrato escolar
Maltrato escolarLicentiare
 
Entrechienetchat
EntrechienetchatEntrechienetchat
Entrechienetchatcatavrio
 
Calidad y Estándares. Informática del Ayuntamiento de Madrid
Calidad y Estándares. Informática del Ayuntamiento de MadridCalidad y Estándares. Informática del Ayuntamiento de Madrid
Calidad y Estándares. Informática del Ayuntamiento de MadridCIFF Fundación
 
Licencias cc
Licencias ccLicencias cc
Licencias ccbriancib
 
Marco para evaluar dispositivos
Marco para evaluar dispositivosMarco para evaluar dispositivos
Marco para evaluar dispositivosChema Rodríguez
 
Presentacion trabajos de clase definitivo
Presentacion trabajos de clase definitivoPresentacion trabajos de clase definitivo
Presentacion trabajos de clase definitivoIrene Gomez
 
Studienberatung im Social Web - Chance zur Interessentenbindung?
Studienberatung im Social Web - Chance zur Interessentenbindung?Studienberatung im Social Web - Chance zur Interessentenbindung?
Studienberatung im Social Web - Chance zur Interessentenbindung?Laub & Partner GmbH
 
Los demostrativos
Los demostrativosLos demostrativos
Los demostrativosJuan4508
 

Destacado (20)

Methode Visualisierung
Methode VisualisierungMethode Visualisierung
Methode Visualisierung
 
Story board Maltrato en el noviazgo
Story board Maltrato en el noviazgoStory board Maltrato en el noviazgo
Story board Maltrato en el noviazgo
 
Semaforo electronico a 110 voltios
Semaforo electronico a 110 voltiosSemaforo electronico a 110 voltios
Semaforo electronico a 110 voltios
 
Explosivos en la escuela
Explosivos en la escuelaExplosivos en la escuela
Explosivos en la escuela
 
Cristales 01
Cristales 01Cristales 01
Cristales 01
 
El grupo nominal
El grupo nominalEl grupo nominal
El grupo nominal
 
Metodologia
MetodologiaMetodologia
Metodologia
 
Paradigmas investigación
Paradigmas investigaciónParadigmas investigación
Paradigmas investigación
 
Maltrato escolar
Maltrato escolarMaltrato escolar
Maltrato escolar
 
Imagenes
ImagenesImagenes
Imagenes
 
FORGET IT!
FORGET IT!FORGET IT!
FORGET IT!
 
Entrechienetchat
EntrechienetchatEntrechienetchat
Entrechienetchat
 
Calidad y Estándares. Informática del Ayuntamiento de Madrid
Calidad y Estándares. Informática del Ayuntamiento de MadridCalidad y Estándares. Informática del Ayuntamiento de Madrid
Calidad y Estándares. Informática del Ayuntamiento de Madrid
 
Licencias cc
Licencias ccLicencias cc
Licencias cc
 
Marco para evaluar dispositivos
Marco para evaluar dispositivosMarco para evaluar dispositivos
Marco para evaluar dispositivos
 
Kgsr open data
Kgsr open dataKgsr open data
Kgsr open data
 
Scrum
ScrumScrum
Scrum
 
Presentacion trabajos de clase definitivo
Presentacion trabajos de clase definitivoPresentacion trabajos de clase definitivo
Presentacion trabajos de clase definitivo
 
Studienberatung im Social Web - Chance zur Interessentenbindung?
Studienberatung im Social Web - Chance zur Interessentenbindung?Studienberatung im Social Web - Chance zur Interessentenbindung?
Studienberatung im Social Web - Chance zur Interessentenbindung?
 
Los demostrativos
Los demostrativosLos demostrativos
Los demostrativos
 

Similar a Montecarlo (20)

Varios problemas de cálculo numérico (teoría del MEF-FEM)
Varios problemas de cálculo numérico (teoría del MEF-FEM)Varios problemas de cálculo numérico (teoría del MEF-FEM)
Varios problemas de cálculo numérico (teoría del MEF-FEM)
 
Pagr0
Pagr0Pagr0
Pagr0
 
Alea 0506 resumen-----simulacion
Alea 0506 resumen-----simulacionAlea 0506 resumen-----simulacion
Alea 0506 resumen-----simulacion
 
Funciones Varias Variables
Funciones Varias VariablesFunciones Varias Variables
Funciones Varias Variables
 
Mat lab03
Mat lab03Mat lab03
Mat lab03
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Sol. 3ra PC 19-1.pdf
Sol. 3ra PC 19-1.pdfSol. 3ra PC 19-1.pdf
Sol. 3ra PC 19-1.pdf
 
Probabilidad
ProbabilidadProbabilidad
Probabilidad
 
7 binomial normal
7 binomial normal7 binomial normal
7 binomial normal
 
5.metodo del punto fijo
5.metodo del punto fijo5.metodo del punto fijo
5.metodo del punto fijo
 
Taller2b
Taller2bTaller2b
Taller2b
 
FUNDAMENTOS MATEMATICOS (I Bimestre Abril Agosto 2011)
FUNDAMENTOS MATEMATICOS (I Bimestre Abril Agosto 2011)FUNDAMENTOS MATEMATICOS (I Bimestre Abril Agosto 2011)
FUNDAMENTOS MATEMATICOS (I Bimestre Abril Agosto 2011)
 
Teorema Bayes Ejemplo
Teorema Bayes EjemploTeorema Bayes Ejemplo
Teorema Bayes Ejemplo
 
4 varible aleatoriadiscreta (1)
4 varible aleatoriadiscreta (1)4 varible aleatoriadiscreta (1)
4 varible aleatoriadiscreta (1)
 
Algebra lineal problemas_resueltos
Algebra lineal problemas_resueltosAlgebra lineal problemas_resueltos
Algebra lineal problemas_resueltos
 
Distribuciones De Probabilidad
Distribuciones De ProbabilidadDistribuciones De Probabilidad
Distribuciones De Probabilidad
 
Estimacionpuntual1
Estimacionpuntual1Estimacionpuntual1
Estimacionpuntual1
 
Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)
 
Estadistica 2
Estadistica 2Estadistica 2
Estadistica 2
 
Interpolacion 1
Interpolacion 1Interpolacion 1
Interpolacion 1
 

Montecarlo

  • 1. Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4 42 Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006 Dra. Diana M. Kelmansky Trabajo Práctico 4: Introducción al lenguaje R - cont. 6. Probabilidad, Distribuciones y Simulación 6.1 Funciones de Distribución en R R permite calcular probabilidades (incluyendo acumuladas), la evaluación de funciones de densidad y probabilidad puntual y la generación de valores pseudo-aleatorios siguiendo diferentes funciones de distribución habituales (tanto discretas como continuas). La tabla siguiente muestra los nombres en R de varias funciones junto con argumentos adicionales. Distribución nombre Argumentos adicionales2 Argumentos por R defecto beta beta shape1 (α), shape2 (β) binomial binom size (n), prob (p) Chi-square chisq df (degrees of freedom r) continuous uniform unif min (a), max (b) min = 0, max = 1 exponential exp rate (λ= 1/θ) rate = 1 F distribution f df1 (r1), df2 (r2) gamma gamma shape (α), rate (λ) rate = 1 hypergeometric hyper m = N1, n = N2, k = n (sample size) normal norm mean (µ), sd (σ) mean = 0, sd = 1 Poisson pois lambda (λ) t distribution t df (degrees of freedom r) Weibull weibull shape (α), scale (β) scale = 1 A cada nombre de función dado por R (tabla anterior) se le agrega un prefijo ‘d’ para obtener la función de densidad o de probabilidad puntual, ‘p’ para la función de distribución acumulada FDA, ‘q’ para la función cuantil o percentil y ‘r’ para generar variables pseudo-aleatorias (random). La sintaxis es la siguiente: > drname(x, ...) # evalúa la fdp o la fpp en x > prname(q, ...) # evalúa la FDA en q > qrname(p, ...) # evalúa el pésimo percentil de esta distribución > rrname(n, ...) # simula n observaciones de esta distribución donde rname (wildcard) indica el nombre de cualquiera de las distribuciones, x y q son vectores que toman valores en el soporte de la distribución, p es un vector de probabilidades y n es un valor entero. Los siguientes son ejemplos: > x <- rnorm(100) # asigna a x 100 valores # generados de una normal estándar > w <- rexp(100,rate=.1) # asigna a x 100 valores # generados de una Exp(θ = 10) > dbinom(3,size=10,prob=.25) # P(X = 3) para X ~ Bin(n=10, p=.25)
  • 2. Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4 43 Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006 Dra. Diana M. Kelmansky > pbinom(3,size=10,prob=.25) # P(X ≤ 3) en la distr. anterior > pnorm(12,mean=10,sd=2) # P(X ≤ 12) para X~N(mu = 10, sigma = 2) > qnorm(.75,mean=10,sd=2) # cuartil superior de una # N(mu = 10,sigma = 2) > qchisq(.10,df=8) # percentil del 10% de χ2(8) > qt(.95,df=20) # percentil del 95% de t(20) 2 Hogg and Tanis (2006) parameter names are given in parentheses. See the help files for the exact distribution parameterizations. 6.2 Una aplicacón de simulación: Integración de Monte Carlo Integration Supongamos que queremos calcular b I = ∫ g ( x)dx, a pero que la primitiva de g(x) no puede darse en una forma cerrada. Las técnicas estándar involucran aproximar la integral por una suma, muchos paquetes de computación hacen esto. Otro procedimiento para hallar I es llamado integración de Monte Carlo. Supongamos que generamos observaciones pseudo-aleatorias x = (x1, x2, …, xn ) de n variables aleatorias independientes X = X1, X2, …, Xn con distribución uniforme en el intervalo [a, b] y calculamos 1 n I ( x) = (b − a) ∑ g ( xi ) ˆ n i =1 Por la Ley de los Grandes Números, a medida que n crece (sin ninguna cota), 1 n I ( X ) = (b − a) ∑ g ( X i ) ⎯n ⎯ ⎯ →(b − a) E [g ( X )]. ˆ ⎯⎯⎯→ ∞ n i =1 Pero, ⎛ 1 ⎞ b 1 E [g ( X ) ] = ∫ g ( x ) dx = ⎜ ⎟I a b−a ⎝b−a⎠ ˆ De manera que, I ( x) puede ser utilizada como una aproximación de I que mejora a medida que n crece. Este método puede ser modificado para utilizar otras distribuciones (aparte de la Uniforme) definidas sobre el mismo intervalo. Comparado con otros métodos numéricos para aproximar integrales, el método de Monte Carlo no es especialmente
  • 3. Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4 44 Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006 Dra. Diana M. Kelmansky eficiente. Sin embargo, el método de Monte Carlo tiene una eficiencia creciente a medida que aumenta la dimensionalidad de la integral (por ej. integrales dobles, triples). 2 ∫e x3 Ejemplo: Consideremos integral definida: dx 0 Un estimador de Monte Carlo (utilizando 1 000 000 de observaciones) estará dado por: > 2*mean(exp(runif(1000000,min=0,max=2)^3)) # a=0, b=2, luego b– a=2 [1] 277.0928 Otra llamada da un resultado diferente (son distintas estimaciones del valor límite!): > 2*mean(exp(runif(1000000,min=0,max=2)^3)) [1] 276.6815 6.3 Graficando Distribuciones 6.3.1 Distribuciones Discretas Los gráficos de las funciones de probabilidad puntual y sus funciones de distribuciónes acumuladas pueden realizarse utilizando la función plot() dandole el soporte de la función y las probabilides en esos puntos. Por defecto, R simplemente producirá un diagrama de dispersión. La presentación se mejora utilizando los argumentos type y lwd (line width; ancho de línea). Por ejemplo, para graficar la función de probabilidad puntual para la distribución binomial con n = 10 y p = .25: > x <- 0:10 # generamos el soporte de la distribución > y <- dbinom(x, size=10, prob=.25) # evaluamos las probabilidades > plot(x, y, type = "h", lwd = 30, main = "Probabilidades Binomiales con n = 10, p = .25", col = "gray") # enter (queda feo !?! ) Probabilidades Binomiales con n = 10, p = .25 0.25 0.20 0.15 y 0.10 0.05 0.00 0 2 4 6 8 10 x
  • 4. Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4 45 Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006 Dra. Diana M. Kelmansky Hemos realizado algunas cosas aquí. Primero hemos creado el vector x que contiene los enteros del 0 al 10. Luego calculamos las probabilidades binomiales en cada uno de los puntos de x y las guardamos en el vector y. Luego especificamos un gráfico de tipo "h" que da el aspecto de histograma con líneas verticales y hemos engordado las líneas con la opción lwd = 20 (el ancho por defecto es 1, que corresponde al grosor de la línea). Finalmente le dimos un color y un título informativo. Notemos que para ahorrar espacio en el espacio de trabajo, podriamos haber obtenido el mismo gráfico sin crear los vectores x e y: > plot(0:10, dbinom(0:10, size=10, prob=.25),xlab="x", ylab="y", type = "h", lwd = 20, main = "Probabilidades Binomiales con n = 10, p = .25", col = "gray") # enter Otra forma de obtener un diagrama de barras de una función de probabilidad puntual es mediante la función barplot(): > barplot(y,names.arg=as.character(0:10),main = "Probabilidades Binomiales con n = 10, p = .25", xlab="x") Probabilidades Binomiales con n = 10, p = .25 0.25 0.20 0.15 0.10 0.05 0.00 0 1 2 3 4 5 6 7 8 9 10 x Para crear el gráfico de la función de distribución acumulada de la binomial:
  • 5. Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4 46 Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006 Dra. Diana M. Kelmansky Función de Distr. Acum. de la Bi(n = 10, p = .25 ) 1.0 0.8 0.6 F(x) 0.4 0.2 0 2 4 6 8 10 x > plot(stepfun(1:10, pbinom(c(0,1:10), size=10, prob=.25)) + , verticals=FALSE, ylab="F(x)", + main = "Función de Distr. Acum. de la Bi(n = 10, p = .25 )",) Utilice el help para ver que acción realiza la función stepfun. 6.3.2 Distribuciones Continuas Para graficar funciones suaves como una función de densidad de probabilidad o la FDA de una variable aleatoria continua podemos utilizar la función curve() que fue introducida en el Capítulo 4. Podemos utilizar los nombres de las funciones de densidad de R como el argumento de expresión (expression argument). Mostramos algunos ejemplos a continuación: > curve(dnorm(x), from = -3, to = 3) # curva normal estándar 0.4 0.3 dnorm(x) 0.2 0.1 0.0 -3 -2 -1 0 1 2 3 x > curve(pnorm(x, mean=10, sd=2), from = 4, to = 16) # CDF normal
  • 6. Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4 47 Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006 Dra. Diana M. Kelmansky 1.0 0.8 pnorm(x, mean = 10, sd = 2) 0.6 0.4 0.2 0.0 4 6 8 10 12 14 16 x Note que en el primer gráfico hemos restringido los valores al intervalo -3 , 3 donde la normal estándar tiene la mayor parte de su área. En forma alternativa podríamos haber usado percentiles superior e inferior (digamos del .5% y 99.5%) calculándolos mediante la función qnorm(): > curve(dnorm(x), from = qnorm(0.005), to = qnorm(0.995)) Cuando se utiliza la función curve()para superponer una curva a un gráfico no deben especificarse los argumentos from y to debido a que R los toma por defecto de los valores mínimo y máximo de x en el gráfico original plot, sí debe ponerse add = T. Veamos como se comparan el histograma de 1000 datos simulados de una variable exponencial con λ = 0.1 y su función de densidad: > datos.simulados <- rexp(1000, rate=.1) # 1000 Exponenciales (lambda=0.1) > hist(datos.simulados, prob = T, breaks = "FD", main="V.A. Exponenciales lambda = 0.1") > curve(dexp(x, rate=.1), add = T # superponer la curva de densidad
  • 7. Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4 48 Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006 Dra. Diana M. Kelmansky V.A. Exponenciales lambda = 0.1 0.08 0.06 Density 0.04 0.02 0.00 0 10 20 30 40 50 60 datos.simulados 6.4 Muestreo aleatorio En R pueden simularse experimentos aleatorios simples como “elegir un número al azar entre 1 y 100” y “extraer tres bolitas de una urna” . La teoría detrás de este tipo de juegos constituye la base de la teoría de muestreo -sampling theory- (extracción de muestras de poblaciones fijas); además, los métodos de resampling (muestreo repetido dentro de una muestra) como el de bootstrap son herramientas importantes en estadística. La función clave en R es la función sample(): sample(x, size, replace = FALSE, prob = NULL) Argumentos: x: un vector (numérico, complejo, de caracter o lógico) de más de un elemento del que se realizará la elección, o un entero positivo. size: entero no negativo dando la cantidad de items a elegir. replace: indica si el muestreo se realiza con o sin reemplazo. prob: un vector opcional de pesos que da la probabilidad con que cada elemento es muestreado. Ejemplos: > sample(1:100, 1) # elige un número entre 1 y 100 [1] 88
  • 8. Análisis Exploratorio y Confirmatorio de Datos de Experimentos de Microarrays - Tp 4 49 Dpto. de Matemática - Instituo de Cálculo 1er. Cuatr. 2006 Dra. Diana M. Kelmansky > sample(1:6, 10, replace = T) # arroja un dado equilibrado 10 veces [1] 6 4 2 5 5 5 2 2 4 1 > sample(1:6, 10, T, c(.6,.2,.1,.05,.03,.02)) # dado no equilibrado!! [1] 1 6 1 1 3 1 3 3 1 1 > urna <- c(rep("rojo",8),rep("azul",4),rep("amarillo",3)) > sample(urna, 6, replace = F) # elige 6 balitas de la urna [1] "amarillo" "rojo" "rojo" "amarillo" "rojo" "rojo" 6.5 Ejercicios 1. Genere 20 observaciones de una distribución binomial con n = 15 y p = 0.2. 2. Halle el 20ésimo percentil de la distribución gamma de parámetros α = 2, λ = 0.1. 3. Halle P(T > 2) para T ~ t8. 4. Grafique la función de probabilidad puntual de una Poisson (λ = 4) sobre el rango de valores x = 0, 1, … 15. 5. Utilice el método de integración aproximado de Monte Carlo, para estimar π /4 ∫ log(1 + tan 2 ( x))dx 0 con n = 1 000 000 6. Genere 100 observaciones de una distribución Normal ( µ = 50, σ2 = 42). Grafique la función de distribución empírica (empirical cdf) Fn(x) para esta muestra y superpóngala con la verdadera FDA F(x). 7. Simule 25 tiradas de una moneda equilibrada registrando los resultados con “cara” y “ceca.” Estas primeras 4 guías de R están basadas en W. J. Owen 2006. The R Guide http://cran.r-project.org/doc/contrib/Owen-TheRGuide.pdf