π ν΅κ³ κ²μ μ κ·Ό λ¨κ³
1. κ°μ€ μ€μ
2. νΉμ κ²μ μ νκΈ° μ , νμν κ°μ μ΄ λμ§ νμ ν΄μΌν¨(μ: μ κ·μ±, λ±λΆμ°μ± λ±)
λμνλ³Έ T-κ²μ μ΄λ?
- μ€νλ¨μλ₯Ό λμ§μ μΈ μμΌλ‘ λ¬Άμ λ€μ, κ° μμμ κ΄μΈ‘κ°μ μ°¨λ₯Ό μ΄μ©νμ¬ λ λͺ¨νκ· μ μ°¨μ΄μ κ΄ν μΆλ‘
- μ€ν μ΄μ μ μ§λ¨κ³Ό μ€ν μ΄νμ μ§λ¨μ΄ λμΌν κ²½μ° μ¬μ©νλ κ²μ (μ체λΉκ΅)
κ°μ€
- κ·λ¬΄κ°μ€ : μ€νμ ν νκ· μ μ°¨μ΄λ 0μ΄λ€
- λ립κ°μ€ : μ€νμ ν νκ· μ μ°¨μ΄λ 0μ΄ μλλ€
κ°μ
- λ 립μ±
- μ κ·μ±
λ°μ΄ν° νμΈ
- μ΄λ&μλ¨ νλ‘κ·Έλ¨ μ§ν μ , νμ κ·Όμ‘λμ λν λ°μ΄ν°
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/ethanweed/pythonbook/main/Data/chico.csv")
df.head()
- count κ°μ΄ λ κ²½μ° λͺ¨λ, 20μ΄νμ΄λ―λ‘ μ κ·μ± κ²μ¦μ΄ νμ
df.describe()
λ°μ΄ν° μκ°ν
import seaborn as sns
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 2, figsize = (15, 5))
sns.pointplot(data = df, ax = ax[0])
sns.scatterplot(x = df['grade_test1'], y = df['grade_test2'], ax = ax[1])
ax[1].plot(ax[1].get_xlim(), ax[1].get_ylim(), ls='--')
ax[0].set_title("A")
ax[1].set_title("B")
plt.show()
π Aκ·Έλν : λ λΌμΈ(μ 뒰ꡬκ°)μ΄ λ§μ΄ κ²ΉμΉ μλ‘, νκ· μ°¨μ΄κ° ν¬μ§ μμ
π Bκ·Έλν : μ μ μ κΈ°μ€μΌλ‘ μλ¨μ΄, ν¨κ³Ό(μ¦, κ²°κ³Όκ°μ λ³ν)κ° μμμ λνλ
μ€ν μ /νμ μ°¨μ΄λ₯Ό 보기 μν λ°μ΄ν° κ°κ³΅
df2 = df.copy()
df2['improved'] = df['grade_test2'] - df['grade_test1']
sns.histplot(data=df2, x = 'improved')
plt.show()
π μ΄λμ λμ λ³νκ° μμμ νμΈ κ°λ₯
μ κ·μ± κ²μ
- μ€ν μ ν, λ λ³μμ μ°¨μ΄κ° μ κ·λΆν¬λ₯Ό λ°λ₯΄λμ§ νμΈ (λ¨, n <= 30 μΌ λ νλ κ², 30 μ΄κ³Όλ ν νμ μμ ; μ€μ¬κ·Ήν μ 리 μ°Έκ³ )
- κ° κ·Έλ£Ή λ³μκ° μ κ·λΆν¬λ₯Ό λ°λ₯΄λμ§λ κ²μ ν νμ μμ
- νμΈ λ°©λ² : Shapiro-Wilk tests
- κ°μ μλ° μ, Wilcoxon Signed-Ranks Testλ₯Ό μ§ν
import pingouin as pg
pg.normality(df2['improved'])
t-test
- λ μ§λ¨μ λΆμ°μ΄ λμΌνλ€κ³ κ°μ
- λ λ 립 μνμ νκ· κ°μ΄ λμΌνλ€λ κ·λ¬΄κ°μ€μ λν κ²μ
λ©μλ | 맀κ°λ³μ | μ€λͺ |
ttest_rel(a, b) | a, b : array_like | λ°μ΄ν°μ ν¬κΈ°κ° λμΌν΄μΌ ν¨. |
alternative | option : two-sided(default), less, greather |
[μμ, μ€μ΅ μ½λμ 무κ΄]
from scipy import stats
t_score, p_value = stats.ttest_rel(df['before_spr'], df['after_spr'])
print(round(t_score, 4), round(p_value, 2))
>> 14.8933 0.0
from pingouin import ttest
ttest(df2['grade_test2'], df2['grade_test1'], paired=True) #paired=True;λμνλ³Έκ²μ¦νκ² λ€
κ²°λ‘
πͺ μ΄λ&μλ¨ νλ‘κ·Έλ¨μ ν¨κ³Όκ° μ μλ―Ένκ² μλ€(νκ· μ°¨μ΄ μμ!)
728x90
'Machine Learning > Statistics' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Wilcoxon rank sum test (μμ½μ¨ μμ ν© κ²μ ) (0) | 2024.05.20 |
---|---|
[κΈ°μ΄ ν΅κ³] λΆμ°λΆμ(Analysis of Variance, ANOVA) (0) | 2023.08.14 |
[κΈ°μ΄ ν΅κ³] λ 립νλ³Έ T-κ²μ (0) | 2023.08.14 |