#!/usr/bin/env python # coding: utf-8 # 통계적 사고 (2판) 연습문제 ([thinkstats2.com](thinkstats2.com), [think-stat.xwmooc.org](http://think-stat.xwmooc.org))<br> # Allen Downey / 이광춘(xwMOOC) # In[ ]: import nsfg df = nsfg.ReadFemPreg() df # <tt>birthord</tt>에 대한 빈도수를 출력하고 [codebook](http://www.icpsr.umich.edu/nsfg6/Controller?displayPage=labelDetails&fileCode=PREG§ion=A&subSec=8016&srtLabel=611933) 게시된 결과값과 비교하시오. # In[ ]: df.birthord.value_counts().sort_index() # <tt>prglngth</tt>에 대한 빈도수를 출력하고 [codebook](http://www.icpsr.umich.edu/nsfg6/Controller?displayPage=labelDetails&fileCode=PREG§ion=A&subSec=8016&srtLabel=611931) 게시된 결과값과 비교하시오. # In[ ]: # <tt>agepreg</tt>에 대한 빈도수를 출력하고 [codebook](http://www.icpsr.umich.edu/nsfg6/Controller?displayPage=labelDetails&fileCode=PREG§ion=A&subSec=8016&srtLabel=611935)에 게시된 결과값과 비교하시오. # # 이 데이터를 살펴보고, 응답자에 대한 존경과 맥락을 고려해서 데이터에 접근하는에 필요한 의무에 관해서 저자가 언급한 논평을 기억하라. # In[ ]: # 평균 출생체중(birthweight)을 계산하시오. # In[ ]: df.totalwgt_lb.mean() # 킬로그램으로 출생체중 정보를 담는 <tt>totalwgt_kg</tt>로 불리는 새로운 칼럼을 생성하라. 평균도 계산하시오. 새로운 칼럼을 생성할 때, 점표기법이 아닌 딕셔너리 구문을 사용하는 것을 기억하라. # In[ ]: # 코드북(codebook)을 살펴보고 책에서 언급된 것이 아닌 본인이 관심있는 변수를 찾아내라. 그리고 그 변수의 빈도수, 평균, 다른 통계량을 계산하시오. # In[ ]: # 부울 시리즈(boolean Series)를 생성하시오. # In[ ]: df.outcome == 1 # 부울 시리즈를 사용해서 정상출산 임신에 대한 레코드를 선택하시오. # In[ ]: live = df[df.outcome == 1] len(live) # <tt>birthwgt_lb</tt> 변수에 0 에서 5 파운드(0과 5도 모두 포함) 사이 정상출산 빈도수를 계산하시오. 결과는 1125 가 되어야만 된다. # In[ ]: len(live[(live.birthwgt_lb >= 0) & (live.birthwgt_lb <= 5)]) # <tt>birthwgt_lb</tt> 변수에 9 에서 95 파운드(9과 95도 모두 포함) 사이 정상출산 빈도수를 계산하시오. 결과는 798 가 되어야만 된다. # In[ ]: # <tt>birthord</tt> 변수를 사용해서, 첫번째 아이와 첫째가 아닌 아이에 대한 레코드를 선택하시오. 첫번째 아이와 첫째가 아닌 아이는 얼마나 되는가? # In[ ]: firsts = df[df.birthord==1] others = df[df.birthord>1] len(firsts), len(others) # 첫번째 아이와 첫째가 아닌 아이에 대한 평균 체중을 계산하시오. # In[ ]: firsts.totalwgt_lb.mean() # In[ ]: others.totalwgt_lb.mean() # 변수 <tt>prglngth</tt>으로 첫째 아이와 첫째가 아닌 아이에 대한 평균임신기간을 계산하시오. 시간으로 표시된, 평균에 차이를 계산하시오. # In[ ]: