#Normalidad ##A Normalidad

Pob_normal = dnorm(-400:400, 0, 100)
plot(-400:400, Pob_normal, type="l", main = "Distribución Normal media=0, sigma=100")

##B Normalidad

x1=rnorm(150,0,100)
hist(x1, col=0, main = "Distribución empírica de Normal media=0, sigma=100", freq=FALSE)

##C Normalidad

library (moments)
sg1 = skewness(x1)
k1 = kurtosis(x1)
cat("El sesgo es:", sg1, "\n")
## El sesgo es: 0.1722376
cat("La curtosis es:", k1, "\n")
## La curtosis es: 2.748936

##D Normalidad

jarque.test(x1)
## 
##  Jarque-Bera Normality Test
## 
## data:  x1
## JB = 1.1356, p-value = 0.5668
## alternative hypothesis: greater
qqnorm(x1, main = "QQ-Plot de datos Normales")
qqline(x1, col = "red")

##E Normalidad Los dos graficos se parecen un poco, pero creo que en la mayor parte son bastante diferentes. Las similitudes que puedo ver son que la mayoria de los datos se concentran en el centro, en 0, y a partir de ahi se empiezan a distribuir a los lados con menores frecuencias. Aun así,a los lados del 0 los datos no son del todo simetricos en la distribución empirica, e incluso hay un pico de 50 a 100 que es igual que la frecuencia de 0 a 50. La explicación de porque los datos no son del todo igual a la de la distribución teorica se puede entender a partir de las medidas de sesgo y curtosis. El sesgo por ejemplo, es un poco mayor que 0, especificamente 0.05924815, lo cual provoca que los datos se desvien solo un poco de la media aunque significativamente para afectar la forma del histograma y desviarlos a la derecha. La curtosis tambien es un poco mayor que 3, especificamente 3.09305 lo cual hace que la distribución se vuelva leptocurtica y se alarge un poco. Ahora bien, creo que lo que más afecta termina siendo la curtosis ya que en el qqplot la grafica termina pareciendo más a una en la que la curtosis es alta a una en la que el sesgo es alto, ya que en los dos lados de la linea los datos se desvian un poco.Finalmente, y por lo mismo de que el sesgo y la curtosis se desvian muy poco de sus valores ideales de normalidad, la prueba de normalidad da un valor de p muy alto lo que indica que no hay evidencia para rechazar la hipotesis nula, y lo más seguro es que los datos sean normales, lo cual tiene sentido ya que se generaron con rnorm.

#Gamma Muy Sesgada a la Derecha ##A

x = seq(0,40,0.1)
Pob_gammaMS = dgamma(x, 0.5, 2)
plot(x, Pob_gammaMS, type="l", main = "Gamma Muy Sesgada Derecha (Alpha: 0.5, Beta: 2)")

#B

x2=rgamma(150,0.5,2)
hist(x2, col=0, main = "Distribución empírica de Gamma Muy Sesgada Derecha", freq=FALSE)

#C

sg2 = skewness(x2)
k2 = kurtosis(x2)
cat("El sesgo es:", sg2, "\n")
## El sesgo es: 2.787525
cat("La curtosis es:", k2, "\n")
## La curtosis es: 11.19653

#D

jarque.test(x2)
## 
##  Jarque-Bera Normality Test
## 
## data:  x2
## JB = 614.15, p-value < 2.2e-16
## alternative hypothesis: greater
qqnorm(x2, main = "QQ-Plot de datos Normales")
qqline(x2, col = "red")

#E Las graficas se parecen demasiado, principalmente porque los datos estan cargados cercanos al 0 y a partir de ahi se empiezan a distribuir con menos frecuencia hacia la derecha. Aun así, se ven algunas barras que son identicas, aunque lo que se esperaría es que fueran disminuyendo hasta acercarse a 0 de densidad Los datos sobre el sesgo y la curtosis tienen mucho sentido cuando se comparan con la grafica de la distribución empirica. Primero, con el sesgo de 2.208923 se puede intuir que la grafica tendrá un sesgo a la derecha, lo cual se ve claramente reflejado en el histograma. En cuanto a la curtosis de 8.467518 tambien se puede notar una relación ya que en una gamma con mucho sesgo a la derecha se espera que se comporte como una función exponencial, y por lo tanto esté alargada ‘infinitamente’, lo cual hace mucho sentido ya que este valor de curtosis indica alargamiento. Finalmente, la desviación en los datos de la recta en el lado derecho para el qqplot tambien indican un sesgo a la derecha y concuerda con el valor del sesgo calculado. Además, ninguno de los extremos concuerda con la recta y son colas delgadas, lo cual es señal de alta curtosis. Por ultimo, el valor de p value es bastante pequeño, lo cual hace que la hipotesis nula, que los datos son normales, sea rechazada. Esto tiene mucho sentido ya que la distribución es gamma. ##Gamma Ligeramente Sesgada a la Derecha #A

