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