User Tools

Site Tools


b:head_first_statistics:visualization

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
b:head_first_statistics:visualization [2025/09/03 07:48] – [Histogram skewedness] hkimscilb:head_first_statistics:visualization [2025/09/08 08:22] (current) – [Histogram Modality] hkimscil
Line 91: Line 91:
 </code> </code>
 {{:b:head_first_statistics:pasted:20240904-082258.png}} {{:b:head_first_statistics:pasted:20240904-082258.png}}
 +
 +<code>
 +dat.iq <- rnorm(1000, 100, 15)
 +head(dat.iq)
 +tail(dat.iq)
 +head(dat.iq, n=12)
 +tail(dat.iq, n=12)
 +
 +mean(dat.iq)
 +sd(dat.iq)
 +
 +hist(dat.iq)
 +hist(dat.iq, breaks=30, col='lightblue')
 +
 +set.seed(101)
 +dat.iq <- rnorm(1000, 100, 15)
 +head(dat.iq)
 +tail(dat.iq)
 +head(dat.iq, n=12)
 +tail(dat.iq, n=12)
 +
 +mean(dat.iq)
 +sd(dat.iq)
 +
 +hist(dat.iq)
 +hist(dat.iq, breaks=30, col='lightblue')
 +</code>
 ====== Scatter plot ====== ====== Scatter plot ======
 <code> <code>
Line 164: Line 191:
 <WRAP clear/> <WRAP clear/>
 ====== Histogram skewedness ====== ====== Histogram skewedness ======
- +<WRAP column half>
- +
-[{{:c:ps1-1:2019:pasted:20190909-111117.png|skewness}}] +
-<WRAP clear/>+
-[{{:c:ps1-1:2019:pasted:20190909-111001.png|modality}}] +
-<WRAP clear/>+
 <code> <code>
 +####
 +# left-skewed distribution
 +# 1.
 set.seed(1) set.seed(1)
 data <- rbeta(500, shape1 = 10, shape2 = 2) data <- rbeta(500, shape1 = 10, shape2 = 2)
-hist(data, probability = TRUE, main = "Histogram with Beta Density Curve", +hist(data, probability = TRUE,  
-     xlab = "Value", ylab = "Density", col = "lightblue", border = "white")+     main = "Histogram with Left-skewed data", 
 +     xlab = "Value", ylab = "Density",  
 +     col = "lightblue", border = "white")
  
 +# 2.
 # install.packages("fitdistrplus" # install.packages("fitdistrplus"
 library(fitdistrplus) library(fitdistrplus)
Line 184: Line 211:
 beta_est <- fit$estimate["shape2"] beta_est <- fit$estimate["shape2"]
  
-+3.
 curve(dbeta(x, shape1 = alpha_est, shape2 = beta_est), curve(dbeta(x, shape1 = alpha_est, shape2 = beta_est),
       add = TRUE, col = "red", lwd = 2)       add = TRUE, col = "red", lwd = 2)
 </code> </code>
 +</WRAP>
  
 +<WRAP column half>
 +{{:b:head_first_statistics:pasted:20250903-074821.png}}
 +</WRAP>
 +<WRAP clear/>
 +<WRAP column half>
 <code> <code>
-</code> 
 set.seed(1) set.seed(1)
 data <- rbeta(500, shape1 = 10, shape2 = 10) data <- rbeta(500, shape1 = 10, shape2 = 10)
-hist(data, probability = TRUE, main = "Histogram with Beta Density Curve", +hist(data, probability = TRUE,  
-     xlab = "Value", ylab = "Density", col = "lightblue", border = "white")+     main = "Histogram with Normal Distribution Data", 
 +     xlab = "Value", ylab = "Density",  
 +     col = "lightblue", border = "white")
  
 +# 2.
 # install.packages("fitdistrplus" # install.packages("fitdistrplus"
 library(fitdistrplus) library(fitdistrplus)
Line 203: Line 238:
 beta_est <- fit$estimate["shape2"] beta_est <- fit$estimate["shape2"]
  
-+3.
 curve(dbeta(x, shape1 = alpha_est, shape2 = beta_est), curve(dbeta(x, shape1 = alpha_est, shape2 = beta_est),
       add = TRUE, col = "red", lwd = 2)       add = TRUE, col = "red", lwd = 2)
 +</code>
 +</WRAP>
  
 +<WRAP column half>
 +{{:b:head_first_statistics:pasted:20250903-074830.png}}
 +</WRAP>
  
 +<WRAP clear/>
 +<WRAP column half>
 <code> <code>
 +##
 +# right-skewed distribution
 +# 1. 
 set.seed(1) set.seed(1)
 data <- rbeta(500, shape1 = 2, shape2 = 10) data <- rbeta(500, shape1 = 2, shape2 = 10)
-hist(data, probability = TRUE, main = "Histogram with Beta Density Curve", +hist(data, probability = TRUE,  
-     xlab = "Value", ylab = "Density", col = "lightblue", border = "white")+     main = "Histogram with Right-skewed Distribution", 
 +     xlab = "Value", ylab = "Density",  
 +     col = "lightblue", border = "white")
  
 # install.packages("fitdistrplus" # install.packages("fitdistrplus"
