library(tidyr)

#(I will explain set.seed() below)
set.seed(2107)
num.heads <- rep(NA, 10000)

coin <- c(0,1)

for(i in 1:1000){
  num.heads[i] <- sum(sample(coin, 7, replace=T))
}
prop.table(table(num.heads))
barplot(prop.table(table(num.heads)), main="Sampling Distribution of  Num. Heads in 7 Flips")


c(0,0,0,1,0,1,0)

prop.table(table(num.heads))

truth <- c(rep(1,50), rep(0,50))

#And make a population from that, which is 1 million people.
set.seed(1235)
pop <- sample(truth, 100000, replace = T)
summary(pop)

#Now in the real world, we would get exactly one sample:
set.seed(2107)
prime.sample <- sample(pop, 300)
head(prime.sample)
mean(prime.sample)

sample(1:1000,1)
sample(1:1000,1)
sample(1:1000,1)
sample(1:1000,1)

set.seed(1)
sample(1:1000,1)
sample(1:1000,1)
sample(1:1000,1)
set.seed(1)
sample(1:1000,1)
sample(1:1000,1)
sample(1:1000,1)
set.seed(1)
sample(1:1000,1)
sample(1:1000,1)
sample(1:1000,1)

head(prime.sample)

mean(prime.sample)

samp.dist <- NA

for(i in 1:10000){
  samp.dist[i] <- mean(sample(pop,300))
}

head(samp.dist)

plot(density(samp.dist), main="Sampling Distribution Under the Null")
abline(v=.5, lty=2)

plot(density(samp.dist), main="Sampling Distribution Under the Null")
abline(v=.5, lty=2)
abline(v=mean(prime.sample), lty=2, lwd=2, col="firebrick")

plot(density(samp.dist), main="Sampling Distribution")

sd(samp.dist)

eval <- seq(.4,.6,.001)
plot(density(samp.dist), main="Sampling Distribution")
points(eval,dnorm(eval, mean=.5, sd=sd(samp.dist)), col="magenta", type="l")


se.est <- sd(prime.sample)/sqrt(300)
se.est

t.test(prime.sample, mu=.5)

t.test(prime.sample, mu=.5)$stderr

(.5 - mean(prime.sample))/0.028

sm.dat <- rio::import("https://github.com/marctrussler/IDS-Data/raw/main/SMData.Rds")
head(sm.dat)

mean(sm.dat$trump.approve, na.rm=T)

se <- sd(sm.dat$trump.approve, na.rm=T)/sqrt(length(sm.dat$trump.approve[!is.na(sm.dat$trump.approve)]))
se

prime.sd <- dnorm(seq(.4,.6,.001), mean=.5, sd=se)

plot(seq(.4,.6,.001), prime.sd, type="l")
abline(v=.5,lty=2, lwd=2)
legend("topright", c("Null Hypothesis"), lty=c(2), lwd=c(2))

plot(seq(.4,.6,.001), prime.sd, type="l")
abline(v=.5,lty=2, lwd=2)
abline(v=mean(sm.dat$trump.approve,na.rm=T), lty=2)
legend("topright", c("Null Hypothesis","Sample Mean"), lty=c(2,2), lwd=c(2,1))

t.test(sm.dat$trump.approve, mu=.5)

prime.sd <- dnorm(seq(.4,.6,.001), mean=.5, sd=se)
plot(seq(.4,.6,.001), prime.sd, type="l")
abline(v=.5,lty=2, lwd=2)
abline(v=mean(sm.dat$trump.approve,na.rm=T), lty=2)
abline(v= 1-mean(sm.dat$trump.approve,na.rm=T), lty=2)
legend("topright", c("Null Hypothesis","Sample Mean"), lty=c(2,2), lwd=c(2,1))

t.test(sm.dat$trump.approve)

# approve.test <- t.test(sm.dat$trump.approve,mu=.5)
# 
# 
# 
# approve.test$p.value
# approve.test$conf.int
# approve.test$stderr

head(sm.dat)
mean(sm.dat$trump.approve[sm.dat$party=="Democrat"],na.rm=T)
mean(sm.dat$trump.approve[sm.dat$party=="Republican"],na.rm=T)

mean(sm.dat$trump.approve[sm.dat$party=="Democrat"],na.rm=T) - mean(sm.dat$trump.approve[sm.dat$party=="Republican"],na.rm=T)

t.test(sm.dat$trump.approve[sm.dat$party=="Democrat"],sm.dat$trump.approve[sm.dat$party=="Republican"])

se <- t.test(sm.dat$trump.approve[sm.dat$party=="Democrat"],sm.dat$trump.approve[sm.dat$party=="Republican"])$stderr

diff <- seq(-1,1,.001)
dens <- dnorm(diff, mean=0, sd=se)

plot(diff, dens, type="l", main="Null Sampling Distribution for Difference in Means")
abline(v=mean(sm.dat$trump.approve[sm.dat$party=="Democrat"],na.rm=T) - mean(sm.dat$trump.approve[sm.dat$party=="Republican"],na.rm=T))

t.test(sm.dat$trump.approve ~ sm.dat$party)

acs <- rio::import("https://github.com/marctrussler/IDS-Data/raw/main/ACSCountyData.csv")

mean(acs$percent.car.commute, na.rm=T)

t.test(acs$percent.car.commute, mu=100)

#Won't work:
#t.test(acs$percent.car.commute ~ acs$census.region)

acs$south <- NA
acs$south[acs$census.region=="south"] <- 1
acs$south[acs$census.region!="south"] <- 0

t.test(acs$percent.car.commute ~ acs$south)