Pob_gammaLS = dgamma(x, 5, 2)
plot(x, Pob_gammaLS, type="l", main = "Gamma Lig Sesgada Derecha (Alpha: 5, Beta: 2)")

#B

x3=rgamma(150,5,2)
hist(x3, col=0, main = "Distribución empírica de Gamma Lig Sesgada Derecha", freq=FALSE)

#C

sg3 = skewness(x3)
k3 = kurtosis(x3)
cat("El sesgo es:", sg3, "\n")
## El sesgo es: 0.8852938
cat("La curtosis es:", k3, "\n")
## La curtosis es: 3.888017

#D

jarque.test(x3)
## 
##  Jarque-Bera Normality Test
## 
## data:  x3
## JB = 24.522, p-value = 4.732e-06
## alternative hypothesis: greater
qqnorm(x3, main = "QQ-Plot de datos Normales")
qqline(x3, col = "red")

#E En este caso las graficas tambien se parecen bastante aunque con diferencias minimas. Ya que la distribución está ligeramente sesgada a la derecha, se espera que los datos esten cargados a la derecha aunqué no completamente cargados en el 0. Esto se puede ver en ambas distribuciones, teoricas y empiricas. Aun así, hay algunos valores en el histograma que salen de lo esperado ya que tienen picos donde no deberían. En cuanto al sesgo se obtiene lo esperado, un valor de 1.245676, que representa un sesgo a la derecha lo cual se puede ver en el histograma, y que en comparación con la distribución de mucho sesgo es menor, reflejando que es un sesgo ligero. En cuanto a la curtosis, el valor es de 5.218459 lo cual representa que la distribución está un poco alargada de la normalidad. Esto es interesante ya que el valor de beta fue el mismo en ambos casos de gamma, y se supone que este controla el alargamiento o achatamiento, por lo que implica que alfa tambien tiene impacto en la curtosis. En cuanto al qqplot, se puede notar el sesgo a la derecha por la desviación de los datos en el extremo derecho hacia arriba, y la alta curtosis por las colas delgadas en ambos extremos. Finalmente, el valor de p es bastante menor a 0.05 lo cual indica que los datos no siguen una distribución normal que es lo esperado ya que estamos usando gamma. ##Weibull Sesgada a la Izquierda #A

Pob_weibull = dweibull(x, 15, 2)
plot(x, Pob_weibull, type="l", main="Weibull Sesgada Izquierda (Alpha: 7, Beta: 2)")

#B

x4=rweibull(150,15,2)
hist(x4, col=0, main = "Distribución empírica de Weibull Sesgada Izquierda", freq=FALSE)

#C

sg4 = skewness(x4)
k4 = kurtosis(x4)
cat("El sesgo es:", sg4, "\n")
## El sesgo es: -0.7997207
cat("La curtosis es:", k4, "\n")
## La curtosis es: 3.280097

#D

jarque.test(x4)
## 
##  Jarque-Bera Normality Test
## 
## data:  x4
## JB = 16.479, p-value = 0.000264
## alternative hypothesis: greater
qqnorm(x4, main = "QQ-Plot de datos Normales")
qqline(x4, col = "red")

#E Creo que en este caso es en el que ambas distribuciones más se parecen y es que se nota el sesgo a la izquierda en los dos graficos. El pico está aproximadamente en el mismo punto, en 2, y en cuanto a las diferencias la verdad es que en esta visualización casi no se notan. Tal vez sería conveniente ver más a fondo la grafica de la distribución teorica. El valor del sesgo es lo esperado, -0.4897338, que como es negativo indica un sesgo a la izquierda, aunque en este caso no es tan grande y es algo cercano a 0 que es la normalidad. En cuanto a la curtosis, 2.950992, el valor fue algo más pequeño de lo esperado para la normalidad, lo cual indica un poco de achatamiento, pero aun así es bastante cercano a 3. En cuanto al qqplot, se puede apreciar el sesgo a la izquierda dado que en la parte derecha de la grafica los valores se desvian para abajo en la recta. Además, las colas son gruesas lo cual indica un leve achatamiento. El valor de p, por muy poco, hace que se rechace la hipotesis nula y se concluya que los datos no son normales, aunque por muy muy poco. ##Probando normalidad en una base de datos