Line 221: Line 268:
 beta_est <- fit$estimate["shape2"] beta_est <- fit$estimate["shape2"]
  
-3. Add the Beta density curve+
 curve(dbeta(x, shape1 = alpha_est, shape2 = beta_est), curve(dbeta(x, shape1 = alpha_est, shape2 = beta_est),
       add = TRUE, col = "red", lwd = 2)       add = TRUE, col = "red", lwd = 2)
 </code> </code>
-{{:b:head_first_statistics:pasted:20250903-074821.png}} +</WRAP> 
-{{:b:head_first_statistics:pasted:20250903-074830.png}} +<WRAP column half> 
-{{:b:head_first_statistics:pasted:20250903-074836.png}}+{{:b:head_first_statistics:pasted:20250903-082513.png}} 
 +</WRAP> 
 +<WRAP clear/>
  
-====== box plot ======+====== Histogram Modality====== 
 +<WRAP column half> 
 +Unimodal  
 +<code> 
 +### unimodal data  
 +set.seed(1) 
 +d.1 <- rnorm(500, 10, 2) 
 +hist(d.1, breaks = 30, probability = T, 
 +     main = "Hist with Unimodal distrib", 
 +     xlab = "Value", ylab = "Density",  
 +     col = "lightblue", border = "black"
 +lines(density(d.1),  
 +      col = "darkred", lwd = 2) 
 +</code> 
 +</WRAP> 
 + 
 +<WRAP column half> 
 +{{:b:head_first_statistics:pasted:20250903-083409.png}} 
 +</WRAP> 
 + 
 +<WRAP clear/>
  
 +Bimodal distribution
 +<WRAP column half>
 +<code>
 +### bimodal data 
 +set.seed(1)
 +d.1 <- rnorm(500, 10, 2)
 +d.2 <- rnorm(500, 20, 2)
 +d.all <- c(d.1, d.2)
 +hist(d.all, breaks = 30, probability = T,
 +     main = "Hist with bimodal distrib",
 +     xlab = "Value", ylab = "Density", 
 +     col = "lightblue", border = "black")
 +lines(density(d.all), 
 +      col = "darkred", lwd = 2)
 +</code>
 +</WRAP>
 +
 +<WRAP column half>
 +{{:b:head_first_statistics:pasted:20250903-083524.png}}
 +</WRAP>
 +<WRAP clear/>
 +
 +<WRAP column half>
 +<code>
 +### multi-modal data 
 +# Parameters for the first normal distribution (Mode 1)
 +m.1 <- 50
 +sd.1 <- 5
 +
 +# Parameters for the second normal distribution (Mode 2)
 +m.2 <- 100
 +sd.2 <- 15
 +
 +m.3 <- 160
 +sd.3 <- 6
 +
 +# Mixing proportion for Mode 1
 +prop.1 <- 0.3
 +# Mixing proportion for Mode 2
 +prop.2 <- 0.6 # This is 1 - prop1
 +# Mixing proportion for Mode 2
 +prop.3 <- 1.0 # This is 1 - prop1
 +
 +# Number of samples to generate
 +n.sam <- 1000
 +
 +# Create an empty vector to store the combined samples
 +
 +mm.dist <- numeric(n.sam)
 +set.seed(1)
 +for (i in 1:n.sam) {
 +  # Randomly choose which distribution to sample from
 +  tmp <- runif(1)
 +  if (tmp < prop.1) {
 +    mm.dist[i] <- rnorm(1, mean = m.1, sd = sd.1)
 +  } else if (tmp < prop.2) {
 +    mm.dist[i] <- rnorm(1, mean = m.2, sd = sd.2)
 +  } else {
 +    mm.dist[i] <- rnorm(1, mean = m.3, sd = sd.3)
 +  }
 +
 +}
 +
 +hist(mm.dist, breaks = 30, 
 +     main = "Multimodal Distribution", 
 +     xlab = "Value", ylab = "Density", 
 +     freq = FALSE, probability = T,
 +     col = "lightblue", border = "black")
 +lines(density(mm.dist), 
 +      col = "darkred", lwd = 2)
 +
 +</code>
 +</WRAP>
 +<WRAP column half>
 +{{:b:head_first_statistics:pasted:20250908-082219.png}}
 +</WRAP>
 +<WRAP clear/>
 +
 +
 +====== box plot ======
 +<WRAP column half>
 <code> <code>
 # Boxplot of MPG by Car Cylinders # Boxplot of MPG by Car Cylinders
Line 238: Line 388:
     ylab="Miles Per Gallon")     ylab="Miles Per Gallon")
 </code> </code>
-{{:c:ps1-1:2019:pasted:20190909-111438.png}}+</WRAP>
  
 +<WRAP column half>
 +{{:c:ps1-1:2019:pasted:20190909-111438.png}}
 +</WRAP>
 +<WRAP clear/>
 +====== see also ======
 +https://r-graph-gallery.com/
  
b/head_first_statistics/visualization.1756853319.txt.gz · Last modified: 2025/09/03 07:48 by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki