0% encontró este documento útil (0 votos)
56 vistas4 páginas

Scripts Distribución Normal RSTUDIO1

El documento presenta un análisis de la distribución normal, incluyendo gráficos de densidad de probabilidad y funciones relacionadas. Se explican las funciones de densidad, acumulación y simulación de la distribución normal, así como ejemplos prácticos de cálculo de probabilidades. Además, se utilizan herramientas de visualización para representar gráficamente las probabilidades y sus validaciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
56 vistas4 páginas

Scripts Distribución Normal RSTUDIO1

El documento presenta un análisis de la distribución normal, incluyendo gráficos de densidad de probabilidad y funciones relacionadas. Se explican las funciones de densidad, acumulación y simulación de la distribución normal, así como ejemplos prácticos de cálculo de probabilidades. Además, se utilizan herramientas de visualización para representar gráficamente las probabilidades y sus validaciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

##################################################

#Distribución Normal
###################################################

#Gráficos de densidad de probabilidad

curve(dnorm(x, mean=2.5, sd=0.5),


from=0, to=5, lwd=3, col="blue",
main = "N(mu=2.5, sigma2=0.5^2)",
xlab = "X", ylab = "f(x)")

curve(dnorm(x, mean=2.5, sd=1),


from=0, to=5, lwd=3, col="tomato",
main = "N(mu=2.5, sigma2=1^2)",
xlab = "X", ylab = "f(x)")

curve(dnorm(x, mean=2.5, sd=1.5),


from=0, to=5, lwd=3, col="green",
main = "N(mu=2.5, sigma2=1.5^2)",
xlab = "X", ylab = "f(x)")

# Añadimos las curvas en un solo gráfico con "add = TRUE" en la linea de comando

curve(dnorm(x, mean=2.5, sd=0.5), add = TRUE,


from=0, to=5, lwd=3, col="blue",
main = "Distribucion Normal",
xlab = "X", ylab = "f(x)")
curve(dnorm(x, mean=2.5, sd=1), add = TRUE,
from=0, to=5, lwd=3, col="tomato",
main = "Distribucion Normal",
xlab = "X", ylab = "f(x)")
curve(dnorm(x, mean=2.5, sd=1.5),add = TRUE,
from=0, to=5, lwd=3, col="green",
main = "Distribucion Normal",
xlab = "X", ylab = "f(x)")

# Le añadimos la leyenda con las letras griegas: μ (mu), como media y σ (sigma)
como desviacion estandar.
# Lista (expression vector) con los textos de la leyenda
l <- expression(paste(mu, "= 2.5, ", sigma^2, "= 0.5"),
paste(mu, "= 2.5, ", sigma^2, "= 1.0"),
paste(mu, "= 2.5, ", sigma^2, "= 1.5"))
legend("topright", # Posición
legend = l, # Expression vector anterior
lty = c(1, 1, 1), # Líneas sólidas
bty = "n", # Sin bordes
col = c("blue", "tomato", "green"),
inset = .05, # Espaciado del margen
y.intersp = .75) # Interlineado

# La función "Shadows.dist" para distribuciones continuas

# Con distribución Normal, chi-cuadrado y T-students

# Installación de los packages "devtools" y "usefultools"

if (!require('devtools')) install.packages('devtools')
devtools::install_github('fhernanb/usefultools', force=TRUE)
library("devtools")
library("usefultools")

shadow.dist(dist="dnorm", param=list(mean=0, sd=1),


a=0, b=1, type='middle', from=-3, to=3)
shadow.dist(dist="dnorm", param=list(mean=0, sd=1),
a=0, type='lower', from=-3, to=3)
shadow.dist(dist='dnorm', param=list(mean=0, sd=1),
b=1, type='upper', from=-3, to=3)

shadow.dist(dist='dnorm', param=list(mean=0, sd=1),


a=0, b=1, type='two', from=-3, to=3)

# con distribución chi-cuadrado


shadow.dist(dist='dchisq', param=list(df=2),
a=2, b=6, type='middle', from=0, to=10, col.shadow='pink')

# con distribución t-students


shadow.dist(dist='dt', param=list(df=2),
a=-2, b=2, type='middle', from=-5, to=5, col.shadow='tomato')

#######################################
#Funciones de la distribución Normal
#######################################

dnorm (x, mu, sigma) # Función de densidad de una Distribución Normal, para
calcular un valor puntual
pnorm (x, mu, sigma, lower.tail = TRUE)# Función de distribución de una
Distribución Normal, entrega valores acumulados, es decir
# si queremos calcular la probabilidad de una distribución normal que sea x<8 por
ejemplo, entrega la probabilidad de cola izquierda
qnorm (probabilidad_deseada, mu, sigma, lower.tail = TRUE ) # Entrega el valor de X
que acumula la probabilidad deseada hacia abajo,
# si queremos calcular la probabilidad que sea un 30% inferior, nos entrega la
probabilidad que esta como máximo ese 30% inferior
# si queremos calcular la probabilidad que sea un 30% superior, cambiamos
lower.tail = FALSE, nos dará el valor mínimo de ese 30% superior
rnorm (n, mu, sigma) # Simula una distribución de normal de tamaño n, y paràmetros
mu y sigma, esta función simula una distribución Normal

# Z∼N(0,1). Calcular P(Z<1.5).


pnorm (1.5, 0, 1, lower.tail = TRUE)
# x = Valor al que se busca la probabilidad
# mu = media
# sigma = desviación estandar

