rm(list=ls())
rnorm2 <- function(n,mean,sd){
mean+sd*scale(rnorm(n))
}
n.p <- 10000
m.p <- 100
sd.p <- 10
p1 <- rnorm2(n.p, m.p, sd.p)
m.p1 <- mean(p1)
sd.p1 <- sd(p1)
p2 <- rnorm2(n.p, m.p+5, sd.p)
m.p2 <- mean(p2)
sd.p2 <- sd(p2)
n.s <- 100
se.z <- c(sqrt(var(p1)/n.s))
x_values <- seq(mean(p1)-5*se.z,
mean(p1)+15*se.z,
length.out = 500)
# Calculate the probability
# density for a normal distribution
y_values <- dnorm(x_values,
mean = mean(p1),
sd = se.z)
# Plot the theoretical PDF
plot(x_values, y_values, type = "l",
lwd=3,
main = "Distribution of Sample Means",
xlab = "Value", ylab = "Density")
m.p1 <- mean(p1)
se1 <- c(m.p1-se.z, m.p1+se.z)
se2 <- c(m.p1-2*se.z, m.p1+2*se.z)
se3 <- c(m.p1-3*se.z, m.p1+3*se.z)
abline(v=c(m.p1,se1,se2,se3),
col=c('black', 'orange', 'orange',
'green', 'green',
'blue', 'blue'),
lwd=2)
treated.s <- sample(p2, n.s)
m.treated.s <- mean(treated.s)
abline(v=m.treated.s, col='red', lwd=2)
se.z
diff <- m.treated.s-mean(p1)
diff/se.z
# usual way - using sample's variance
# instead of p1's variance to get
# standard error value
se.s <- sqrt(var(treated.s)/n.s)
se.s
diff/se.s
pt(diff/se.s, df=n.s-1, lower.tail = F) * 2
t.test(treated.s, mu=m.p1, var.equal = T)
>
> rm(list=ls())
>
> rnorm2 <- function(n,mean,sd){
+ mean+sd*scale(rnorm(n))
+ }
>
> n.p <- 10000
> m.p <- 100
> sd.p <- 10
> p1 <- rnorm2(n.p, m.p, sd.p)
> m.p1 <- mean(p1)
> sd.p1 <- sd(p1)
>
> p2 <- rnorm2(n.p, m.p+5, sd.p)
> m.p2 <- mean(p2)
> sd.p2 <- sd(p2)
>
> n.s <- 100
> se.z <- c(sqrt(var(p1)/n.s))
>
> x_values <- seq(mean(p1)-5*se.z,
+ mean(p1)+15*se.z,
+ length.out = 500)
> # Calculate the probability
> # density for a normal distribution
> y_values <- dnorm(x_values,
+ mean = mean(p1),
+ sd = se.z)
>
> # Plot the theoretical PDF
> plot(x_values, y_values, type = "l",
+ lwd=3,
+ main = "Distribution of Sample Means",
+ xlab = "Value", ylab = "Density")
>
> m.p1 <- mean(p1)
> se1 <- c(m.p1-se.z, m.p1+se.z)
> se2 <- c(m.p1-2*se.z, m.p1+2*se.z)
> se3 <- c(m.p1-3*se.z, m.p1+3*se.z)
> abline(v=c(m.p1,se1,se2,se3),
+ col=c('black', 'orange', 'orange',
+ 'green', 'green',
+ 'blue', 'blue'),
+ lwd=2)
>
> treated.s <- sample(p2, n.s)
> m.treated.s <- mean(treated.s)
> abline(v=m.treated.s, col='red', lwd=2)
>
> se.z
[1] 1
>
> diff <- m.treated.s-mean(p1)
> diff/se.z
[1] 5.871217
>
> # usual way - using sample's variance
> # instead of p1's variance to get
> # standard error value
> se.s <- sqrt(var(treated.s)/n.s)
> se.s
[1] 0.9861042
> diff/se.s
[1] 5.953951
>
> pt(diff/se.s, df=n.s-1, lower.tail = F) * 2
[1] 3.994557e-08
> t.test(treated.s, mu=m.p1, var.equal = T)
One Sample t-test
data: treated.s
t = 5.954, df = 99, p-value = 3.995e-08
alternative hypothesis: true mean is not equal to 100
95 percent confidence interval:
103.9146 107.8279
sample estimates:
mean of x
105.8712
>
{{:r:pasted:20250911-073157.png}}