TOP
class="layout-aside-left paging-number">
본문 바로가기
[파이썬 Projects]/<파이썬 - 수학 | 통계학>

[파이썬+통계학] 현대통계학 연습문제 파이썬 구현(ch.7)-2

by 기록자_Recordian 2024. 10. 11.
728x90
반응형
★ 시작에 앞서 

 

해당 내용은 '<현대통계학-제6판>, 다산출판사, 2024' 에 나와있는 챕터별 연습문제를 교재를 응용하여 풀이하고, 수학적인 문제에 대한 답변을 파이썬으로 구현해보기 위해 작성하는 글이다.

해당 답변을 구현하는 방식은 답안지 없이 필자가 스스로 구현하는 것이므로, 정확한 (혹은 가장 효과적인) 답변이 아닐 수 있다. 이 글의 목적은 통계학 공부와 파이썬 프로그래밍 언어 공부를 동시에 하고자 함이며, 통계학을 공부하고 싶으신 분들은 해당 교재를 구매하는 것을 추천한다.

또한, 연습문제 번호 및 문제 내용은 필자가 임의대로 작성하였으며, 교재와는 다를 수 있다.

 

잘못된 부분이 있다면 언제든 피드백 부탁 드립니다! 감사합니다


이전 내용
 

[파이썬+통계학] 현대통계학 연습문제 파이썬 구현(ch.7)-1

★ 시작에 앞서 ★ 해당 내용은 ', 다산출판사, 2024' 에 나와있는 챕터별 연습문제를 교재를 응용하여 풀이하고, 수학적인 문제에 대한 답변을 파이썬으로 구현해보기 위해 작성하는 글이다.해

puppy-foot-it.tistory.com


챕터 7 주요 개념: 연속확률분포, 정규분포, 표준정규분포, Z-분포, 표준정규분포표

 

챕터7 연습문제1

 

Q. 어느 학급의 평균 시험점수는 67점이고 표준편차는 12점이다. 성적의 분포가 정규분포를 이룬다면,

1) 60점 이하를 받은 학생은 전체의 몇 %인가?

2) 하위점수 10%에 해당되는 사람은 보충수업을 받아야 한다. 몇 점 이하가 보충수업을 받는가?

3) 상위 10%에 해당하는 사람은 A학점을 주려고 한다. A를 받으려면 최소한 몇 점 이상이어야 될까?

# 시험 점수 : 보충학습, A 학점
from scipy.stats import norm

# 평균과 표준편차 설정
mu = 67    # 평균
sigma = 12  # 표준편차

# 60점 이하의 비율
cdf_60 = norm.cdf(60, loc=mu, scale=sigma)  

# 보충수업 받을 점수 기준
ppf_1 = norm.ppf(0.1, loc=mu, scale=sigma) # 하위 10%

# A학점 받을 점수 기준
ppf_2 = norm.ppf(0.9, loc=mu, scale=sigma) # 상위 10% (=누적 90%)

# 결과 출력
print(f'60점 이하의 비율: {cdf_60*100:.2f}%')
print(f'보충 수업 받을 점수 기준: {ppf_1:.1f}')
print(f'A학점 받을 점수 기준: {ppf_2:.1f}')


챕터7 연습문제2

 

Q. 다음의 조건에 해당하는 Z값을 찾아보라.

# Z값 찾기
from scipy import stats

# 0부터 Z까지의 면적: 0.3770
x_1 = 0.3770

# Z의 왼쪽 부분의 면적이 0.8621
x_2 = 0.8621

# Z값 계산
z_1 = stats.norm.ppf(x_1)  # 누적 확률 0.3770에 해당하는 Z값
z_2 = stats.norm.ppf(x_2)  # 누적 확률 0.8621에 해당하는 Z값

print(f'Z값 (면적 0.3770에 해당): {z_1:.4f}')
print(f'Z값 (면적 0.8621에 해당): {z_2:.4f}')

 


