๊ธฐ์ ํต๊ณ๋ถ์
DataFrame์ ๊ธฐ์ ํต๊ณ๋ ํจ์๋ค.
# ํ์ฅํ ๊ตฌ๋งค ๊ด๋ จ ์ ๋ณด๊ฐ ๋ค์ด์๋ csvํ์ผ์ ๋ถ๋ฌ์ ๋ฐ์ดํฐํ๋ ์์ผ๋ก ๋ง๋ค์ด์ค
df = pd.read_csv('cosmetices_csv')
# '1ํ ํ๊ท ๊ตฌ๋งค ๋น์ฉ' ๊ธฐ์ค
# ์ต๋๊ฐ
df['amount'].max()
# ์ต์๊ฐ
df['amount'].min()
# ํฉ๊ณ
df['amount'].sum()
# ํ๊ท ๊ฐ
df['amount'].mean()
# ๋ถ์ฐ(variance)
df['amount'].var()
# ํ์คํธ์ฐจ(standard deviation)
df['amount'].std()
๊ธฐ์ ํต๊ณ๋ฅผ ํ ๋๋ ์๋์ ์ฒจ๋๋ฅผ ์ฒจ๋ถํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์๋ (Skewness) : ๋ถํฌ๊ฐ ์ข์ฐ๋ก ์น์ฐ์ณ์ง ์ ๋! 0์ ๊ฐ๊น์ธ์๋ก ์ ๊ท๋ถํฌ๋ผ๊ณ ๊ฐ์ ํ ์ ์๋ค(์ ๋๊ฐ ๊ธฐ์ค 3 ๋ฏธ์ด๊ณผ)
์ฒจ๋ (Kurtosis) : ๋ถํฌ๊ฐ ๋พฐ์กฑํ ์ ๋! 1์ ๊ฐ๊น์ธ์๋ก ์ ๊ท๋ถํฌ๋ผ๊ณ ๊ฐ์ ํ ์ ์๋ค(์ ๋๊ฐ ๊ธฐ์ค 8 ๋๋ 10 ๋ฏธ์ด๊ณผ)
Outlier(์ด์์น) ํ์ง
Box plot
Box plot(๋ฐ์ค ํ๋กฏ)์ ์์น ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ํ๋์ ๋ฐฉ์์ด๋ค.
์ต์๊ฐ(min), ์ 1๋ถ์ ์(Q1), ์ 2๋ถ์ ์ ๋๋ ์ค์์(Q2), ์ 3๋ถ์ ์(Q3), ์ต๋๊ฐ์ ์ฌ์ฉํด ๊ทธ๋ ค์ง๋ค.
df.boxplot(column='์ปฌ๋ผ๋ช
')
- ์ํ์น: ๋ฐ๋ฅ๋ถํฐ 75% ์ง์ ์ ๊ฐ(Q3) + IQR์ 1.5๋ฐฐ
- ํํ์น: ๋ฐ๋ฅ๋ถํฐ 25% ์ง์ ์ ๊ฐ(Q1) - IQR์ 1.5๋ฐฐ
- → ์ด ๊ธฐ์ค์ ๋๊ธฐ๋ฉด Outlier๋ก ํ๋จ ๊ฐ๋ฅ
๊ต์ฐจ๋ถ์
๊ต์ฐจ๋ถ์(cross-tabulation analysis)์ ๋ ๋ฒ์ฃผํ ๋ณ์ ๊ฐ์ ์ฐ๊ด์ฑ์ ์ ์ํ ์ฐจ์ด๊ฐ ์๋์ง๋ฅผ ํ์ธํ๊ธฐ ์ํด ๊ต์ฐจํ๋ฅผ ๋ง๋ค์ด ๊ด๊ณ๋ฅผ ํ์ธํ๋ ๋ถ์ ๋ฐฉ๋ฒ์ด๋ฉฐ, ์นด์ด์ ๊ณฑ ๊ฒ์ (Chi-square test)์ด๋ผ๊ณ ๋ ํ๋ค.
- ๋๋ฆฝ๊ฐ์ค(Alternative hypothesis): ์ ์๋ฏธํ๋ค
- ๊ท๋ฌด๊ฐ์ค(Null hypothesis): ์ ์๋ฏธํ์ง์๋ค, ์ ํ ๊ด๊ณ ์๋ค
import scipy as sp
from scipy import stats
stats.chisquare(df.propensity, df.skin)
์ ์ฝ๋๋ฅผ ์คํํ๋ฉด p-value ๊ฐ์ ์ป์ ์ ์๋ค.
์ฌ๊ธฐ์ p-value (probability value)๋ ํ๋ฅ ๊ฐ์ด๋ค. ๊ท๋ฌด๊ฐ์ค์ด ์ฐธ์ด๋ผ๋ ์ ์ ํ์(์กฐ๊ฑด), "๊ด์ฐฐ์ด ์๋ฃ๋ ๊ฐ ํน์ ๊ทธ๋ณด๋ค ๋ ๊ทน๋จ์ ์ธ ๊ฐ"์ด ํ๋ณธ(์ํ๋ฐ์ดํฐ)์ ํตํด ๋ํ๋ (์กฐ๊ฑด๋ถ) ํ๋ฅ ์ด๋ค. ํ๋ฅ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ p๊ฐ์ด ๊ฐ์ง ์ ์๋ ๊ฐ์ 0๋ถํฐ 1๊น์ง๋ค.
- p-value๊ฐ 0.05(5%) ๋ฏธ๋ง์ผ ๊ฒฝ์ฐ = ๊ท๋ฌด๊ฐ์ค์ด ์ฐธ์ผ ๋ ํด๋น ๊ด์ธก์น๊ฐ ๋ํ๋ ํ๋ฅ ์ด ๋งค์ฐ ๋ฎ๋ค๊ณ ํ๋จํ๋ฉฐ, ๊ท๋ฌด๊ฐ์ค์ ๊ธฐ๊ฐํ๋ค.
- p-value๊ฐ 0.05(5%) ์ด์์ผ ๊ฒฝ์ฐ = ๊ท๋ฌด๊ฐ์ค์ด ์ฐธ์ผ ๋ ํด๋น ๊ด์ธก์น๊ฐ ๋ํ๋ ํ๋ฅ ์ด ์ถฉ๋ถํ๋ค๊ณ ํ๋จํ๋ฉฐ, ๊ท๋ฌด๊ฐ์ค์ ๊ธฐ๊ฐํ์ง ์๋๋ค.
** ์ฃผ์ํ ์ ์, p-value๊ฐ 0.05 ์ดํ๋ผ๋ ๊ฒ์ด ํญ์ ๋๋ฆฝ๊ฐ์ค์ด ๋ง๋ค(์ฐ๊ตฌ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ด๊ฑฐ๋ ํจ๊ณผ๊ฐ ์๋ค)๋ ๊ฒ์ ๋ปํ๋ ๊ฒ์ ์๋๋ผ๋ ๊ฒ์ด๋ค.
t-test(t ๊ฒ์ )
t-๊ฒ์ ์ ๊ฐ์ค ๊ฒ์ ์ ์ฌ์ฉํ์ฌ ํ๋ ๋๋ ๋ ๋ชจ์ง๋จ์ ํ๊ท ์ ํ๊ฐํ๋ ๋๊ตฌ๋ค.
๋ ๋ฆฝํ๋ณธ t-test (2ํ๋ณธ t-๊ฒ์ )๋ ์ ์ ์๋ ๋ ๊ทธ๋ฃน ๋ชจ์ง๋จ ํ๊ท ์ด ๊ฐ์์ง ์ฌ๋ถ๋ฅผ ๊ฒ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ด๋ค.
stats.ttest_ind(df[df['gender']==1]['satisf_al'], df[df['gender']==2]['satisf_al'])
์ ์ฝ๋์ ์คํ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ๋ค.
Ttest_indResult(statistic=-0.494589803056421, pvalue=0.6213329051985961)
pvalue๊ฐ์ด 0.05์ด์์ด๋ฏ๋ก ๊ท๋ฌด๊ฐ์ค์ ๊ธฐ๊ฐํ์ง ์๋๋ค.
์ฆ, "์๋ก ๋ค๋ฅธ" ์ฑ๋ณ ๊ฐ์ ์ ๋ฐ์ ์ธ ๋ง์กฑ๋์ ํ๊ท ๊ฐ ์ฌ์ด์ ์ ์๋ฏธํ ์ฐจ์ด๊ฐ "์๋ค"๋ ๊ฒ์ด๋ค.
๋์ํ๋ณธ t-test ๋ ๋์ผํ ๋ชจ์ง๋จ์ผ๋ก๋ถํฐ ์ถ์ถ๋ ๋ ๋ณ์์ ํ๊ท ๊ฐ์ ๋น๊ต ๋ถ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
stats.ttest_rel(df["satisf_b"], df["satisf_i"])
์ ์ฝ๋์ ์คํ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ๋ค.
Ttest_relResult(statistic=-7.155916401026872, pvalue=9.518854506666398e-12)
pvalue๊ฐ์ด 0.05๋ฏธ๋ง์ด๋ฏ๋ก ๊ท๋ฌด๊ฐ์ค์ ๊ธฐ๊ฐํ๋ค.
์ฆ, "๋์ผํ" ๊ณ ๊ฐ ์ง๋จ์ด ํ๊ฐํ ๊ตฌ๋งค ๊ฐ๊ฒฉ์ ๋ํ ๋ง์กฑ๋์ ๊ตฌ๋งค ๋ฌธ์์ ๋ํ ๋ง์กฑ๋์ ํ๊ท ๊ฐ ์ฌ์ด์ ์ ์๋ฏธํ ์ฐจ์ด๊ฐ "์๋ค"
๋ถ์ฐ๋ถ์(ANOVA, Analysis of Variance)
๋ถ์ฐ ๋ถ์์ 3๊ฐ ์ด์ ๋ค์์ ์ง๋จ์ ๋น๊ตํ ๋ ์ฌ์ฉํ๋ ๊ฐ์ค๊ฒ์ ๋ฐฉ๋ฒ์ด๋ค.
stats.f_oneway(anova1, anova2, anova3)
์ ์ฝ๋์ ์คํ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ๋ค.
F_onewayResult(statistic=4.732129410493065, pvalue=0.009632034309915485)
pvalue๊ฐ์ด 0.05๋ฏธ๋ง์ด๋ฏ๋ก ๊ท๋ฌด๊ฐ์ค์ ๊ธฐ๊ฐํ๋ค.
์ฆ, "3๊ฐ์ง" ๊ตฌ๋งค ๋๊ธฐ์ ๋ฐ๋ฅธ ์ ๋ฐ์ ์ธ ๋ง์กฑ๋์ ํ๊ท ๊ฐ ์ค ์ ์ด๋ ํ๋๋ ์ ์๋ฏธํ ์ฐจ์ด๊ฐ "์๋ค"
์๊ด๊ด๊ณ๋ถ์(Correlation Analysis)
์๊ด๋ถ์์ ๋ ๋ณ์๊ฐ์ ์ด๋ค ์ ํ์ ๊ด๊ณ๋ฅผ ๊ฐ์ง๋์ง ๋ถ์ํ๋ ๊ธฐ๋ฒ์ผ๋ก ์๊ด๊ณ์๋ฅผ ์ด์ฉํ์ฌ ์ธก์ ํ๋ค. ์๊ด ๋ถ์์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์๊ด๊ณ์๋ ํผ์ด์จ(Pearson) ์๊ด๊ณ์๋ฉฐ, ์ฐ์ํ ๋ณ์์ ์๊ด๊ด๊ณ๋ฅผ ์ธก์ ํ๋ค.
ํผ์ด์จ ์๊ด ๊ณ์๋ -1์ ๊ฐ๊น์ธ์๋ก ์์ ์๊ด๊ด๊ณ, 1์ ๊ฐ๊น์ธ์๋ก ์์ ์๊ด๊ด๊ณ, 0์ ๊ฐ๊น์ธ์๋ก ์๊ด๊ด๊ณ๊ฐ ์๋๋ผ๋ ๊ฒ์ ์๋ฏธํ๋ค.
๋ค์์ ํผ์ด์จ ์๊ด ๊ณ์ ํด์ ๊ธฐ์ค์ด๋ค. (ํ๊ณ๋ณ๋ก ์ฐจ์ด๊ฐ ์๋ค)
'TIL๐ฅ > ๋ฉ์์ด์ฌ์์ฒ๋ผ_AI School 5๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฉ์ฌ] AI SCHOOL 5๊ธฐ_ Day 25 (0) | 2022.04.07 |
---|---|
[๋ฉ์ฌ] AI SCHOOL 5๊ธฐ_ Day 18 (0) | 2022.03.31 |
[๋ฉ์ฌ] AI SCHOOL 5๊ธฐ_ Day 16 (0) | 2022.03.29 |
[๋ฉ์ฌ] AI SCHOOL 5๊ธฐ_ Day 15 (0) | 2022.03.28 |
[๋ฉ์ฌ] AI SCHOOL 5๊ธฐ_ Day 12 (0) | 2022.03.25 |
๋๊ธ