hossam.my_stats¶
hossam.my_stats ¶
ci ¶
ci(data, column=None, clevel=0.95)
주어진 데이터에 대한 모평균의 신뢰구간을 계산하는 함수
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
Series | list | ndarray | DataFrame
|
연속형 데이터 또는 데이터프레임 |
required |
column
|
str
|
data가 데이터프레임인 경우 대상 컬럼명 (기본값: None) |
None
|
clevel
|
float
|
신뢰수준 (기본값: 0.95) |
0.95
|
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(신뢰구간 하한, 신뢰구간 상한) |
test_assumptions ¶
test_assumptions(
data, columns=None, alpha=0.05, center="median"
)
가설검정의 가정(정규성, 등분산성)을 일괄적으로 검정하여 결과표를 반환하는 함수
각 변수에 대해 정규성 검정(normaltest)을 수행하고, 변수가 두 개 이상인 경우 등분산성 검정을 수행한다. 이때 모든 변수가 정규성을 충족하면 Bartlett 검정을, 하나라도 충족하지 못하면 Levene 검정을 선택적으로 사용한다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
검정 대상이 되는 데이터프레임 |
required |
columns
|
list
|
검정에 사용할 컬럼명 목록 (기본값: None → 수치형 컬럼 전체) |
None
|
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
center
|
str
|
Levene 검정 시 사용할 중심 경향값 (기본값: "median") |
'median'
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
field를 인덱스로 하는 검정 결과표 (test, statistic, p-value, result 컬럼 포함) |
test_1sample ¶
test_1sample(data, column, popmean=0, alpha=0.05)
한 집단의 평균이 기준값(popmean)과 같은지 검정하는 함수
test_paired ¶
test_paired(
data,
before,
after,
alpha=0.05,
plot=True,
palette=None,
title=None,
xlabel=None,
ylabel=None,
width=1280,
height=640,
save_path=None,
)
짝지어진 두 측정값(전/후)의 차이가 있는지 검정하는 함수 (wide 형식)
차이값 d = after - before 의 정규성 충족 시 대응표본 t검정, 미충족 시 Wilcoxon 부호순위 검정을 수행하며, 양측·좌측단측·우측단측 세 가지 대립가설을 일괄 검정한다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
검정 대상 데이터프레임 |
required |
before
|
str
|
사전 측정값 컬럼명 |
required |
after
|
str
|
사후 측정값 컬럼명 |
required |
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
plot
|
bool
|
결과를 시각화할지 여부 (기본값: True) |
True
|
palette
|
str or list
|
색상 팔레트 |
None
|
title
|
str
|
그래프 제목 |
None
|
xlabel
|
str
|
x축 라벨 |
None
|
ylabel
|
str
|
y축 라벨 |
None
|
width
|
int
|
그래프 가로 크기 |
1280
|
height
|
int
|
그래프 세로 크기 |
640
|
save_path
|
str
|
그래프 저장 경로 |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
대립가설(alternative)별 검정·통계량·p-value·유의성 결과표 |
test_independent ¶
test_independent(
data,
group1,
group2,
alpha=0.05,
plot=True,
palette=None,
title=None,
xlabel=None,
ylabel=None,
width=1280,
height=640,
save_path=None,
)
독립된 두 집단의 평균이 같은지 검정하는 함수
두 집단 모두 정규성 충족 시 등분산성에 따라 Student/Welch t검정, 하나라도 미충족 시 Mann–Whitney U 검정을 수행하며, 양측·좌측단측·우측단측 세 가지 대립가설을 일괄 검정한다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
검정 대상 데이터프레임 |
required |
group1
|
str
|
첫 번째 집단의 측정값 컬럼명 |
required |
group2
|
str
|
두 번째 집단의 측정값 컬럼명 |
required |
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
plot
|
bool
|
결과를 시각화할지 여부 (기본값: True) |
True
|
palette
|
str or list
|
색상 팔레트 (기본값: None) |
None
|
title
|
str
|
그래프 제목 (기본값: None) |
None
|
xlabel
|
str
|
x축 라벨 (기본값: None) |
None
|
ylabel
|
str
|
y축 라벨 (기본값: None) |
None
|
width
|
int
|
그래프 너비 (기본값: 1280) |
1280
|
height
|
int
|
그래프 높이 (기본값: 640) |
640
|
save_path
|
str
|
그래프 저장 경로 (기본값: None) |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
대립가설(alternative)별 검정·통계량·p-value·유의성 결과표 |
anova_oneway ¶
anova_oneway(data, y, between, alpha=0.05)
일원분산분석 (One-way ANOVA)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
검정 대상 데이터프레임 (long 형식) |
required |
yy
|
str
|
종속변수(연속형) 컬럼명 |
required |
between
|
str
|
집단을 구분하는 독립변수(명목형) 컬럼명 |
required |
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
pingouin의 분산분석 결과표(One-way ANOVA 또는 Welch-ANOVA)에 설명용 컬럼을 덧붙인 결과표. - test: 사용한 검정 이름 - effect_size: np2 기준 효과크기 해석 라벨(큼/중간/작음/미미함) |
posthoc_oneway ¶
posthoc_oneway(
data,
y,
between,
alpha=0.05,
plot=True,
summary=True,
palette=None,
title=None,
xlabel=None,
ylabel=None,
width=1280,
height=640,
save_path=None,
)
일원분산분석(One-way ANOVA)의 사후검정을 수행하는 함수
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
검정 대상 데이터프레임 (long 형식) |
required |
y
|
str
|
종속변수(연속형) 컬럼명 |
required |
between
|
str
|
집단을 구분하는 독립변수(명목형) 컬럼명 |
required |
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
plot
|
bool
|
결과를 시각화할지 여부 (기본값: True) |
True
|
summary
|
bool
|
결과 요약(비교쌍 수, 유의한 쌍 수, 평균차가 가장 큰/작은 쌍)을 출력할지 여부 (기본값: True) |
True
|
palette
|
str or list
|
색상 팔레트 (기본값: None) |
None
|
title
|
str
|
그래프 제목 (기본값: None) |
None
|
xlabel
|
str
|
x축 라벨 (기본값: None) |
None
|
ylabel
|
str
|
y축 라벨 (기본값: None) |
None
|
width
|
int
|
그래프 너비 (기본값: 1280) |
1280
|
height
|
int
|
그래프 높이 (기본값: 640) |
640
|
save_path
|
str
|
그래프 저장 경로 (기본값: None) |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
그룹 쌍별 사후검정 결과표(Tukey HSD 또는 Games-Howell) |
anova_twoway ¶
anova_twoway(
data,
y,
between,
alpha=0.05,
order=None,
plot=True,
palette=None,
title=None,
ylabel=None,
width=640,
height=480,
save_path=None,
)
이원분산분석 (Two-way ANOVA) - 등분산 충족: 일반 이원분산분석(pingouin.anova) - 등분산 미충족: Type-II ANOVA
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
검정 대상 데이터프레임 (long 형식) |
required |
y
|
str
|
종속변수(연속형) 컬럼명 |
required |
between
|
list
|
집단을 구분하는 두 개의 독립변수(명목형) 컬럼명 리스트 |
required |
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
order
|
list
|
두 독립변수의 수준 표시 순서를 담은 리스트의 리스트. (기본값: None) 예: [['low', 'med', 'high'], ['weekly', 'daily']] |
None
|
plot
|
bool
|
상호작용 플롯을 시각화할지 여부 (기본값: True) |
True
|
palette
|
str or list
|
색상 팔레트 (기본값: None) |
None
|
title
|
str
|
그래프 전체 제목 (기본값: None) |
None
|
ylabel
|
str
|
y축 라벨 (기본값: None이면 "평균 {y}") |
None
|
width
|
int
|
서브플롯 한 칸의 너비 (기본값: 640) |
640
|
height
|
int
|
서브플롯 한 칸의 높이 (기본값: 480) |
480
|
save_path
|
str
|
그래프 저장 경로 (기본값: None) |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
이원분산분석 결과표에 설명용 컬럼을 덧붙인 결과표 |
posthoc_twoway ¶
posthoc_twoway(
data,
y,
between,
alpha=0.05,
plot=True,
summary=True,
palette=None,
title=None,
xlabel=None,
ylabel=None,
width=1280,
height=640,
save_path=None,
)
이원분산분석(Two-way ANOVA)의 사후검정을 수행하는 함수 - 등분산 충족: Tukey HSD - 등분산 미충족: Games-Howell
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
검정 대상 데이터프레임 (long 형식) |
required |
y
|
str
|
종속변수(연속형) 컬럼명 |
required |
between
|
list
|
집단을 구분하는 두 개의 독립변수(명목형) 컬럼명 리스트 |
required |
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
plot
|
bool
|
결과를 시각화할지 여부 (기본값: True) |
True
|
summary
|
bool
|
결과 요약(비교쌍 수, 유의한 쌍 수, 평균차가 가장 큰/작은 쌍, 첫 번째 요인의 수준별 유의한 쌍)을 출력할지 여부 (기본값: True) |
True
|
palette
|
str or list
|
색상 팔레트 (기본값: None) |
None
|
title
|
str
|
그래프 제목 (기본값: None이면 "조합(셀)별 {y} 분포") |
None
|
xlabel
|
str
|
x축 라벨 (기본값: None이면 "조합 ({between[0]}, {between[1]})") |
None
|
ylabel
|
str
|
y축 라벨 (기본값: None이면 y) |
None
|
width
|
int
|
그래프 너비 (기본값: 1280) |
1280
|
height
|
int
|
그래프 높이 (기본값: 640) |
640
|
save_path
|
str
|
그래프 저장 경로 (기본값: None) |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
조합(셀) 집단 쌍별 사후검정 결과표(Tukey HSD 또는 Games-Howell) |
correlation ¶
correlation(
data,
x,
y,
alpha=0.05,
plot=True,
palette=None,
title=None,
xlabel=None,
ylabel=None,
width=1280,
height=640,
save_path=None,
)
두 연속형 변수의 상관분석을 일괄 수행하는 함수
상관분석의 가정(정규성·선형성·이상치의 영향)을 차례로 점검한 뒤, 가정 충족 여부에 따라 피어슨 또는 스피어만 상관계수를 자동으로 선택하여 상관계수와 유의확률을 산출한다. - 모든 가정 충족: 피어슨 상관계수(Pearson r) - 비선형 / 비정규 / 영향점·큰 왜도 존재: 스피어만 상관계수(Spearman ρ)
가정 점검 절차는 다음과 같다. 1. 정규성: 각 변수에 대해 normaltest(D'Agostino-Pearson) 수행 2. 선형성: 단순회귀 모형에 Ramsey RESET Test(power=2) 수행 3. 이상치(영향점): IQR(사분위수) 울타리를 벗어난 행을 제외했을 때 피어슨 r의 변화량으로 판단하고, 각 변수의 |왜도|>1 여부를 함께 본다. (단순한 이상치의 존재가 아니라 상관계수를 실제로 왜곡하는 '영향점'인지를 기준으로 삼는다.)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
분석 대상 데이터프레임 |
required |
x
|
str
|
첫 번째 연속형 변수 컬럼명 |
required |
y
|
str
|
두 번째 연속형 변수 컬럼명 |
required |
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
plot
|
bool
|
산점도(회귀선 포함)를 시각화할지 여부 (기본값: True) |
True
|
palette
|
str or list
|
색상 팔레트 (기본값: None) |
None
|
title
|
str
|
그래프 제목 (기본값: None) |
None
|
xlabel
|
str
|
x축 라벨 (기본값: None) |
None
|
ylabel
|
str
|
y축 라벨 (기본값: None) |
None
|
width
|
int
|
그래프 너비 (기본값: 1280) |
1280
|
height
|
int
|
그래프 높이 (기본값: 640) |
640
|
save_path
|
str
|
그래프 저장 경로 (기본값: None) |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
(x, y)를 인덱스로 하는 단일 행 결과표 - method: 선택된 상관계수 (Pearson / Spearman) - coef: 상관계수 - p-value: 유의확률 - strength: |coef| 기준 상관 강도 라벨(Strong/Moderate/Weak/None) - significant: p값이 유의수준 미만인지 여부 - normality_x / normality_y: 각 변수의 정규성 충족 여부 - linearity: 선형성 충족 여부 - influential_outlier: 상관계수를 왜곡하는 영향점 존재 여부 - high_skew: |왜도|>1 인 변수 존재 여부 |
multi_correlation ¶
multi_correlation(
data,
columns=None,
alpha=0.05,
plot=True,
palette=None,
diag_kind="kde",
reg=False,
title=None,
width=1280,
height=1024,
save_path=None,
)
여러 변수 쌍에 대한 상관분석을 일괄 수행하고 결과를 출력하는 함수
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
분석 대상 데이터프레임 |
required |
columns
|
list
|
분석에 사용할 컬럼명 목록 (기본값: None → 수치형 컬럼 전체) |
None
|
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
plot
|
bool
|
산점도 행렬을 시각화할지 여부 (기본값: True) |
True
|
palette
|
str or list
|
색상 팔레트 (기본값: None) |
None
|
diag_kind
|
str
|
산점도 행렬 대각선 그래프 종류 'hist' 또는 'kde' (기본값: "kde") |
'kde'
|
reg
|
bool
|
산점도 행렬에 회귀선 표시 여부 (기본값: False) |
False
|
title
|
str
|
산점도 행렬 제목 (기본값: None) |
None
|
width
|
int
|
그래프 너비 (기본값: 1280) |
1280
|
height
|
int
|
그래프 높이 (기본값: 1024) |
1024
|
save_path
|
str
|
그래프 저장 경로 (기본값: None) |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
변수 쌍별 상관분석 결과표 - x: 첫 번째 변수명 - y: 두 번째 변수명 - method: 선택된 상관계수 (Pearson / Spearman) - coef: 상관계수 - p-value: 유의확률 - strength: |coef| 기준 상관 강도 라벨(Strong/Moderate/Weak/None) - significant: p값이 유의수준 미만인지 여부 - normality_x / normality_y: 각 변수의 정규성 충족 여부 - linearity: 선형성 충족 여부 - influential_outlier: 상관계수를 왜곡하는 영향점 존재 여부 - high_skew: |왜도|>1 인 변수 존재 여부 |
correlation_summary ¶
correlation_summary(corr_df, strength='Strong')
multi_correlation()의 결과표를 변수별 중복(다중공선성) 신호로 집계하는 함수
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
corr_df
|
DataFrame
|
multi_correlation()이 리턴한 변수 쌍별 상관분석 결과표 |
required |
strength
|
str or list
|
중복으로 간주할 상관 강도 라벨 (기본값: "Strong" → |coef|≥0.7 인 쌍만 중복으로 집계) |
'Strong'
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
변수별 집계표 (중복이 심한 변수부터 정렬) - index: 변수명 - max-y: 상관계수 절대값이 가장 큰 상대 변수명 - max-coef: 그 때의 상관계수 - count: 중복으로 집계된 쌍의 개수 (없으면 0) - columns: 중복으로 집계된 상대 변수명을 쉼표로 연결한 문자열 (없으면 "-") |
chi2_goodness_of_fit ¶
chi2_goodness_of_fit(
data,
column,
expected=None,
order=None,
alpha=0.05,
plot=True,
palette=None,
title=None,
xlabel=None,
ylabel=None,
width=1280,
height=640,
save_path=None,
)
적합도 검정을 가정확인부터 강도까지 일괄 수행하는 함수 한 범주형 변수의 분포가 기대 분포(기본: 균등)와 일치하는지 검정한다. 절차는 ① 기대빈도 가정 점검 → ② 카이제곱 적합도 검정 → ③ 효과크기(Cohen's w) 순이다. 적합도 검정에는 2x2 Fisher 같은 정확검정 대안이 없으므로, 기대빈도 가정을 위반하면 범주 병합을 권장한다(recommend 컬럼).
plot=True이면 범주별 관측빈도와 기대빈도를 막대그래프로 나란히 비교한다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
원본 데이터프레임 |
required |
column
|
str
|
검정 대상 범주형 변수명 |
required |
expected
|
list | None
|
각 범주의 기대빈도 또는 기대비율. None이면 균등분포 (기본값: None) |
None
|
order
|
명목형 범주의 표시·계산 순서를 지정하는 리스트 (기본값: None → 라벨 순) expected를 리스트로 지정할 때는 이 순서와 위치가 일치해야 한다. |
None
|
|
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
plot
|
bool
|
결과를 시각화할지 여부 (기본값: True) |
True
|
palette
|
str or list
|
색상 팔레트 (기본값: None) |
None
|
title
|
str
|
그래프 제목 (기본값: None) |
None
|
xlabel
|
str
|
x축 라벨 (기본값: None → 변수명) |
None
|
ylabel
|
str
|
y축 라벨 (기본값: None → "빈도") |
None
|
width
|
int
|
그래프 너비 (기본값: 1280) |
1280
|
height
|
int
|
그래프 높이 (기본값: 640) |
640
|
save_path
|
str
|
그래프 저장 경로 (기본값: None) |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
단일 행 결과표 - test: 사용한 검정 이름 - chi2 / dof / p-value / significant: 검정통계량·자유도·유의확률·유의성 - effect(w): 효과크기 Cohen's w (= sqrt(chi2 / n)) - strength: 효과크기 강도 라벨 - min_expected: 최소 기대빈도 - assumption: 기대빈도 가정 충족 여부 - recommend: 권장 분석 방법(가정 위반 시 범주 병합) |
chi2_independence ¶
chi2_independence(
data,
x,
y,
alpha=0.05,
plot=True,
palette=None,
orient="v",
title=None,
xlabel=None,
ylabel=None,
width=1280,
height=640,
save_path=None,
)
독립성 검정을 가정확인부터 강도까지 일괄 수행하는 함수
한 집단을 두 범주형 변수로 교차분류하여 두 변수의 관련성을 검정한다. 절차는 ① 기대빈도 가정 점검 → ② 가정 충족 시 카이제곱, 위반(2x2) 시 피셔 정확검정 → ③ 효과크기(크라메르 V) 순이다. plot=True이면 x 범주별 y 구성비를 100% 누적 막대그래프로 시각화한다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
원본 데이터프레임 (개별 관측치) |
required |
x
|
str
|
교차표의 행이 될 범주형 변수명 |
required |
y
|
str
|
교차표의 열이 될 범주형 변수명 |
required |
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
plot
|
bool
|
결과를 시각화할지 여부 (기본값: True) |
True
|
palette
|
str or list
|
색상 팔레트 (기본값: None) |
None
|
title
|
str
|
그래프 제목 (기본값: None) |
None
|
xlabel
|
str
|
x축 라벨 (기본값: None → x 변수명) |
None
|
ylabel
|
str
|
y축 라벨 (기본값: None → "비율(%)") |
None
|
width
|
int
|
그래프 너비 (기본값: 1280) |
1280
|
height
|
int
|
그래프 높이 (기본값: 640) |
640
|
save_path
|
str
|
그래프 저장 경로 (기본값: None) |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
(row, col)를 인덱스로 하는 단일 행 결과표 (test, chi2, dof, p-value, significant, effect(V), strength, min_expected, assumption) |
chi2_homogeneity ¶
chi2_homogeneity(
data,
group,
category,
alpha=0.05,
plot=True,
palette=None,
orient="v",
title=None,
xlabel=None,
ylabel=None,
width=1280,
height=640,
save_path=None,
)
동질성 검정을 가정확인부터 강도까지 일괄 수행하는 함수
여러 집단(group)의 범주(category) 분포가 동일한지 검정한다. 계산은 독립성 검정과 완전히 동일하며, 절차는 ① 기대빈도 가정 점검 → ② 가정 충족 시 카이제곱, 위반(2x2) 시 피셔 정확검정 → ③ 효과크기(크라메르 V) 순이다. plot=True이면 집단별 범주 구성비를 100% 누적 막대그래프로 시각화한다.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
DataFrame
|
원본 데이터프레임 (개별 관측치) |
required |
group
|
str
|
집단을 구분하는 범주형 변수명 |
required |
category
|
str
|
분포를 비교할 범주형 변수명 |
required |
alpha
|
float
|
유의수준 (기본값: 0.05) |
0.05
|
plot
|
bool
|
결과를 시각화할지 여부 (기본값: True) |
True
|
palette
|
str or list
|
색상 팔레트 (기본값: None) |
None
|
title
|
str
|
그래프 제목 (기본값: None) |
None
|
xlabel
|
str
|
x축 라벨 (기본값: None → group 변수명) |
None
|
ylabel
|
str
|
y축 라벨 (기본값: None → "비율(%)") |
None
|
width
|
int
|
그래프 너비 (기본값: 1280) |
1280
|
height
|
int
|
그래프 높이 (기본값: 640) |
640
|
save_path
|
str
|
그래프 저장 경로 (기본값: None) |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
(row, col)를 인덱스로 하는 단일 행 결과표 (test, chi2, dof, p-value, significant, effect(V), strength, min_expected, assumption) |