studying data

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

콤퓨타 공부 28

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

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

[AWS 멘토링] ETL(Extract, Transform, Load)을 활용하는 방법

ETL이란 Extract, Transform, Load의 줄임말입니다. 필요한 데이터를 만들기 위해 데이터를 사용자의 목적에 맞도록 가공하는 작업을 이야기합니다. 원하는 데이터를 가져와서 예측값을 보여줄 수 있도록 해주는 것입니다. 추출을 먼저 하고 모니터링 페이지에서 필요한 데이터를 크롤링합니다. 그러면 웹사이트로 되어있는 것 중 필요한 데이터를 딱 맞게 추출하고 원하는 데이터 형태로 변환(transform)합니다. 여기서 가져올 수 있는 데이터는 그 페이지에 맞춰서 데이터화되어있는 것을 가져오면 됩니다. OAD는 적재입니다. 이 과정에서 Airflow를 도입했습니다. 에어비앤비에서 개발한 워크플로우 관리 플랫폼입니다. ETL 툴은 DAG(Directed Acyclic Graph)입니다. 실행하고 싶은..

[python 공부] 기초강의 전체 되돌아보기

파이썬이 왜 배우기 쉽다고 하는걸까요? 처음 배울 때 쉽게 느껴지지 않고 어려울 수 있습니다. 그런데 자바와 비교해볼까요? 똑같은 결과를 만들기 위한 코드 작성 과정이 자바에 비해 파이썬이 훨씬 더 짧고 간결합니다. 분량이 짧으면 괜찮겠지만 기능이 복잡해지면, 몇배로 차이가 날 수 있겠죠? 물론 자바도 객체지향의 시조와 같은 언어로 굉장히 훌륭합니다. 하지만 초심자로서 배우기에는 훨씬 더 진입장벽이 낮은 편이기에 '상대적으로 쉽다'고 하는 것이죠. 그러나 프로그래밍 언어를 처음 해볼 때 어렵게 느껴질 수 있습니다. 변수는 값을 담아놓는 공간이라고 생각할 수도 있습니다. 그러나 reference개념을 알고 있어야 하기 때문에 값을 가리키는 것, 할당하는 것으로 이해하는 것이 좋습니다. 데이터타입에는 여러가..

[python 공부] programmers 코딩테스트 고득점 kit 실패율 문제

슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질..

[AWS 멘토링] 클라우드와 AWS 네트워크

클라우드가 뭐에요? 서버를 구축하지 않고 남이 구축한 것을 가져다 쓰는 것이 아닐까요..? 클라우드는 구름(Cloud)인데 여기서 구름은 인터넷입니다. 인터넷 뒤의 여러가지 서비스를 이용하는 것이라고 생각할 수 있습니다. 예를 들어 서버나 storage, DB가 있을 수 있죠. 이런것들을 임대해서 쓰는 것이에요. 우리는 이런 서버 자원을 빌려서 이용합니다. 그런데 내가 서버를 구축할 필요가 없는 것은 아니에요. 자원을 활용해서 AWS 클라우드 상에서 클라우드 아키텍쳐는 직접 구성을 해야 하거든요. 온프레미스(On Premise)는 기존의 전통적인 인프라 환경입니다. 학교나 회사의 지하에 가면 큰 공간에 커다란 기계가 들어있는 것 본 적 있나요? 맞아요! 큰 서버 컴퓨터가 있어요. 기존의 서버는 회사에서 ..

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

제동거리 데이터를 다운받아 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..