data(cars)
str(cars) 
## 'data.frame':    50 obs. of  2 variables:
##  $ speed: num  4 4 7 7 8 9 10 10 10 11 ...
##  $ dist : num  2 10 4 22 16 10 18 26 34 17 ...
library(nortest)

#1

shapiro.test(cars$speed)
## 
##  Shapiro-Wilk normality test
## 
## data:  cars$speed
## W = 0.97765, p-value = 0.4576
ad.test(cars$speed)
## 
##  Anderson-Darling normality test
## 
## data:  cars$speed
## A = 0.26143, p-value = 0.6927
lillie.test(cars$speed)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  cars$speed
## D = 0.068539, p-value = 0.8068
jarque.test(cars$speed)
## 
##  Jarque-Bera Normality Test
## 
## data:  cars$speed
## JB = 0.80217, p-value = 0.6696
## alternative hypothesis: greater

Para todos los casos el valor de p fue mayor a 0.05, por lo que no hay evidencia para rechazar la hipotesis nula. Es razonable considerar que aproximadamente siguen una distribución normal, aunque no perfecta.

shapiro.test(cars$dist)
## 
##  Shapiro-Wilk normality test
## 
## data:  cars$dist
## W = 0.95144, p-value = 0.0391
ad.test(cars$dist)
## 
##  Anderson-Darling normality test
## 
## data:  cars$dist
## A = 0.74067, p-value = 0.05021
lillie.test(cars$dist)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  cars$dist
## D = 0.12675, p-value = 0.04335
jarque.test(cars$dist)
## 
##  Jarque-Bera Normality Test
## 
## data:  cars$dist
## JB = 5.2305, p-value = 0.07315
## alternative hypothesis: greater

En este caso nos encontramos con una situación algo ambigua, ya que en 2 pruebas el valor de p es menor a 0.05, aunque en las otras 2 el valor es ligeramente mayor. Creo que por lo cercano a 0.05 de los casos en los que es mayor, y con base en la evidencia de las demas pruebas, lo más acertado sería asumir que los datos no siguen una distribución normal #2

qqnorm(cars$speed, main="QQ Plot Velocidad")
qqline(cars$speed, col="red")

qqnorm(cars$dist, main="QQ Plot Distancia")
qqline(cars$dist, col="red")

En el caso de velocidad, pareciera que los datos se ajustan casi a la perfección a la recta de la normalidad y con muy pocas desviaciones, por lo que hay más evidencia para decir que se aproximan a una distribución normal. Para el caso de la distancia, los datos parecen tener un sesgo a la derecha dado que en el extremo derecho se desvian para arriba. Esto apoya a la hipotesis de que no son normales. #3

sgspeed = skewness(cars$speed)
kspeed = kurtosis(cars$speed)
cat("El sesgo para speed es:", sgspeed, "\n")
## El sesgo para speed es: -0.1139548
cat("La curtosis para speed es:", kspeed, "\n")
## La curtosis para speed es: 2.422853
sgdist = skewness(cars$dist)
kdist = kurtosis(cars$dist)
cat("El sesgo para dist es:", sgdist, "\n")
## El sesgo para dist es: 0.7824835
cat("La curtosis para dist es:", kdist, "\n")
## La curtosis para dist es: 3.248019

En el caso de velocidad, el sesgo obtenido fue de -0.11, lo cual está muy cercano a cero. Esto indica que la distribución es prácticamente simétrica, sin inclinaciones marcadas hacia la izquierda ni hacia la derecha. Además, la curtosis es de 2.42, un valor ligeramente menor a 3, lo que sugiere una distribución algo más achatada que la normal. En conjunto, esto refuerza la idea de que la variable velocidad se aproxima bastante a una distribución normal, con pequeñas desviaciones que no son graves. En el caso de la distancia, el sesgo calculado es de 0.78, lo que refleja una asimetría positiva: la distribución está sesgada a la derecha, es decir, hay una mayor presencia de valores grandes que desplazan la media. A su vez, la curtosis de 3.25 es ligeramente superior a 3, lo que indica colas más pesadas que la distribución normal. Estos resultados apoyan la hipótesis de que la variable distancia no sigue una distribución normal, ya que tanto el sesgo como la curtosis muestran desviaciones claras respecto al comportamiento esperado bajo normalidad. #4

