728x90
반응형
이미지 썸네일 삭제
(체험) 제3유형 (풀이용) - 빅데이터분석기사 실기 체험
제공된 데이터(data/Titanic.csv)는 타이타닉호의 침몰 사건에서 생존한 승객 및 사망한 승객의 정보를 포함한 자료이다. 아래 데이터를 이용하여 생존 여부(Survived)를 예측하고자 한다.각 문항의 답을 【제출 형식】에 맞춰 답안 작성 페이지에 입력하시오. (단, 벌점화(penalty)는 부여하지 않는다.) ① Gender와 Survived 변수 간의 독립성 검정을 실시하였을 때, 카이제곱 통계량은?(반올림하여 소수 셋째 자리까지 계산) ② Gender, SibSp, Parch, Fare를 독립변수로 사용하여 로지스틱 ...
dataq.goorm.io
mport pandas as pd
df = pd.read_csv("data/Titanic.csv")
#1.
# 이때 []는 두번 써줘야해
# print(df[['Gender', 'Survived']].head(5))
crosstab = pd.crosstab(df['Gender'], df['Survived'])
print(crosstab)
from scipy.stats import chi2_contingency
print(chi2_contingency(crosstab))
# 260.717 >> 왼쪽에 제출하는 란이 따로 있음
#2.
#로지스틱 회귀는 분류모델임 (회귀 모델이 아님)
#독립변수의 샘플을 확인해보니 Gender은 범주형인걸 알고 있음
print(df[['Gender', 'SibSp', 'Parch', 'Fare']].head(3))
from statsmodels.formula.api import logit
# 범주형은 C()로 감싸 줘야한다
# 종속변수를 먼저 적어 줘야함 (survived)
model = logit("Survived ~ C(Gender) + SibSp + Parch + Fare", data=df).fit()
print(model.summary())
# 가장 첫번째 있는 컬럼이 계수임
print(round(-0.2007,3))
# -0.201
#3.
import numpy as np
print(model.params['SibSp'])
print(np.exp(model.params['SibSp']))
print(np.exp(-0.3539))
#0.702
오즈비 - 퇴근후딴짓 자료 활용
로짓(logit)
- 0 또는 1이 아니라, 어떤 클래스(0또는 1)에 속할 확률값을 결정하는 함수
오즈
- 어떤 사건이 발생할 확률과 발생하지 않을 확률의 비율 (0 또는 1의 비율)
오즈비
- 두 오즈의 비율
- 로지스틱 회귀에서는 오즈비를 사용해 독립변수가 한 단위 변할 때 종속 변수의 오즈가 어떻게 변하는지 나타낸다.
- 오즈비 > 1
- 독립변수의 증가가 종속변수의 확률을 증가 시킴
- 오즈비 < 1
- 독립변수의 증가가 종속변수의 확률을 감소 시킴
- 문제
- SibSp 변수의 오즈비가 0.7
- 한 단위 증가할 때마다 생존의 오즈가 0.7배가 됨
- 형제 자매, 배우자 수가 많을 수록 생존 확률이 감소
- SibSp 변수의 오즈비가 0.7
- 오즈비를 구하는 방법
- SibSp의 계수가 −0.3436이라면, SibSp가 한 단위 증가할 때 오즈는 자연상수 e의 −0.3436 제곱
- e는 2.71828…
- numpy
- np.exp(x)
[구버전 공식 문제]
1) 표본평균
2) 검정통계량(Scipy -TTest )
3) 가설검정 결
import pandas as pd
df = pd.read_csv("data/blood_pressure.csv")
df['diff'] = df['bp_after'] - df['bp_before']
#1
print(round(df['diff'].mean(),2))
#2
from scipy import stats
# 순서대로 넣으라는거 같네요 # alternative는 H1이 음수이므로 after가 더 작아야해
result = stats.ttest_rel(df['bp_after'], df['bp_before'], alternative="less")
print(result)
print(round(result.statistic,2))
#2 풀이 방법2
# 첫번째는 검정통계 두번째는 p-value
st, pv = stats.ttest_rel(df['bp_after'], df['bp_before'], alternative="less")
print(st)
print(pv)
#3
print(round(result.pvalue,4))
728x90
'IT&게임 > 빅데이터분석기사(빅분기)' 카테고리의 다른 글
비전공자의 빅데이터분석기사 실기 후기 + 캐글사용방법 (0) | 2024.06.26 |
---|---|
[공식문제] 빅분기 제2유형 예제 문제 (분류) (0) | 2024.06.18 |
[공식문제] 빅분기 제1유형 예제문제 (MinMaxScaler) (0) | 2024.06.18 |
빅분기 작업형2 기출 정리 (0) | 2024.06.18 |
인코딩 정리(원핫인코딩/레이블인코딩) (0) | 2024.06.18 |
댓글