콘텐츠로 이동

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: 중복으로 집계된 상대 변수명을 쉼표로 연결한 문자열 (없으면 "-")

compute_vif

compute_vif(df, columns=None)

각 변수의 VIF 를 statsmodels 패키지로 계산해서 반환.

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)