일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 코틀린
- ubuntu18.04
- 이것만보면돼
- 데이터청년캠퍼스
- utuntu
- kotiln
- 넥스터즈
- 소켓통신
- 빅데이터
- resample2d_cuda
- 빅데이터청년인재
- 안드로이드
- flownet
- nvcc
- DataBinding Error
- 빅데이터청년캠퍼스
- 딥러닝
- clean architecture
- sending 404
- NEXTERS
- 백준
- IT연합동아리
- 머신러닝
- cuda-10.2
- ubuntu
- 알고리즘
- 자바
- 청년인재
- Android
- 인공지능
- Today
- Total
보초의 코딩일기장
데이터 청년 캠퍼스 9~10일차 본문
20190711 - 9일차
Pandas를 이용하여 DataFrame을 handling하는 것.
스프레드시트에서는 row에는 individual을 입력 column에는 variable(feature) 이 입력되는 형태.
(variable 안에 attribute가 들어가는 형태임)
이 개념을 DataFrame으로 넘어가서 코딩을 하게되면 1차원 벡터 형태로 나열된다.
-
Panel Data Example:
1차년도에 ID가 123인 사람들을 조사한다 (time=1)
2차년도에도 ID가 123인 사람들을 똑같이 조사한다 (time=2)
(… time=n 번째 반복한다. 반복측정) -
이 많은 데이터 중에서 한 시점을 스냅샷처럼 찍은 것을 Panel Data 라고 한다. ( Frame과 비슷한 개념인듯 )
ID | time |
1 | 1 |
2 | 1 |
3 | 1 |
.
ID | time |
1 | 2 |
2 | 2 |
3 | 2 |
Longform dataFrame
ID | time |
1 | 1 |
2 | 1 |
3 | 1 |
1 | 2 |
2 | 2 |
3 | 2 |
- 많은데이터를 한번에 보여주기 위해서는 스냅샷처럼 찍은 Panel Data를 time 순서로 아래에 차례차례로 붙여버리는데 이것을 Longform dataFrame라고 한다.
- 반대로 가로로 붙여버린 것을 Wide form dataFrame라고 부른다.
longform dataframe , wide from dataframe을 합친 것을 long wide frame transformation 이라고 한다.
Wide dataframe
ID r w m
1 100 80 30
2 50 70 20
3 80 60 10
-
wide dataframe 을 tansformation 했을 때 변화.
ID subject score
1 r 100
1 w 80
1 x 30
2 r 50
2 w 70
2 x 20
3 r 80
3 w 60
3 x 10
-
모든 데이터를 분석하는 방법은 전부 다르다. 다른 데이터에 대해 같은 기법을 쓰게 되면 옳지 못한 결과가 나오게 될 것이다.
분석을 직관적으로 할 수 있게 된다면 모델을 결정하기 쉬워진다. -
주어진 DataFrame을 특정 변수에 Groupby를 하는 것을 collapse 라고 한다. (collapse란 붕괴, 무너짐 이란 의미이므로 Dataframe 형태가 무너지고 새로운 형태로 생성된다는 것을 의미)
-
crawling and scrapping
- Scrapping: 특정 홈페이지 속에서 특장 날짜의 게시물, 제목 등 데이터를 가져오는 것.
선형 모형(linear model), 변수(variavle) , 인과관계(causality)의 이해
개량분석의 핵심 개념들
- yi=β0 + β1Xi + εi (Error term)
- yi= b0 + b1Xi + εi
-> 종속(결과)변수, 독립(설명/처지)변수, 오차항- 한 변수로는 데이터를 설명하는 것이 불가능하다.
- εi (Error term) 부분에 많은 변수를 추가한다면 큰 리스크를 불러오게 될 것이다. ( b1x1 + b2x2 + … + ε )
- 우선 데이터 셋 안에 변수가 실제로 존재해야 한다.
- 모든 변수를 추가하지 않고 가장 중요한 변수만 넣어야 한다.
- 설명 변수와 종속 변수의 선형관계를 보고자 하는 것. ( X -> Y )
- X와 Y의 관계를 판단하여 분포되어있는 데이터의 방향을 함수로 표현하게 되면 선의 형태가 나타나게 됨.
- 가장 좋은 설명변수란? 변수를 충분히 다 넣으면 좋은 것.
-> Ockham's Razor, Collinearity, Endogeneity(-> exogeniety)
아예 다른 변수인데 의미는 비슷한 경우! 기계한테는 같은 의미로 해석되므로 문제가 생기게 된다.
내생성(endogeneity)
-
X -> Y
- EX) 입원 일수 라는 x 변수, 사망률 이라는 y 변수가 존재한다고 가정
(엄청나게 다양한 변수의 관계가 내포되어 있음.) 1)
보통병원에서는 입원일수가 길수록 사망률이 높아진다는 결론이 나온다. 이 결과는 자칫 사망률이 높은 병원이라는 단면적인 잘못된 결과를 내세울 수 있다.
우리는 단지 두개의 변수와의 연관성을 생각했기 때문에 이런 문제가 발생하는 것이다. 사실 Confounding( 병의 심각성 ) 라는 제 3의 변수가 제일 중요하기 때문에 제 3의 변수도 고려하면서 생각해야 하는 것이다.
즉 해당 데이터에 confounding이라는 변수가 없기 때문에 잘못된 결과가 나오는 것이다.
1) 병원 자주감 -> 병원체 노출 -> 건강 악화
사실 병원 자주 감의 이전에는,질병이 심각함 -> 병원 자주감.
질병의 심각함 이전에는,
생활 습관, 건강습관 -> 질병이 심각함 ….등등등
이 모든 것들이 중간에 얽히고 섥혀있음.
그럼 이 변수들을 다 깊이 생각할 것인가? 이것은 모델링을 만드는 사람이 선택하는 것임.- Ex) 소방차 출동대수(x) -> 화재피해액(y)
소방차가 많이 출동할수록 화재피해액이 증가한다 ? 옳지않은 결과이다.
이 의미는 화재 피해 규모 라는 omitted variable이 존재한다는 것이다.
(y= a+ bx1 + cx2(ε) 일때, b는 안나오고 c만 나온다.)
- EX) 입원 일수 라는 x 변수, 사망률 이라는 y 변수가 존재한다고 가정
-> 이 두가지 예시는 과대추정의 예시 중 하나이다.
- 인과관계의 여러가지 이슈 = 가장 중요한 개념은 내생성이다.
- 종속변수를 설명하는 모든 설명변수를 포함해야 하는데 이는 관측가능, 측정가능해야하며 또한 가능하다해도 애초에 데이터셋 안에 모든 설명변수가 다 포함될 수 없다.
- 그래서 어쩔수 없이 누락변수 ( omitted variable )이 발생하는 것이다.
(Correlation) Cov(X, ε) = 0 :
선형회귀식이 y= a+xi+ ε일때,
con(x, ε) = 0이라는 의미는 xi와 ε이 같이 변한것이 없다는 의미이다. 즉 제2의변수, 제 3의 변수 등이 존재한다는 의미이다.
ε에는 많은 변수들이 한번에 들어가는데, ε 와 x와는 관련이 있으면 안된다는 의미.
즉, 선형회귀의 기본가정인 BLUE중 하나이다. (Gauss Markov Theorem.)
어떤 분야의 데이터를 분석해야 할때는 해당 분야에서 써야하는 통제변수를 꼭 써야한다.
- 그런데, 인과관계의 해석? "무엇을 할수록, 무엇을 한다!" 라는 표현이 미묘하다.
- 상관관계(correlation) vs 인과관계 (causation)
- 보통은 평균적인 차이, 상관/연관관계, 가능성의 문제로 해석해야 한다.
- 그러나 인과관계로 해석할 수도 있다.
- 하지만 상관관계 != 인과관계는 분명하다.
Prediction
- 상관/연관/가능성이 있다 = " 예측하다 "라고도 해석하기도 한다.
- population 에서 sampling을 해서 data를 얻어온다. 이 data를 바탕으로 다시 inference(추론)을 하여 population을 예측하는 것이다.
- 하지만 inference != prediction, 추론과 예측은 절대 다르다.
- 기술은 샘플이나 모집단 자료의 특성을 요약한 것이다.
- 선형회귀식이 존재할때 새로운 데이터x 값에 대해 y 값을 유추해내는게 예측.
"기술은 한 변수(y)를 다루고 설명은 두 변수 (x->y) 에 대해 다룬다."
-
기술은 정보의 특성(변수)을 요약한 것. (ex> 평균, 최빈값, ...)
- 평균은 오차를 최소로 하는 진술.
-
설명은 샘플이나 모집단에서 두 변수의 관계를 인과적으로 설명하는 것 (ex> 교육이 높을수록 소득이 높다.)
x(대학) y(소득)
대 H
대 H
대 H
고 H
고 H
대 L
고 L
고 L
고 L -
y를 진술할 때,
- y는 소득이 높다, 소득이 낮다. 라고 진술할 수 있으며 소득이 높다라는 진술이 더욱 우수한 진술이 될 수 있다.
소득이 높다라는 진술은 Error1=4( 에러가 4개 ).
- y는 소득이 높다, 소득이 낮다. 라고 진술할 수 있으며 소득이 높다라는 진술이 더욱 우수한 진술이 될 수 있다.
-
x와 y를 진술할 때,
-
대학교를 나왔을 때 소득이 높다. 라는 진술이 제일 BEST! 즉, 교육수준이 높을수록 소득이 높고, 교육수준이 낮을수록 소득이 낮다. (Error2 = 3)
Error1와 Error2 를 비교했을 때 4->3으로 오차를 줄였음.-> 오차의 비례적 감소
-
PRE = ( error1 - error2 ) / error2
- error1 - error2: 오차가 감소한 정도
- error2 : 기준점
-
-
nomalization 하면 표준분포표 처럼 나올 것임. 이 표준 분포표를 세로로 세운다. 그럼 가운데 값이 튀어나온 형태가 된다. (가운데 값이 F(=Y bar) 평균)
- 어떠한 특정 데이터 Yi가 있을 때,
SS total= Σ(Yi - Y_bar)^2. ———> "Error1"을 의미 - 여기에 x축이 추가되어서 1차함수를 만든다고 가정했을 때, Y_Hat.
SS reg= Σ(Y_Hat - Y_bar)^2 ————> "Error2" 을 의미
SS error =Σ (Yi - Y_Hat)^2
- 어떠한 특정 데이터 Yi가 있을 때,
-> R^2 = (SSt - SSe ) / SSt
SSr + SSe = SSt 인데, SSr = SSt - SSe 로 표현할 수 있음. 이걸 위 식에다 대입하게 된다면
R^2 = SSr / SSt 로 표현 가능하다.
선형회귀가 잘 fiting 되었으면 overfiting 이 발생하고 잘 fiting이 도지 않으면 underfiting이 발생하는 것이다.
"러시아의 짜르가 인사들이 많이 사는 지방에는 질병 발병률이 높음을 발견하고 질병을 없애기 위해 의사들을 모두 처형하라고 지시했다." (안진환 역, 2007, p.26)
여기서는 지역별 의사의 숫자 -> 질병 발병률 이라는 식을 알 수 있음.
- 의사가 많은 지역 <- 교육/소득이 높은 지역
- 의사가 많은 지역 <- 좋은 의대를 나온 의사가 집중
- 검진 횟수가 높아짐 -> 질병 진단률 -> 질병 발생률
인과관계를 위협하는 여러가지 문제들
- 누락변수
- 역인과관계
- 시간선행
- time이라는 변수가 들어오는 순간 dimention, autocorrelation(자기상관)문제가 발생하게 된다.
- 자기상관문제란, 개체의 특성이 변하지 않는다는 것( 텀에 따라 갑자기 변수값이 비정상적으로 변하지 않는다.)
Time에 따라 현재의 변수값이 이전의 변수값에 영향을 받는다는 것임. - Moving average: time window값을 설정하여 변수의 평균값을 얻어내는 것. 스무딩 효과를 얻을 수 있다.
- 자기선택, 표본선택 (Sample Selection)
- Ex)
- 패널에서 우울정도 -> 근로소득을 분석한다면, 근로소득이 있는 샘플만 선택.
(만약 근로소득이 NaN값이 존재한다면 그 row는 배제된다) -> 소득이 없는 학생, 주부 등등은 제외된다는 의미이다. (즉, 그릇된 결론이라는 것이다. 숫자는 거짓말을 하지 않는다. ) - 특정 그룹만 존재하면 안된다는 의미이다.
- 패널에서 우울정도 -> 근로소득을 분석한다면, 근로소득이 있는 샘플만 선택.
- Ex)
- 측정오차
- 또한 이 우울증이라는 개념을 어떻게 포착할 것인가 ?
- 단순히 우울의 정도를 1~5정도로 판단하는 것은 단순하다는 것이다.
-> 우울이라는 주제에 세부 항목을 여러개로 나눈다. (사회적 우울에 관한 질문, 정신적 우울에 관한 질문 등등….)- 그리고 이 사회적 우울 답변과 정신적 우울의 답변을 더하여 평균치를 내서 우울증 점수를 낼 수 있음.
- 그런데 사회적 우울에 관한 질문이 3개(a,b,c) , 정신적 우울에 관한 질문이 3개(d,e,f) 있다고 가정한다면
abc의 점수는 서로 비슷할 것이고, def의 점수는 서로 비슷할 것이다. - 이 점수들은 가로 모양의 1차원 벡터로 나열할 수 있다. 여러 사람들이 a에 대한 답변의 패턴을 본다면 b,c의 패턴도 a와 비슷하게 될 것이다.
다중회귀 (Multiple linear regression)
-
변수의 종류는
-
설명/종속변수
-
통제변수
- X2를 추가해도 X1 ->Y의 계수가 살아있는가? 혹은 변화하는가?
- X1,X2가 Y에 주는 효과는 혼동(중첩)되어있는데, 혼동 효과를 떼어낸 효과!
-
더미변수
- 서열변수(ordinal)는 명목변수(nominal)로 바꿀 수 있지만, 명목변수를 서열변수로 바꿀 수 없음.
- 등간(interval)의 대표적인 예시는 온도계. 간격이 똑같은 척도를 의미한다.
온도계에서 0은 상대적인 의미이다. 없음을 의미하는 것이 아니다. - 비율(reatio)의 예시는 키, 몸무게를 의미. 여기서 0은 절대적인 의미이다.
- 독립변수와 종속변수가 전부 불연속일때는 X^2
- 독립변수는 불연속( 두 그룹 ), 종속변수는 연속일 때 T-test (두 집단간의 평균차이 측정)
- 독립변수가 불연속 ( 세그룹 이상), 종속변수는 연속일 때 Anova (분산검정)
- 독립변수가 연속, 종속변수도 연속일 때 Pearson's R 또는 R^2
-
조절변수
-
매개변수
-
-> yi = β0 + β1Xi1 + β2Xi2 +….+ βkXik + εi
- 각각의 X 변수들은 모두 설명변수이므로 때로는 해석자 입장에서 통제변수로 사용된다.
- X1 과 x2 가 Y를 설명하게 될때, 선형 회귀가 아닌 다중회귀의 문제로 넘어가게 된다.
2019.07.12 10일차
다중회귀 (Multiple linear regression)
- 변수의 종류는
- 설명/종속변수
- 통제변수
- 더미변수
- 조절변수
- Ex> 집단 간 효과의 차이를 보여주는 것
수업 중 보인 그래프는 같은 증가 추세를 보이는데, 백인은 증가폭이 크고 흑인은 증가폭이 작은 경우임- yi = β0 + β1Xi1 + β2Xi2 라는 회기 식에서 β3X1X2 (변수 두 개를 곱한 것)을 더해준다.
X1 = 설명변수, X2= 조절변수라 가정.
- yi = β0 + β1Xi1 + β2Xi2 라는 회기 식에서 β3X1X2 (변수 두 개를 곱한 것)을 더해준다.
- Y = 15 + 20X1 + 5X2 =10X1X2
인종 X2 : 백인=0, 흑인=1
백인 Y = 15+20X1
흑인 Y = 15+20X1 +5 -10X1 = 20 -10X1
Visualization 시 그래프는 백인이 기울기가 더 큰 결과가 나온다. 백인과 흑인의 그래프가 Y절편, 그래프가 다 다르다.
핵심은 significance ! !
- Ex> 집단 간 효과의 차이를 보여주는 것
'데이터청년캠퍼스' 카테고리의 다른 글
데이터 청년 캠퍼스 17일차 (0) | 2019.07.23 |
---|---|
데이터 청년 캠퍼스 사전 강의 (0) | 2019.07.05 |
데이터 청년 캠퍼스 2일차 (0) | 2019.07.05 |
데이터 청년 캠퍼스 1일차 (0) | 2019.07.05 |
빅데이터 청년캠퍼스 면접후기 (2) | 2019.07.05 |