col = ['', '' ,'']
row = ['', '', '']
df.columns = col
df.index.name = None ==>??
df = df.reindex(index = row )
random.binominal(n=, p=, size=) 이항분포// size가 시행횟수
from scipy.stats import binom_test
binom_test(564, n=, p=) // n이 시행힛수
이항 검정은 범주가 2개로 자료에만 사용할 수 있다. 만약 범주가 3개 이상인 경우에는 카이제곱 검정을 사용해야 한다. 행과 열을 조합해서 발생할 수 있는 경우의 수를 행열로 만들어놓고 활용하면 편하다.
from google.colab import files
df_before = files.upload() ==> 데이터 불러올수있음 or 코랩 드라이버에 저장해서 불러올 수 있음
df_before = pd.read_csv('규모별_미분양현황_20210514145145.csv', encoding= "cp949")
*외부데이터 가져올때 encoding 확인
*중복값 삭제 drop_duplicates() 위에 있는 것들만 살림 //
==> groupby 쓰면 특정 고유값 합칠 수 있음
t-value 와 f-value 는 클 수록 우연히 발생하지 않을 확률(f-value)
= 같지 않을 확률( 다를 확률이 있다)즉, p-value < 0.05 가됨
*T-test (연속변수) <==> 카이제곱 (범주형)
1. 평균치를 사용하느냐/ 통계치를 사용하느냐
2. 인과관계 / 상관관계
3. 비모수적 ( 평균이나 분산을 모를때 == 정규분포를 따르지 않을때)
- 모집단의 분산/표준편차 알지 못 할때 사용(= 평균값을 사용하지)
*두 변수의 상관관계 = (힘과 방향) = 상관계수
-1 0 1 ==> 1과 -1쪽으로 가면 힘이 세다
-1 0 1 ==> 0으로 가면 힘이 약하다 / 0 = 의미가 없다
세다 : 데이터가 가깝게 모여있다
약하다 : 데이터가 퍼져있다.
*비모수적 방법 Non parametric methods (그 중 Chisquare 카이 제곱)
from scipy.stats import normaltest
from scipy.stats import chisquare == one sample
from scipy.stats import chi2_contingency == two sample
from scipy.stats import chi2_contingency
print(chi2_contingency(obs2, correction = False)) # True와 False를 비교해줘야함
print(chi2_contingency(obs2, correction = True)) # 두 경우 모두 pvalue : 0.6269 연관이 없다.
*통계치를 pvalue로 바꾸는 법 ( = stats.chi2.cdf) ==> pvalue만 나옴
= stats.chi2.pdf(통계치, df)
= stats.chi2.cdf(통계치, 자유도==> n -1)
* pdf, cdf, ppf
어느 회사의 연봉이 평균 1000이고 표준편차가 60인 정규분포를 따른다. 그러면, 연봉이 950 이하일 확률은 어느정도인가?
pdf= probability density function 확률밀도함수 = 0~1
cdf= cumulative distribution function누적 분포 함수 = 면적을 구하는것
ppf= percent Point Function 확률
rv = stats.norm(1000, 60)
xx = np.linspace(700,1300,1000)
pdf = rv.pdf(xx)
plt.plot(xx, pdf)
plt.show()
## 950이하일 확률
rv.cdf(950)
# 0.20232838096364308 *100 = 20%
## 950이상일 확률
1- rv.cdf(950)
## 950에서 1100사이
rv.cdf(1100) - rv.cdf(950)
** 상위 5% 연봉 확인하기위해서
cdf의 역함수 개념인 ppf
rv.ppf(0.95)
# 1098.6912176170883 ==> 1098이 상위 5%
[출처] [통계] 파이썬에서의 정규분포와 누적확률 및 분위수 [pdf,cdf,ppf]|작성자 삐빅
*Chisquare 카이 제곱( = 인과관계가 아님!! / 상관관계를 보여줌)
= 관찰된 빈도가 기대빈도와 의미있게 같은지 다른지
-one sample = 변수하나를 가지고 변수 내의 그룹간의 비율이 같은지 다른지
-two sample = 두 변수 사이의 연관성이 있는지 없는지 여기서
!!귀무가설과 대안가설이 다름!!!
귀무가설 = 연관성이 없다 // == > 독립적이다
대안 가설 = 연관성이 있다 == > 독립적이지 않다
*Numerical -> Categorial
1. Type casting
numerical 이지만, continuous하지 않아 바로 category로 사용 할 수 있는 경우.
ex) 1, 2, 3 -> 1, 2, 3
2. Binning
numerical 이지만, continuous 해서 구간별로 나누어 사용 할 수 있는 경우.
ex) 1.4, 2, 3.1, 2.8, 1.1, 2.5 -> A : 1 ~ 2, B : 2 ~ 3, C : 3 ~ 4
*tpye of Error
1종 오류 = 실제로 하지 않았는데 했대( = 유의 한대, 유의 하지않다) // 술 안 마셧는데 마셧대
2종 오류 = 실제로 했는데 안 했대( = 유의하지 않은데, 유의하다) // 술 마셧는데 안마셧대 매우 위험
*카이제곱 계산법( = 범주 간의 확률차이가 얼마나 큰지 알수 없어서 ANOVA보다 답답한 느낌이 있음)
== > 그래서 신뢰구간을 이용사용(confidence interval) -N123
2- sample chisquare test의 자유도 (Degree of Freedom) 는 1-sample과는 조금 다릅니다.
1-sample (적합도 검정), DF = # categories-1
2-sample (독립성 검정), DF = (#행 - 1)*(#열 - 1)
DF: (2-1)*(2-1) = 1
'통계, EDA, 선형대수 > statistics' 카테고리의 다른 글
N123 중심극한정리( Central Limit Theorem, CLT) (0) | 2021.05.19 |
---|---|
N124 'Bayes Theorem' (0) | 2021.05.18 |
N121 기술통계치 / 가설검정 Hypothesis (0) | 2021.05.15 |
댓글