# 매월 매출액 1000만원인지 - 한집단의 평균

# 마케팅 전/후 각각의 표본 1000명 - 독립표본 T 검정
# 마케팅 전/후 동일한 표본 - 쌍체표본 T 검정

# 한 집단 1000명의 브랜드 인지율 - 한집단의 비율
# 한 모집단의 비율에 대한 구간 추정
# 국립안전심의회(NSC)는 연말연시 기간에 교통사고로 500명이 사망하고 25,000명이 부상을 입는다고 추정.
# NSC는 사고의 50%가 음주운전으로 발생한다고 주장. 120건의 교통사고를 표본 조사한 결과 67건이 음주운전 사고.
# 이 자료를 바탕으로 음주운전으로 일어난 사고의 비율에 대한 95% 신뢰구간을 구하시오.
# 유의수준 0.05에서 NSC의 주장을 검정하시오.

# H0 : p = 0.5

# 가정 체크
# np >= 5 && n(1-p) >= 5 이면 정규분포를 따른다.

120 * 0.5   # = 60
## [1] 60
prop.test(x = 67, n = 120, p = 0.5)
## 
##  1-sample proportions test with continuity correction
## 
## data:  67 out of 120, null probability 0.5
## X-squared = 1.4083, df = 1, p-value = 0.2353
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.4649273 0.6479534
## sample estimates:
##         p 
## 0.5583333
# 95% 신뢰구간 : p = 0.465 ~ 0.648
# p-value = 0.2353 > 0.05 : 귀무가설을 기각할 수 없다.
# 두 모집단의 비율 비교
# 광고 캠페인 시작 전 150 가구 중 60 가구가 상품에 대해 인지 (p1)
# 캠페인 이후 250 가구 중 120 가구가 상품 인지 (p2)
# 광고 캠페인이 제품에 대한 인지도를 증가시켰는가?

# H0 : p1 - p2 = 0
# H1 : p1 - p2 < 0   (= p1 < p2)

# 가정 체크 : np >= 5 && n(1-p) >= 5
150 * (60/150)
## [1] 60
150 * (1 - 60/150)
## [1] 90
# prop.test( x, n )
prop.test( c(60, 120), c(150, 250), alternative = "less")
## 
##  2-sample test for equality of proportions with continuity
##  correction
## 
## data:  c(60, 120) out of c(150, 250)
## X-squared = 2.1118, df = 1, p-value = 0.07308
## alternative hypothesis: less
## 95 percent confidence interval:
##  -1.00000000  0.00917893
## sample estimates:
## prop 1 prop 2 
##   0.40   0.48
# 결론
# p-value = 0.07308 > 0.05 : 귀무가설 기각할 수 없음. 캠페인 효과 인정할 수 없음.
# 95% 신뢰구간 두 비율의 차이 : -1.000 ~ 0.009
# 독립성 테스트 (Chi-squared test)
# 두 범주형 자료가 독립인지 검증

# 두개의 범주형자료
# 각 변수당 2개 이상의 카테고리 존재(예, m개, k개) 
# 총 m*k 개의 cell

# (예)
# 맥주 선호도는 성별에 독립인가? (맥주종류 vs. 성별) : 독립적이라면 맥주종류별 선호 비율이 남녀가 동일
# 불량품 발생률이 작업교대조별(혹은 종류별)로 관련이 있는가?
# 여론조사에서 특정 주제에 대한 의견이 성별(혹은 지역, 소득수준, 교육수준)과 관련이 있는가?


# Case. 소득수준과 우울증이 관련이 있는지. 300 명 조사.
# 소득수준      우울증상 : 있다     없다
#   저소득                 33       67
#   중간층                 28       122
#   고소득                 5        45

# H0 : 소득수준(가로)과 우울증(세로)은 독립적이다 (서로 영향을 주지 않는다).

data <- matrix(c(33,28,5,67,122,45), 3, 2)
data
##      [,1] [,2]
## [1,]   33   67
## [2,]   28  122
## [3,]    5   45
# 검정 통계량 : 카이제곱 검정(Pearson's Chi-squared test)
# 자유도 = (k-1)*(m-1)
chisq.test(data)
## 
##  Pearson's Chi-squared test
## 
## data:  data
## X-squared = 12.218, df = 2, p-value = 0.002222
# p-value = 0.002222 < 0.05 : 귀무가설 기각.
# 소득수준과 우울증은 상관관계가 있다.
# 분할표 (Contingency Table) - xtabs()
# 1. 각 셀에 해당하는 자료의 수(count)가 있는 경우

# treat     outcome     count
# placebo   1           16
# placebo   0           48
# test      1           40
# test      0           20

# xtabs(도수 ~ 가로 + 세로)  :  xtabs(count ~ treat + outcome, data = df)


# 2. 각 셀에 해당하는 자료의 수가 없는 경우

# treat     outcome
# placebo   1
# placebo   0
# test      1
# test      0

# xtabs(~ 가로 + 세로)  :  xtabs(~ treat + outcome, data = df)

df <- data.frame(treat = sample(c("placebo","test"), 100, replace = T), outcome = sample(0:1, 100,replace = T))
head(df);tail(df)
##     treat outcome
## 1    test       0
## 2    test       0
## 3 placebo       1
## 4 placebo       1
## 5    test       1
## 6 placebo       0
##       treat outcome
## 95     test       1
## 96  placebo       1
## 97  placebo       1
## 98  placebo       1
## 99     test       0
## 100 placebo       0
xtabs(~ treat + outcome, data = df)
##          outcome
## treat      0  1
##   placebo 28 22
##   test    31 19
# 3. 직접 만들기
tab <- matrix(c(48,20,16,40), ncol = 2)
colnames(tab) <- c("0", "1")
rownames(tab) <- c("placebo", "test")
tab
##          0  1
## placebo 48 16
## test    20 40
mosaicplot(tab, xlab = "treat", ylab = "outcome")