media <- mean(cars$speed)
cat("La media para speed es:", media, "\n")
## La media para speed es: 15.4
mediana <- median(cars$speed)
cat("La mediana para speed es:", mediana, "\n")
## La mediana para speed es: 15
rango_medio <- (min(cars$speed) + max(x))/2
cat("El rango medio para speed es:", rango_medio, "\n")
## El rango medio para speed es: 22
cat("\n")
media <- mean(cars$dist)
cat("La media para dist es:", media, "\n")
## La media para dist es: 42.98
mediana <- median(cars$dist)
cat("La mediana para dist es:", mediana, "\n")
## La mediana para dist es: 36
rango_medio <- (min(cars$dist) + max(x))/2
cat("El rango medio para dist es:", rango_medio, "\n")
## El rango medio para dist es: 21

En el caso de velocidad, la media es 15.4 y la mediana es 15, valores muy cercanos entre sí. Esta cercanía confirma que la distribución es bastante simétrica, ya que en distribuciones normales o casi normales la media y la mediana tienden a coincidir. Sin embargo, el rango medio es de 22, un valor más alejado, lo cual se explica porque este indicador depende únicamente del mínimo y máximo de los datos. Por tanto, el rango medio se ve influenciado por la dispersión total, pero no contradice la simetría general reflejada por la media y la mediana. En el caso de la distancia, la media es 42.98, mientras que la mediana es de 36. Aquí la diferencia entre ambas es considerable: la media es mayor, lo que refleja que los valores grandes están “jalando” la distribución hacia la derecha. Este comportamiento coincide con el sesgo positivo que ya se había detectado. Además, el rango medio es 21, mucho menor que la media y la mediana, lo que indica que los valores extremos elevan bastante la media y generan una percepción de mayor centralidad de lo que realmente muestran la mayoría de los datos. #5

boxplot(cars$speed, main="Boxplot Velocidad", col="lightgreen")

boxplot(cars$dist, main="Boxplot Distancia", col="lightgreen")

En este caso se puede ver claramente lo mencionado anteriormente con respecto a la media y la mediana. En el caso de speed, el grafico es bastante simetrico y la media está casi en el centro de la caja. Aun así, para distancia todo cambia ya que la media esta bastante desviada del centro, e incluso se puede ver un outlier. #6

hist(cars$speed, freq=FALSE, main="Histograma Velocidad", col="lightgray")
lines(density(cars$speed), col="red", lwd=2)
curve(dnorm(x, mean=mean(cars$speed), sd=sd(cars$speed)),
      from=min(cars$speed), to=max(cars$speed),
      add=TRUE, col="blue", lwd=2)

hist(cars$dist, freq=FALSE, main="Histograma Distancia", col="lightgray")
lines(density(cars$dist), col="red", lwd=2)
curve(dnorm(x, mean=mean(cars$dist), sd=sd(cars$dist)),
      from=min(cars$dist), to=max(cars$dist),
      add=TRUE, col="blue", lwd=2)

Para speed, el histograma muestra cierta similitud con la campana normal, aunque con pequeñas desviaciones. Para distancia, el histograma se desplaza a la derecha y la curva normal teórica no logra ajustarse bien por lo que la densidad empírica muestra colas más largas. #Conclusion Final as pruebas de normalidad arrojaron resultados mixtos: en algunos casos el valor de p fue mayor a 0.05 y en otros menor, lo que genera cierta ambigüedad. Por eso fue necesario complementar con gráficos, sesgo, curtosis y medidas de tendencia central.

En la variable velocidad, el QQPlot muestra que los puntos siguen casi perfectamente la recta de la normalidad, con muy pocas desviaciones en las colas. El sesgo de -0.11 confirma que la distribución es prácticamente simétrica, mientras que la curtosis de 2.42 indica que es ligeramente más achatada que la normal. Además, la media (15.4) y la mediana (15) son muy cercanas, lo que refuerza la idea de que la variable se aproxima bastante a una distribución normal, aunque no de manera perfecta. Por el contrario, en la variable distancia, el qqplot y el histograma evidencian un claro sesgo a la derecha, con colas más largas. Esto coincide con el sesgo positivo de 0.78 y una curtosis de 3.25, que sugiere colas más pesadas que en la normal. A nivel de medidas de tendencia central, la media (42.98) supera claramente a la mediana (36), lo que refleja cómo los valores grandes desplazan la distribución. Además, el boxplot confirma la presencia de outliers hacia arriba. Todo esto lleva a concluir que la variable distancia no sigue una distribución normal.