챕터7 연습문제3

 

Q. 천 명의 종업원을 고용하고 있는 회사가 있다. 이 회사의 종업원들의 근무연수는 평균 9년, 표준편차 5년으로 정규분포를 이룬다고 한다.

1) 종업원들 중에서 20년이상 근무한 사람은 약 몇 명인가?

2) 약 10년을 근무한 사람은 몇 명쯤 되는가? (9년 반~ 10년 반)

3) 근무연수가 가장 오래된 10%의 종업원은 이 회사에서 몇 년 이상 근무했다고 볼 수 있는가?

 

# 종업원들의 근무연수
from scipy.stats import norm

# 평균과 표준편차 설정
mu = 9    # 평균
sigma = 5  # 표준편차

# 20년 이하의 비율
cdf_20 = norm.cdf(20, loc=mu, scale=sigma)  

# 20년 이상의 비율
upper_20 = 1 - cdf_20

# 9년반에서 10년반 근무한 사람의 비율
cdf_9 = norm.cdf(9.5, loc=mu, scale=sigma) # 9년 반
cdf_10 = norm.cdf(10.5, loc=mu, scale=sigma) #10년 반

proba = cdf_10 - cdf_9

# 근무연수가 가장 오래된 10% 종업원 근속연수
ppf_2 = norm.ppf(0.9, loc=mu, scale=sigma) # 상위 10% (=누적 90%)

# 결과 출력
print(f'20년 이상 근무한 사람 비율: {upper_20*1000:.2f}명')
print(f'약 10년 근무한 사람: {proba*1000:.1f}명')
print(f'상위 10% 근속연수: {ppf_2:.2f}년')


챕터7 연습문제4

 

Q. 어떤 시험의 평균 점수가 72점, 표준편차가 9점이며 정규분포를 이룬다. 학생들 중 상위 5%만이 A학점을 받는다. A를 받기 위한 최소점수는?

# A를 받기 위한 최소점수
from scipy.stats import norm

# 평균과 표준편차 설정
mu = 72  # 평균
sigma = 9 # 표준편차

# 상위 5%만 A학점
ppf = norm.ppf(0.95, loc=mu, scale=sigma) # 상위 5% (=누적 95%)

# 결과 출력
print(f'A학점을 받기 위한 최소점수: {ppf:.2f}점')


챕터7 연습문제5

 

Q. 토리초등학교에 다니는 학생들의 몸무게가 정규분포를 이룬다고 가정하자. 이 학생들의 몸무게는 평균이 36kg 이고 표준편차가 4kg 이다.

1) 한 학생을 무작위로 선택했을 때, 그 학생의 몸무게가 42kg이 넘을 가능성은?

2) 위의 학생의 몸무게가 39kg 이상이 될 확률은?

3) 몸무게가 상위권에서 4% 에 속하기 위하여는 최소한 몇 kg 이 되어야 하는가?

# 토리 초등학교 몸무게
from scipy.stats import norm

# 평균과 표준편차 설정
mu = 36  # 평균
sigma = 4 # 표준편차

# 몸무게가 42 이상일 확률
cdf_42 = norm.cdf(42, loc=mu, scale=sigma) # 42 이하
upper_42 = 1 - cdf_42

# 해당 학생이 몸무게가 39kg 이상일 확률
cdf_39 = norm.cdf(39, loc=mu, scale=sigma)
upper_39 = 1 - cdf_39 # 39 이상일 확률

# 상위 4%의 몸무게
ppf = norm.ppf(0.96, loc=mu, scale=sigma) # 상위 4% (=누적 96%)

# 결과 출력
print(f'42kg 이상일 확률: {upper_42*100:.2f}%')
print(f'39kg 이상일 확률: {upper_39*100:.2f}%')
print(f'상위 4% 몸무게: {ppf:.2f}kg')


다음 내용

 

728x90
반응형