#!/usr/bin/env python # coding: utf-8 # 통계적 사고 (2판) 연습문제 ([thinkstats2.com](thinkstats2.com), [think-stat.xwmooc.org](http://think-stat.xwmooc.org))
# Allen Downey / 이광춘(xwMOOC) # ## 연습문제 10.1 # # BRFSS에서 나온 데이터를 사용해서, log(체중) 대비 신장에 대한 선형 최소자승적합을 계산하라. 변수중 하나가 로그 변환된 이와 같은 모형에 대해서 추정된 모수를 나타내는 가장 좋은 방식은 어떻게 될까요? 만약 누군가의 체중을 추측하려고 한다면, 신장을 아는 것이 얼마나 도움이 될까? # # NSFG와 마찬가지로, BRFSS는 일부 집단을 과다표집(oversampling)하고 각 응답자에 대해서 표집 가중치 정보를 제공한다. BRFSS 데이터에서, 해당 가중치에 대한 변수명은 totalwt다. 가중치를 갖는, 갖지 않는 재표집을 사용해서, BRFSS에 나온 평균 응답자 신장, 평균에 대한 표준오차, 90% 신뢰구간을 추정하시오. 보정 가중치가 추정값에 얼마나 영향을 주는가? # BRFSS 데이터를 불러들여서, 신장과 log 체중을 추출한다. # In[ ]: import brfss import numpy as np get_ipython().run_line_magic('matplotlib', 'inline') # In[ ]: # 절편과 기울기를 추정한다. # In[ ]: # 데이터에 대한 산점도와 적합선을 보여준다. # In[ ]: # 동일한 도식화를 하지만, 역변환을 적용해서 선형(log 아님) 척도로 체중을 나타낸다. # In[ ]: # 잔차 백분위수를 도식화한다. # # 선들이 범위 대부분에 걸쳐 평평하다. 관계가 선형임을 나타낸다. # # 선들이 거의 평행하다. 잔차 분산이 범위에 걸쳐 같음을 나타낸다. # In[ ]: # 상관을 계산한다. # In[ ]: # 결정계수를 계산한다. # In[ ]: # $R^2 = \rho^2$ 임을 확증한다. # In[ ]: # Std(ys)를 계산하는데, 신장을 사용하지 않은 예측 RMSE가 된다. # In[ ]: # Std(res)를 계산하는데, 신장을 사용하는 예측 RMSE가 된다. # In[ ]: # 신장 정보가 RMSE를 얼마나 줄이는가? 약 15% # In[ ]: # 재표본추출을 사용해서 절편과 기울기에 대한 표집분포를 계산하시오. # In[ ]: # 기울기에 대한 표집분포를 도식화하시오. # In[ ]: # 기울기에 대한 p-값을 계산하시오. # In[ ]: # 기울기 90% 신뢰구간을 계산하시오. # In[ ]: # 표집분포의 평균을 계산하시오. # In[ ]: # 표집분포에 대한 표준편차를 계산하시오. 이것이 표준오차다. # In[ ]: # 표집가중치를 사용해서 재표본추출하시오. # In[ ]: # 표집분포를 요약하시오. # In[ ]: # 가중치 없이 행을 재표본추출하고 결과를 요약하시오. # In[ ]: # 가중치를 갖고 행을 재표본추출하시오. 만약 표집 가중치를 고려하면, 추정된 평균 신장이 거의 2cm 더 크고, 차이는 표집오차보다 훨씬 크다. # In[ ]: