[통계노트] 8. R 프로그램 실습(2)

성준혁·2023년 2월 26일
0
post-thumbnail

2003년 중2 학생을 대상으로 고등학교 졸업 후까지 6년간 매년 추적조사한, 한국청소년패널조사의 데이터로 R프로그램 실습을 진행한 내용이다.

1. 두 종속표본 t검증

데이터 준비

  • 전체 데이터 : 패널조사의 1차년도 데이터와 2차년도 데이터가 연결되어 있음

① 기술통계 및 분포 확인

ex1) 1차년도와 2차년도의 '수업참여도(class_parti)' 변수에 대한 두 종속표본 t검증

  • describe(), hist(), boxplot() 로 확인
  • 차이점수(clas_parti_d)로 치환해서도 확인

② 가정 검토

  • ①에서 본 기술통계치 + 그래프로 정규성 확인됨!

③ t검증 수행

  • t.test() + paired=True로 종속표본 t검증 할 수 있음
  • 차이점수를 직접 활용해서 단일표본 t검증도 가능 → 결과는 동일!
    (※ 이미 짝 지어놨으니까 paired=True 옵션 쓰면 안 됨!!)

④ 결과 해석

  • p-value > 0.05 (α) : 영가설 기각 불가능!
    ➡️ 1차년도 수업참여도와 2차년도 수업참여도 사이에 유의한 차이가 없다!

2. 두 독립표본 t검증

데이터 준비

  • stringAsFactors=T : 문자열로 입력된 변수(ex. 성별, 학교지역 등)는 범주형으로 설정!

① 기술통계 및 분포 확인

ex1) '성별(gender)'에 따른 '성적(grade_re)'의 평균 차이 검증
"남학생 성적과 여학생 성적이 모집단에서 같은가?"

  • describeBy(A,B)로 집단별 기술통계 확인 가능 ("A를, B에 따라 describe해줘")
  • hist(), boxplot()도 마찬가지로 그려볼 수 있음

② 가정 검토

  • var.test(종속변수~집단변수, 데이터명) 으로 등분산성 검토할 수 있음.

③ t검증 수행

  • 동일하게 t.test() 쓰는데, 독립표본이니까 paired=True는 빼고 사용함.
  • 대신 등분산성 충족 여부var.equal 매개변수로 지정해 줌.

④ 결과 해석

  • p-value < 0.05 (α) : 영가설 기각 !! (=대립가설 채택)
    ➡️ 남학생 성적평균과 여학생 성적평균 사이에 유의한 차이가 있다!

3. 일원분산분석

데이터 준비

  • 전체 데이터 : 이번엔 다시 패널조사의 1차년도 데이터만 사용함

① 기술통계 및 분포 확인

ex1) '부모와의 관계(parent_rel3) 상/중/하'에 따른 '성적(grade_re)'의 평균 차이 검증
"부모관계가 좋은 학생 성적, 보통인 학생 성적, 나쁜 학생 성적들이 모집단에서 전부 같은가?"

  • describeBy(), freq(), hist(), boxplot() 으로 확인

② 가정 검토

  • qqnorm() + qqline()으로 QQ플롯 그려서 정규성 검토할 수 있음.
  • car 패키지의 leveneTest(종속변수~집단변수) 으로 등분산성 검토할 수 있음.

③ 분산분석 수행

  • [방법1] oneway.test() + var.equal 매개변수
  • [방법2] aov 객체 활용 (※이건 등분산성 충족하는 경우에만 사용 가능!!)
    → 결과는 summary()로 출력해서 확인 가능함.

④ 결과 해석

  • p-value < 0.05 (α) : 영가설 기각 !! (=대립가설 채택)
    ➡️ 부모관계 상/중/하 세 집단 평균들 중 적어도 하나는 차이가 있다!

⑤ (필요 시) 사후 비교

등분산성 OK인 경우

  • TukeyHSD() ➡️ "세 집단 모두 유의한 차이가 있다"
  • ScheffeTest() ➡️ "세 집단 모두 유의한 차이가 있다" (확실히 더 엄격하긴 함)
  • PostHocTest(method='bonferroni') ➡️ "세 집단 모두 유의한 차이가 있다"

등분산성 NO인 경우

  • oneway.test(var.equal = FALSE) 이후에 기각 시, games_howell_test() 사용!
  • (지금 이건 다른 사례이긴 하지만 여튼,,) ➡️ "세 집단 모두 유의한 차이가 있다"

4. 이원분산분석

데이터 준비

  • 이전과 동일하게 1차년도 데이터 사용 + stringAsFactors=T

① 기술통계 및 분포 확인

ex1) 부모와의 관계(parent_rel3) 상/중/하'와 '성별(gender)'에 따른 · · · · (독립변수 2개)
      '성적(grade_re)' 평균 차이 검증 · · · · · · · · · · · · · · · · · · · · · · · · · · · (종속변수 1개)

  • describeBy(), boxplot() 등으로 확인 (이전처럼 하나씩 하면 주변평균)
  • 두 독립변수를 곱⭐으로 연결해서 전달하면 각 셀 별로 확인 가능!

② 가정 검토

  • QQ플롯으로 정규성 확인. (가정 검토의 단위도 역시 각 셀!)
  • leveneTest(종속변수~집단변수)등분산성 확인.

③ 분산분석 수행

  • aov 객체 + 두 독립변수의 곱⭐ 활용 (결과는 역시 summary()로 출력)
    (➕ 합으로도 연결할 수 있는데, 실제 분석 상황에서 잘 안 씀,,)

④ 결과 해석

  • 3개 모두 p-value < 0.05 (α) : 영가설 기각 !! (=대립가설 채택)
    ➡️ 주효과 2개와 상호작용효과 1개 모두 유의하다!

⑤ (필요 시) 사후 비교

  • 마찬가지로 TukeyHSD(), ScheffeTest(), PostHocTest(method='bonferroni')
  • 적절히 인덱싱해서 통계적으로 유의한 결과만 볼 수도 있음!
    ➡️ 부모와의 관계 "세 집단 모두 유의한 차이가 있다!"

⑥ (필요 시) 평균도표 해석

  • interaction.plot()을 사용하면 평균도표(상호작용도표)를 그려볼 수 있음!
  • ⭐상호작용도표는 결측 허용하지 않으므로, na.omit()으로 결측치 지워주고 그려야 함
    ➡️ "여학생이 남학생보다, 성적에 있어서 부모와의 관계 영향을 많이 받는다!"

💯실습 과제💯

*출처 : 서울대학교 Kmooc, <교육연구와 통계방법>.

  • RStudio 파일 내부 확인



ⓒ 2023. SeongJunhyeok All rights reserved.
profile
생각은 그만

0개의 댓글