# Ejemplo 1: mu = 10, sigma = 7


# Z∼N(10,7). Calcular P(Z=5). Aquí Z = x
#P (x = 5), cual es la probabilidad de que X = 5, (probabilidad puntual)

dnorm (5, 10, 7)

# La probabilidad de que Z sea igual a 5 en la distribución normal es del 0.44%.

# Gráficamente

x<-rnorm(10000, 10, 7)
curve(dnorm(x, mean=10, sd=7),
from=-20, to=+40, lwd=3, col="blue",
main = "N(mu=10, sigma2=7^2)",
xlab = "X", ylab = "f(x)")

# P (x<=4)
# Z∼N(10,7). Calcular P(Z<=4). Aquí Z = x
pnorm (4, 10, 7, lower.tail = TRUE)

# P (x>=4)
# Z∼N(10,7). Calcular P(Z>=4) Aquí Z = x
# P (x>=4)

pnorm (4, 10, 7, lower.tail = FALSE) # me entrega valores mayores a 4 o mayores


iguales a 4

1 - pnorm(4,10,7, lower.tail = TRUE)

# La probabilidad de que Z sea mayor que 4 en la distribución normal es


aproximadamente 80.43%.

# VALIDACIÓN, por propiedad de probabilidad, la suma debe darnos 1

pnorm (4, 10, 7, lower.tail = TRUE) + pnorm (4, 10, 7, lower.tail = FALSE)

# P (x<=a)=0.3 y me piden el valor de a, es decir el valor de "a" que hace que en


la cola inferior se me acumule un 30% de probabilidad o 0.3

# Z∼N(10,7). Calcular P(Z<=a)=0.3 Aquí Z = x

qnorm (0.3, 10, 7,lower.tail = TRUE)

# el valor de "a" es 6.329193

# Gráficamente el problema se puede resumir de la siguiente manera.

shadow.dist(dist='dnorm', param=list(mean=10, sd=7),


a=qnorm(p=0.3, mean=10, sd=7), type='lower', from=-50, to=50,
main='', las=1,
col.shadow='springgreen3', xlab='X', ylab='Densidad')
text(x=1.3, y=0.01, "0.3", col="yellow", cex=2)
arrows(10, 0.01, 6.32, 0, lwd = 3, length = 0.2)
text(x=17, y=0.013, "a = 6.32", col="black", cex=2)

# VALIDACIÓN

pnorm (6.329196, 10, 7, lower.tail = TRUE)


pnorm (qnorm (0.3, 10, 7), 10, 7, lower.tail = TRUE)

# Z∼N(10,7). Calcular P(Z>=a)=0.3 Aquí Z = x


#P (x>=a) = 0.3 y me piden el valor de a, es decir que en la cola superior hay un
30%, y me acumula hacia abajo un 70% por que son complementarios

qnorm (0.3, 10, 7, lower.tail = FALSE)

# el valor de "a" es 13.6708


# Gráficamente el problema se puede resumir de la siguiente manera.
install.packages("usefultools")
library(usefultools)
shadow.dist(dist='dnorm', param=list(mean=10, sd=7),
a=qnorm(p=0.3, mean=10, sd=7,lower.tail = FALSE), type='upper', from=-
50, to=50,
main='', las=1,
col.shadow='lightblue', xlab='X', ylab='Densidad')
text(x=22, y=0.004, "0.3", col="black", cex=2)
arrows(10, 0.01, 13.67, 0, lwd = 3, length = 0.2)
text(x=5, y=0.013, "a = 13.67", col="black", cex=2)

# VALIDACIÓN

pnorm (13.6708, 10, 7, lower.tail = FALSE)


pnorm (qnorm (0.3, 10, 7, lower.tail = FALSE), 10, 7, lower.tail = TRUE)

#simulación de n = 10000, mu = 10 y sigma = 7)

x<-rnorm(10000, 10, 7)
mean (x)
sd(x)
hist (x)
hist(x, freq=FALSE, col="lightblue", border="black", ylim=c(0, 0.06),
main="Histograma y densidad", xlab="X", ylab="f(x)")
curve(dnorm(x, mean=10, sd=7), lwd=3, col="tomato", add=TRUE)

#Suponga que W∼N(150,25).Calcular P(140<W<156).

p_156 <- pnorm(q=156, mean=150, sd=5, lower.tail = TRUE)


p_156
p_140 <- pnorm(q=140, mean=150, sd=5, lower.tail = TRUE )
p_140
p_156 - p_140

# Gráficamente el problema se puede resumir de la siguiente manera.

shadow.dist(dist='dnorm', param=list(mean=150, sd=5),


a=156, b=140, type='middle', from=130, to=170,
main='', las=1,
col.shadow='pink', xlab='X', ylab='Densidad')
text(x=150, y=0.04, "86%", col="black", cex=2)

# La probabilidad de que P(140<W<156) es aproximadamente 86.21%.

# Suponga que 𝑄∼𝑁(16,16). Calcular (𝑄<14 ó𝑄>18).

# Solución

# Para calcular esta probabilidad utilizamos el siguiente código:


# Aquí también Z = q

cola_izq_de_14 <- pnorm(q=14, mean=16, sd=4,lower.tail=TRUE)


cola_der_de_18 <- pnorm(q=18, mean=16, sd=4, lower.tail=FALSE)
suma_de_colas <- cola_izq_de_14 + cola_der_de_18
suma_de_colas

# La probabilidad de (𝑄<14 ó𝑄>18) es del 61.71%

También podría gustarte