#install.packages("moments")
library(moments)
library(ggplot2)
##Example 1: Symmetrical Distribution (Normal Distribution)
# Generate normally distributed data
data_normal <- rnorm(1000, mean = 0, sd = 1)
# Calculate skewness and kurtosis
skew_normal <- skewness(data_normal)
kurt_normal <- kurtosis(data_normal) - 3  # Adjusted kurtosis
print(skew_normal ); print(kurt_normal)
## [1] 0.09561119
## [1] -0.03577837
# Plot
ggplot(data.frame(data_normal), aes(x = data_normal)) +
  geom_histogram(aes(y = ..density..), bins = 30, fill = "skyblue", color = "black") +
  geom_density(color = "blue") +
  ggtitle(paste("Normal Distribution\nSkewness:", round(skew_normal, 2), 
                "Kurtosis:", round(kurt_normal, 2)))
## Warning: The dot-dot notation (`..density..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(density)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

##Example 2: Right-Skewed Distribution with High Kurtosis
# Generate right-skewed data
data_right_skew <- rexp(1000, rate = 1)

# Calculate skewness and kurtosis
skew_right_skew <- skewness(data_right_skew)
kurt_right_skew <- kurtosis(data_right_skew) - 3  # Adjusted kurtosis
print(skew_right_skew); print(kurt_right_skew)
## [1] 1.888697
## [1] 4.64939
# Plot
ggplot(data.frame(data_right_skew), aes(x = data_right_skew)) +
  geom_histogram(aes(y = ..density..), bins = 30, fill = "orange", color = "black") +
  geom_density(color = "red") +
  ggtitle(paste("Right-Skewed Distribution\nSkewness:", round(skew_right_skew, 2), 
                "Kurtosis:", round(kurt_right_skew, 2)))

###Example 3: Left-Skewed Distribution with Low Kurtosis
# Generate left-skewed data
data_left_skew <- -(rnorm(1000, mean = 0, sd = 1))^2

# Calculate skewness and kurtosis
skew_left_skew <- skewness(data_left_skew)
kurt_left_skew <- kurtosis(data_left_skew) - 3  # Adjusted kurtosis
print(skew_left_skew); print(skew_left_skew)
## [1] -3.11825
## [1] -3.11825
# Plot
ggplot(data.frame(data_left_skew), aes(x = data_left_skew)) +
  geom_histogram(aes(y = ..density..), bins = 30, fill = "purple", color = "black") +
  geom_density(color = "darkblue") +
  ggtitle(paste("Left-Skewed Distribution\nSkewness:", round(skew_left_skew, 2), 
                "Kurtosis:", round(kurt_left_skew, 2)))

#skewness_value: Positive values indicate right skew, negative values indicate left skew.
#Symmetrical, Low Kurtosis: Normally distributed data (near-zero skewness, kurtosis around 0).
#Right-Skewed, High Kurtosis: Data with positive skew and heavy tails.
#Left-Skewed, Low Kurtosis: Data with negative skew and lighter tails.