studying data

문제의 본질을 꿰뚫어 해결책을 찾는 법을 공부합니다

콤퓨타 공부/통계 10

[통계 공부] k-Means 클러스터링

k-Means는 가장 널리 사용되는 클러스터링 방법입니다. k-Means는 k개의 평균이라는 뜻인데 군집의 평균인 중심점을 구할 수 있는 것이죠. 사례를 중심점이 가장 가까운 군집에 포함시킵니다. 장점 단점 k만 정해주면 되므로 간단 거리를 정할 수 잇고, 중심점 주변에 사례들이 몰려있는 경우에 사용할 수 있음 소수의 사례만 무작위로 뽑아 클러스터링할 수도 있음 (미니배치 k-Means) 초기값에 따라 결과가 달라질 수 있음 연속변수에만 적용가능 블록하지 않은 모양의 군집에는 성능이 떠러짐 군집 수 결정이 어려움 이상값에 크게 영향을 받음 극단치가 있는 경우에는 k-Means를 쓰기 전에 미리 먼저 빼줘야 합니다. 이상값에 영향을 크게 받기 때문이죠. PCA, NMP, MDS는 차원축소 방법이라 변수의 ..

[통계 공부] 비지도 학습(unsupervised learning)

주어진 데이터의 내재적 구조를 분석하는데 유용한 틀입니다. 지도학습과 달리 데이터 자체에 정답이 없다는 것이 특징이죠. 종류를 찾아보자면 차원축소와 군집분석이 있습니다. 예를 들어 주식데이터로 살펴볼까요? 주가 경향성을 찾아본다고 하면 네이버와 카카오 주식가격이 같이 떨어진 경우를 생각해봅시다. 네이버와 카카오가 같은 업종이기 때문에 같은 업종이라 비슷한 계열이 하락한다고 하면 이것을 예측하는 것은 지도학습이 됩니다. 있는 데이터 중에서 네이버와 비슷한 주식을 찾아내 업종별로 묶을 수도 있겠죠. 그러나 비슷하다는 기준은 어떻게 정하느냐에 따라 다양할 수 있습니다. 목적과 상황에 따라 적절한 방법이 있어요. 비지도학습은 따로 분석을 하지 않아도 된다는 점에서 강점이 있습니다. 물론 그 설계과정에서 어려움이..

[통계 공부] 로지스틱 회귀분석과 상호작용

A/B 테스팅 데이터를 다운받아 분석을 해보십시오. 독립변수는 weekend와 group을 사용하고 종속변수는 click으로 하여 로지스틱 회귀분석을 해보세요. 모형 1은 click ~ weekend + group로, 모형 2는 click ~ weekend + group + weekend:group으로 분석하세요. 1. AIC와 BIC로 비교할 때 어떤 모형이 더 나은 모형입니까? 정답: 모형 2 해설: 맞다/틀리다 둘 중에 하나로 나눠져야 정확도를 평가할 수 있습니다. 로지스틱 회귀분석은 확률을 예측하기 때문에 맞다/틀리다로 나뉘지가 않습니다. 그래서 문턱값을 기준으로 나누는 것입니다. # 데이터 열기 df = pd.read_excel('abtest.xlsx') # 모형1 from statsmodels..

[통계 공부] 상호작용 - 거짓말 대회

