250x250
Link
๋์ GitHub Contribution ๊ทธ๋ํ
Loading data ...
Notice
Recent Posts
Recent Comments
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ํฌ๋กค๋ง
- ADP
- numpy
- DBSCAN
- PCA
- ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ
- ์ธ๋์ํ๋ง
- ํ์ด์ฌ
- ์๋ํด๋ผ์ฐ๋
- ๋์ํ๋ณธ
- iloc
- ๊ตฐ์งํ
- Python
- ๋น ๋ฐ์ดํฐ
- datascience
- ๋ฐ์ดํฐ๋ถ์
- ๋ ๋ฆฝํ๋ณธ
- opencv
- ๋ฐ์ดํฐ๋ถ๊ท ํ
- ์ฃผ์ฑ๋ถ๋ถ์
- ๋ฐ์ดํฐ๋ถ์์ค์ ๋ฌธ๊ฐ
- ์ค๋ฒ์ํ๋ง
- t-test
- ํ ์คํธ๋ถ์
- ADsP
- dataframe
- ๋ฐ์ดํฐ๋ถ์์ ๋ฌธ๊ฐ
- pandas
- LDA
- Lambda
Archives
Data Science LAB
[Python] ์ผ์ ๋ถ์ฐ ๋ถ์(ANOVA) ๋ณธ๋ฌธ
๐ Machine Learning/๊ธฐ์ด ํต๊ณ
[Python] ์ผ์ ๋ถ์ฐ ๋ถ์(ANOVA)
ใ ใ ใ ใ 2022. 3. 16. 13:07728x90
๋ถ์ฐ๋ถ์
- ๋ ๊ฐ ์ด์์ ์ง๋จ์์ ๊ทธ๋ฃน ํ๊ท ๊ฐ ์ฐจ์ด๋ฅผ ๊ทธ๋ฃน ๋ด ๋ณ๋์ ๋น๊ตํ์ฌ ์ดํด๋ณด๋ ํต๊ณ ๋ถ์ ๊ธฐ๋ฒ
- ๋ ๊ฐ ์ด์์ ์ง๋จ์ ํ๊ท ์ฐจ์ด์ ๋ํ ํต๊ณ์ ์ ์์ฑ ๊ฒ์
์ผ์ ๋ฐฐ์น ๋ถ์ฐ ๋ถ์
- ๋ถ์ฐ๋ถ์์์ ๋ฐ์๊ฐ์ ๋ํ ํ๋์ ๋ฒ์ฃผํ ๋ณ์์ ์ํฅ์ ์์๋ณด๊ธฐ ์ํด ์ฌ์ฉ๋จ
- ๋ชจ์ง๋จ์ ์์๋ ์ ํ์ด ์์ผ๋ฉฐ, ํ๋ณธ์ ์๋ ๊ฐ์ง ์์๋ ๋จ
- F ๊ฒ์ ํต๊ณ๋ ์ฌ์ฉ
- ๊ฐ ์ง๋จ์ ์ธก์ ์น๋ ๋ ๋ฆฝ์ ์ด๋ฉฐ, ์ ๊ท๋ถํฌ๋ฅผ ๋ฐ๋ผ์ผ ํจ
- ๊ฐ ์ง๋จ ์ธก์ ์น์ ๋ถ์ฐ์ ๊ฐ๋ค๊ณ ๊ฐ์ (๋ฑ๋ถ์ฐ์ฑ)
์์ธ | ์ ๊ณฑํฉ(SS) | ์์ ๋(df) | ํ๊ท ์ ๊ณฑ(MS) | ๋ถ์ฐ๋น(F) |
์ฒ๋ฆฌ | SSA | k-1 | MSA | F = MSA/MSE |
์ค์ฐจ | SSE | N-k | MSE | |
์ ์ฒด | SST | N-1 |
๊ท๋ฌด๊ฐ์ค(H0) : k๊ฐ์ ์ง๋จ ๊ฐ ๋ชจํ๊ท ์๋ ์ฐจ์ด๊ฐ ์๋ค.
๋๋ฆฝ๊ฐ์ค(H1) : k๊ฐ์ ์ง๋จ ๊ฐ ๋ชจํ๊ท ์ด ๋ชจ๋ ๊ฐ๋ค๊ณ ๋ ํ ์ ์๋ค.
์ฌํ ๊ฒ์
๋ถ์ฐ๋ถ์ ๊ฒฐ๊ณผ ๊ท๋ฌด๊ฐ์ค์ด ๊ธฐ๊ฐ๋์ด ์ ์ด๋ ํ ์ง๋จ์์ ํ๊ท ์ ์ฐจ์ด๊ฐ ์๋ค๋ ๊ฒ์ด ํต๊ณ์ ์ผ๋ก ์ฆ๋ช ๋ ๊ฒฝ์ฐ, ์ด๋ค ์ง๋จ๋ค์ ๋ํด ํ๊ท ์ ์ฐจ์ด๊ฐ ์กด์ฌํ๋ ์ง๋ฅผ ์์๋ณด๊ธฐ ์ํด ์ค์ํ๋ ๋ถ์
- ๋์นธ์ MRT, ํผ์ ์ ์ต์์ ์์ฐจ(LSD), ํํค์ HSD, Scheffe ๋ฑ๋ฑ
import pandas as pd
import numpy as np
import statsmodels.formula.api as smf
import statsmodels.api as sm
from statsmodels.stats.anova import AnovaRM
from scipy import stats
group_list = ['a','b','c']
subs_list = ['01','02','03','04','05','06','07','08','09','10']
df_1way = pd.DataFrame(columns = ['group','my_value'])
my_row = 0
for ind_g, group in enumerate(group_list):
for sub in subs_list:
my_val = np.random.normal(ind_g,1,1)[0]
df_1way.loc[my_row] = [group,my_val]
my_row = my_row+1
my_model = smf.ols(formula = 'my_value ~ group',data = df_1way)
my_model_fit = my_model.fit()
anova = sm.stats.anova_lm(my_model_fit,typ=2)
print(anova)
scipy stats ํ์ฉ
stats.f_oneway(df_1way[df_1way['group'] == 'a'].my_value, df_1way[df_1way['group'] == 'b'].my_value,df_1way[df_1way['group'] == 'c'].my_value)
์ ๊ท์ฑ ๊ฒ์ ์คํจ์ -> kruskal test
from scipy import stats
x = [1,3,5,7,9]
y = [2,4,6,8,10]
stats.kruskal(x,y)
728x90
'๐ Machine Learning > ๊ธฐ์ด ํต๊ณ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ์ ํ ํ๊ท๋ถ์ (0) | 2022.08.22 |
---|---|
[Python] ๊ต์ฐจ ๋ถ์ (์นด์ด์ ๊ณฑ ๊ฒ์ ) (0) | 2022.08.21 |
[Python] ์ด์ ๋ฐฐ์น ๋ถ์ฐ ๋ถ์ (Two-way ANOVA) (0) | 2022.08.20 |
[Python] ๋ ๋ฆฝ / ๋์ ํ๋ณธ t ๊ฒ์ (0) | 2022.03.15 |
[Python] ๊ธฐ์ ํต๊ณ (0) | 2022.03.13 |
Comments