[Statistics] Useful Tips
2021. 1. 6. 09:22ㆍ[TIPs]/Useful Tips
[binomical distribution]
# 1 나올 확률이 0.5인 사건을 500번 돌린 후 mean return
np.random.binomial(n=1, p=0.5, size = 500)
[t-test]
coin1 = np.random.binomial(n=1, p=0.5, size = 500)
coin2 = np.random.binomial(n=1, p = 0.6, size = 1000)
# Two-side test
# one sample t-test
stats.ttest_1samp(coin1,0.5)
# ==> mean == 0.5 vs mean != 0.5
# two sample t-test
stats.ttest_ind(coin1,coin2)
# ==> mean1 == mean2 vs mean1 != mean2
# One-side test
# pvalue < 0.05 ==> greater 또는 less 의 대안가설을 채택한다
stats.ttest_ind(coin1,coin2,greater)
stats.ttest_ind(coin1,coin2,less)
[chisquare-test]
from scipy.stats import chisquare
from scipy.stats. import chi2_contingency
import numpy as np
# one sample chisquare-test
chisquare(1_list,axis=None)
# ==> similar(균등) v.s. not similar(X균등)
# two sample chisquare-test
chi2_contingency(df)
# ==> x축 & y축 연관 없다 v.s. x축 & y축 연관 있다
[anova]
1. Sample의 갯수가 적고 코딩으로 직접 np.array로 만들 수 있다고 판단되는 경우
# A,B,C,D in np.array
F,P = stats.f_oneway(A,B,C,D)
P # pvalue 출력
2. Sample의 갯수가 많거나 pd.DataFrame 형태로 주어진 경우
# 2. sample의 갯수가 많을 때
# pandas dataframe에서 바로 계산 가능
# 필요하다면 melt를 시켜줘야함
# ex) df['group'] 에는 A,B,C,D 라는 categorical data가 들어가야 하고
# df['value'] 에는 그룹별 특정값들이 들어가야 함
# import
import statsmodels.api as sm
from statsmodels.formula.api import ols
model = ols('value ~ C(group)',data=df).fit()
anova_table = sm.stats.anova_Im(model,typ=2)
anova_table # ==> 출력됨 (PR column의 첫번째 값이 pvalue를 의미한다)
[Confidence Interval]
CI = t.interval(0.95,df,loc=mean,scale = stderr)
# ==> returns lower & upper limit of the confidence interval
# finding tvalue
t.ppf(0.975,dof)
# ==>returns tvalue
# finding sem
stats.sem(data)
# ==> returns sem
[Bayesian Confidence Interval]
mean,var,std = stats.bayes_mvs(data, alpha = .95)
# ==> each returns value, value+interval, value-interval (95% interval)
728x90
'[TIPs] > Useful Tips' 카테고리의 다른 글
[Pandas] Useful Tips (0) | 2021.01.02 |
---|