DOI

1 Representación de la Normal

Si queremos representar la función de densidad de la distribución normal podemos utilizar la función plot().

Una forma de utilizar esta función es tomar un montón de puntos x y para cada uno el valor de la función de densidad.

x <- seq( -5, 5, by = 0.1)
y <- dnorm( x )
plot( x, y, ylim = c( 0, 0.4 ), col = "blue", type = "l", lwd = 2,
      main = "Función densidad N(0,1)" )

En este caso, como es una función continua también podemos pasarle como argumento la propia función y plot() la dibujará eligiendo él los puntos entre los valores que fijemos.

plot( function(x) dnorm( x ), -5, 5, ylim = c( 0, 0.4 ),
      col = "blue", type = "l", lwd = 2,
      main = "Función densidad N(0,1)" )

plot( dnorm, -5, 5, ylim = c( 0, 0.4 ),
      col = "blue", type = "l", lwd = 2,
      main = "Función densidad N(0,1)" )

2 Representación de la t de Student

En este caso se hace igual que con la normal (también es continua). Si queremos representar la t de Student con 2 grados de libertad.

plot( function(x) dt( x, df = 2 ), -5, 5, ylim = c( 0, 0.4 ),
      col = "red", type = "l", lwd = 2,
      main = "Función densidad t de Student df = 2" )

Si queremos añadir un gráfico al que teníamos basta con escribir el argumento add = TRUE.

plot( function(x) dt( x, df = 2 ), -5, 5, ylim = c( 0, 0.4 ),
      col = "red", type = "l", lwd = 2,
      main = "Función densidad t de Student df = 2 y 5" )
plot( function(x) dt( x, df = 5 ), -5, 5, col = "green",
      type = "l", lwd = 2, add = TRUE )

3 Normal y t de Student

Haciendo un bucle for y con el argumento add = TRUE podemos generar un gráfico con el número de distribuciones t de Student que queramos fijando el grado de libertad donde parar.

También podemos añadir texto en el punto (x,y) con text( x, y ). Con el argumento cex fijamos el tamaño y con un vector fijamos los sucesivos tamaños (en cada paso del bucle).

Con col especificamos el color. En este caso, con gray decimos que el color sea gris, y con un vector lo que hacemos es representar más negro cuanto mayor es el grado de libertad.

# Normal
plot( dnorm, -5, 5, ylim = c( 0, 0.4 ), col="blue", lwd=3 )

# t de Student
dfmax <- 9 # hasta cuál queremos representar
for(i in 1:dfmax){
  plot( function(x) dt( x, df = i ), -5, 5, add = TRUE,
        lwd = 1, col = gray( 1 - i/dfmax ) )
  text( 0, dt( 0, df = i ), i, cex = 0.5/i+0.5 )
}

También podemos representar la función de densidad de la t de Student con un grado de libertad infinito (el límite). Como esperamos que se solape con la normal dibujamos puntos vacíos con type = 'b'.

# Normal
plot( dnorm, -5, 5, ylim = c( 0, 0.4 ), col="blue", lwd=3 )

# t de Student
dfmax <- 9 # hasta cuál queremos representar
for(i in 1:dfmax){
  plot( function(x) dt( x, df = i ), -5, 5, add = TRUE,
        lwd = 1, col = gray( 1 - i/dfmax ) )
  text( 0, dt( 0, df = i ), i, cex = 0.5/i+0.5 )
}

# t de Student grados de libertad Inf
plot( function(x) dt( x, df = Inf ), -5, 5, add = TRUE,
        type = "b", lwd = 2, col = "green" ) 


Volver al índice del curso