chisq.test(tab) # 가로(치료방법)와 세로(치료결과)가 독립적인지(= H0) 검정. 
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  tab
## X-squared = 20.059, df = 1, p-value = 7.509e-06
                # p-value < 0.05 : 귀무가설 기각.
                # 치료방법은 치료결과에 영향을 준다.
# practice 3
# 뉴욕시민 의견 조사 (1 yes, 2 no)
# Party : 소속 정당
# Q1. PayCut : 예산 집행이 지연시 의원 급여 삭감 여부
# Q2. Lobbyists : 로비스트에 대한 추가 제한 필요
# Q3. TermLimits : 의회 의원 임기 제한 필요

df_NY <- read.csv("data/NYReform.csv")
head(df_NY)
##   Observation    Party PayCut Lobbyists TermLimits
## 1           1 Democrat      1         2          2
## 2           2 Democrat      1         1          2
## 3           3 Democrat      2         1          2
## 4           4 Democrat      1         2          1
## 5           5 Democrat      2         2          2
## 6           6 Democrat      2         1          1
summary(df_NY)
##   Observation             Party        PayCut       Lobbyists  
##  Min.   :  1.00   Democrat   :36   Min.   :1.00   Min.   :1.0  
##  1st Qu.: 25.75   Independent:19   1st Qu.:1.00   1st Qu.:1.0  
##  Median : 50.50   Republican :45   Median :1.00   Median :1.0  
##  Mean   : 50.50                    Mean   :1.29   Mean   :1.3  
##  3rd Qu.: 75.25                    3rd Qu.:2.00   3rd Qu.:2.0  
##  Max.   :100.00                    Max.   :2.00   Max.   :2.0  
##    TermLimits  
##  Min.   :1.00  
##  1st Qu.:1.00  
##  Median :1.00  
##  Mean   :1.41  
##  3rd Qu.:2.00  
##  Max.   :2.00
# (1) 각 질문별 분할표 생성
# (2) 응답결과와 정당 가입 여부간의 독립성 검정

# Q1.
tab1 <- xtabs(~PayCut + Party, data = df_NY)
tab1
##       Party
## PayCut Democrat Independent Republican
##      1       22          10         39
##      2       14           9          6
chisq.test(tab1)   # p-value = 0.006135 < 0.05 : 독립적이지 않다. 소속 정당과 상관관계가 있다.
## 
##  Pearson's Chi-squared test
## 
## data:  tab1
## X-squared = 10.187, df = 2, p-value = 0.006135
par(mfcol=c(1,2), las = 1)
mosaicplot(tab1)
mosaicplot(t(tab1))

# Q2.
tab2 <- xtabs(~Lobbyists + Party, data = df_NY)
tab2
##          Party
## Lobbyists Democrat Independent Republican
##         1       21          15         34
##         2       15           4         11
chisq.test(tab2)   # p-value = 0.1557 > 0.05 : 독립적이다
## 
##  Pearson's Chi-squared test
## 
## data:  tab2
## X-squared = 3.719, df = 2, p-value = 0.1557
mosaicplot(tab2)
mosaicplot(t(tab2))

# Q3.
tab3 <- xtabs(~TermLimits + Party, data = df_NY)
tab3
##           Party
## TermLimits Democrat Independent Republican
##          1       17          10         32
##          2       19           9         13
chisq.test(tab3)   # p-value = 0.07763 > 0.05 : 독립적이다
## 
##  Pearson's Chi-squared test
## 
## data:  tab3
## X-squared = 5.1116, df = 2, p-value = 0.07763
mosaicplot(tab3)
mosaicplot(t(tab3))

par(mfcol=c(1,1))


# (3) Q3에 대해 공화당원(Republican)들이 민주당원(Democrat)들보다 yes 라고 응답한 비율이 크다고 할 수 있는가?

# H0 : p(Democrat) - p(Republican) = 0
# H1 : p(Democrat) - p(Republican) < 0
prop.test(c(17,32), c(36,45), alternative = "less")
## 
##  2-sample test for equality of proportions with continuity
##  correction
## 
## data:  c(17, 32) out of c(36, 45)
## X-squared = 3.8285, df = 1, p-value = 0.02519
## alternative hypothesis: less
## 95 percent confidence interval:
##  -1.00000000 -0.03758875
## sample estimates:
##    prop 1    prop 2 
## 0.4722222 0.7111111
# H0 : p(Republican) - p(Democrat) = 0
# H1 : p(Republican) - p(Democrat) > 0
prop.test(c(32,17), c(45,36), alternative = "greater")
## 
##  2-sample test for equality of proportions with continuity
##  correction
## 
## data:  c(32, 17) out of c(45, 36)
## X-squared = 3.8285, df = 1, p-value = 0.02519
## alternative hypothesis: greater
## 95 percent confidence interval:
##  0.03758875 1.00000000
## sample estimates:
##    prop 1    prop 2 
## 0.7111111 0.4722222
# 결론 : p-value = 0.02519 < 0.05 : 귀무가설 기각. 공화당원이 yes 라고 응답한 비율이 크다.


# (4) Q2에서 민주당원들이 yes라고 응답한 비율이 0.5가 아니라고 할 수 있는가?

# H0 : p = 0.5
prop.test(21, 36, p = 0.5)   # p-value = 0.4047 > 0.05 : 귀무가설 채택. 
## 
##  1-sample proportions test with continuity correction
## 
## data:  21 out of 36, null probability 0.5
## X-squared = 0.69444, df = 1, p-value = 0.4047
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.4088510 0.7404299
## sample estimates:
##         p 
## 0.5833333