거짓말대회 데이터를 다운받아 회귀분석을 해보세요. 대회 순위(Position)를 종속변수로 하고 창의성(Creativity)과 초보 여부(Novice)를 독립변수로 하여 회귀분석을 해보세요. 이때 상호작용항을 포함시켜 분석하십시오. 1. 상호작용을 고려했을 때 경험자(Novice == 0)는 창의성의 기울기가 얼마입니까? 정답: -0.0349 해설: Position = 3.5618 - 0.0349*Creativity + 1.4920*Novice - 0.0366*Creativity*Novice Novice에 0을 대입하는 경우(경험자), Position = 3.5618 - 0.0349*Creativity 따라서 기울기는 -0.0349 import pandas as pd df = pd.read_excel('..

[통계 공부] 상호작용(interaction)

두 독립변수의 곱으로 이뤄진 항(xm)을 의미합니다. 상호작용은 다른 변수에 의해 기울기가 바뀌는 것을 뜻하죠. 예를 들어 영어를 잘 할 필요가 있는 직무라면 토익 점수와의 관계 그래프가 가파르게 나타날테지만 딱히 업무가 영어 사용과 관련이 없는 경우에는 기울기가 완만하게 나타날 수 있습니다. 상호작용은 쉽게 생각하면 독립변수 2가지를 곱하는 것과 같습니다. 그래서 관계식을 쓸 때는 : 을 사용합니다. 관계식에서 x*m은 x+m+x : m 으로 표현할 수 있습니다. 예를 들어 Learning Style이 있습니다. 언어형은 말로 풀어서 설명하는 것이고 시각형은 그림으로 풀어서 공부하는 것이에요. 사람에 따라 어떤 방법이 더 효과적인지는 다를 수도 있죠. 여기서 학습방법은 xm에 해당합니다. 그러면 후기에..

[통계 공부] 회귀분석을 통한 예측

제동거리 데이터를 다운받아 speed를 독립변수로 dist를 종속변수로 회귀분석을 해보십시오. 이 모형을 이용하여 speed = 20일 때 dist를 예측하면 얼마입니까? 1. 엑셀 파일을 열어줍니다 speed = pd.read_excel('speed.xlsx') speed.head() 2. 회귀분석(ols)를 import하고 '종속변수~독립변수'를 입력합니다. from statsmodels.formula.api import ols p = ols('dist ~ speed', speed).fit() p.summary() 3. 데이터프레임에 예제값을 넣어 예측합니다. new_df = pd.DataFrame({'speed': [20]}) p.predict(new_df) # 0 61.06908 # dtype: ..

[통계 공부] 회귀분석: 임신기간과 신생아 체중

1. Wgt는 신생아의 체중(g), Gest는 임신 기간(주)을 나타냅니다. 임신기간을 독립변수, 신생아의 체중을 종속변수로 회귀분석을 하려면 관계식을 어떻게 써야 합니까? 정답: Wgt ~ Gest / 설명: 관계식은 '종속변수 ~ 독립변수'와 같이 씁니다. 종속변수는 독립변수에 따라 달라지는 변수를 말합니다. 2. 임신기간을 독립변수, 신생아의 체중을 종속변수로 회귀분석을 실시해보세요. 절편은 얼마입니까? 아래 표는 이하 질문들의 답변도 되기 때문에 색깔별로 표기해뒀습니다. import pandas as pd bs = pd.read_excel('birthsmokers.xlsx') from statsmodels.formula.api import ols ols('Wgt ~ Gest', bs).fit()...

[통계 공부] 상관분석: 피부암과 위도의 상관관계

1. Mort 변수는 천만명 당 피부암 사망자 수 입니다. Lat는 위도(latitude)를 나타냅니다. 피부암 사망자 수와 위도의 피어슨 상관 계수를 구해보세요. import pandas as pd import pingouin as pg sc = pd.read_excel('skincancer.xlsx') pg.corr(sc.Mort, sc.Lat) # 피어슨 상관계수(r) = -0.824518 2. 위의 상관계수의 95% 신뢰구간은 무엇입니까? 정답: -0.9, -0.71 3. 모집단에서 상관계수는 어떤 범위에 있습니까? 정답: - ~ - 4. 위의 상관계수의 p-value는 얼마입니까? 정답: 0.05보다 작다(p < .05) / 해설: 분석 결과에서 p-val이 p-value입니다. e-13은 10..

[통계 공부] 분산 분석: 우울증의 치료효과

1. 변수 TRT에는 몇 가지 종류의 값이 있습니까? import pandas as pd dp = pd.read_excel('depression.xlsx') dp.TRT.unique() # array(['A', 'B', 'C'], dtype=object) 2. TRT 변수는 치료방법, y 변수는 치료효과를 나타냅니다. 치료방법에 따라 치료효과의 평균 차이를 검증하려면 어떤 방법을 사용해야합니까? 정답: 분산분석 / 해설: 세 집단 이상의 평균을 비교하려면 분산분석을 실시해야 합니다. 3. 치료효과의 등분산성을 검증해보세요. 치료방법들 사이에 치료효과의 분산은 같습니까(유의수준 5%)? import pingouin as pg pg.homoscedasticity(dv='y', group='TRT', data..

[통계 공부] 두 집단의 평균 비교: 흡연과 신생아 체중

1. 변수 Smoke에는 몇 가지 종류의 값이 있습니까? import pandas as pd bs = pd.read_excel('birthsmokers.xlsx') bs.Smoke.unique() #array(['yes', 'no'], dtype=object) 2. Smoke는 산모의 흡연 여부를 나타냅니다(S는 대문자). Wgt는 신생아의 체중을 나타냅니다(W는 대문자). 흡연자 산모(Smoke == 'yes')가 낳은 신생아 체중의 평균은 얼마입니까? smoker = bs[bs.Smoke == 'yes'] non_smoker = bs[bs.Smoke == 'no'] smoker.Wgt.mean() #2973.625 3. 비흡연자 산모가 낳은 신생아 체중의 평균은 얼마입니까? non_smoker.Wgt..