Posts

Showing posts with the label 상관관계

1. 상관관계 분석(3): 로그차분을 통한 변화율 상관관계 분석 in python [Advanced Analytics Lab]

Image
앞서 분석에서는 두 변수간의 상관관계를 확인하였다. 분석 결과 삼성전자 주가와 KOSPI 지수, SK Hynix 주가와 KOSPI 지수간에는 유의미한 상관관계가 있음을 확인하였다. 앞서 분석 결과를 바탕으로 생각해 보면, 상관분석 Chapter를 시작하면서 최초의 질문이었던 "삼성전자 주가가 오르면 KOSPI 지수도 상승하고, 삼성전자 주가가 하락하면 KOSPI 주가가 하락한다." 라는 질문에 정확한 대답이 되었을까? 정확한 답은 아니라고 할 것이다. 왜냐하면 삼성전자 주가가 높으면 KOSPI 지수가 높은 것은 맞지만, 삼성전자 주가가 오르면 KOSPI 지수가 오르는 것에 대한 대답은 아니기 때문이다. 즉, X와 Y를 비교하는 것이 아니라 X의 증가량과 Y의 증가량을 비교하는 것이 필요하기 때문이다. X증가량은 로그차분(Logarithmic Differentiation)을 통해서 산출할 수 있다. 변화량을 수식으로 표현하면 아래와 같다. Xt시점의 변화량은 Xt시점에 자연로그(ln)를 취한 값에 Xt의 이전시점 (Xt-1) 값에 자연로그를 취하고 빼준 값과 같다. 예를 들어 1월 4일에 1696.14였던 KOSPI 주가지수가 1월 5일에 1690.62로 증가했다면, 자연로그를 취해서 차이를 구해주면 된다. ln(1690.62) - ln(1696.14) = 7.432851 - 7.43611 = - 0.00326 = -0.326 % python에서 실습해보자. 데이터는 앞과 동일한 데이터를 사용할 것이다. import numpy as np import pandas as pd import pandas_datareader.data as web import matplotlib.pyplot as plt import datetime start = datetime.datetime(2010, 1, 1) end = datetime.datetime(2016, 12, 31) df_KOSPI = web.DataReader...

1. 상관관계 분석(2): 피어슨 상관계수 in python [Advanced Analytics Lab]

Image
앞서 삼성전자 주가와 KOSPI 지수간의 공분산 분석을 통해, 두 변수간의 공분산이 14973826이라는 것을 확인했다. 그러나 공분산 값 만으로는 두 값이 서로 같이 증가하는 경향성이 있다는 것을 알 수 있었지만, 얼마나 "끈끈하게" 두 값이 묶여 있는지는 알 수 없었다. 이에 이번 회에서는 상관계수를 산출하여 두 변수간 얼마나 관련성이 있는지 알아 볼 것이다. 실습으로는 삼성전자와 SK Hynix 주가 중 KOSPI지수와 더 상관관계가 높은 종목을 찾아볼 것이다. 먼저 데이터를 불러오고 산점도를 생성한다. python에서 산점도를 생성하고 공분산을 산출하는 방법은 이전 회 < 1. 상관관계 분석(1) > 을 참조한다. import numpy as np import pandas as pd import pandas_datareader.data as web import matplotlib.pyplot as plt import datetime start = datetime.datetime(2010, 1, 1) end = datetime.datetime(2016, 12, 31) df_KOSPI = web.DataReader("KRX:KOSPI", "google", start, end) df_SE = web.DataReader("KRX:005930", "google", start, end) df_SKH = web.DataReader("KRX:000660", "google", start, end) plt.figure(figsize  = (8,6)) plt.scatter(df_SE["Close"], df_KOSPI["Close"]) plt.show() plt.figure(figsize  = (8,6)) plt.scatter(df_SKH["Close...

1. 상관관계 분석(1): 산점도, 공분산 in python [Advanced Analytics Lab]

Image
증권가에서는 흔히 "KOSPI는 삼성전자 주가에 울고 웃는다"는 말이 있다. 다른 말로 하면 삼성전자 주가가 오르면 KOSPI 지수도 상승하고, 삼성전자 주가가 하락하면 KOSPI 주가가 하락한다는 표현이 되겠다. 과연 KOSPI와 삼성전자는 연관되어 움직일까? 삼성전자 주가도 원화로 표기된 "숫자"로 되어 있고, KOSPI 지수도 지수라는 "숫자"로 표시된다. 통계에서는 정해진 범위안에 모든 실수가 될 수 있는 값을 가진 변수들- 온도, 키, 몸무게 등과 같은 간격(interval) 또는 비율(ratio)을 연속된 숫자로 표현하는 변수를 연속형 변수(continuous variable)이라고 부른다.  연속형 변수인 두개의 변수간에 상관성이 존재하는지 파악하는 가장 쉬운 방법은 두 변수간 산점도(Scatter Plot)을 생성해 보는 것이다.  예를 들어 삼성전자의 주가와 KOSPI 주가 간에 상관성이 존재하는지 확인한다고 하자. 가장 쉬운 방법은 x축에 삼성전자의 주가를, y축에 KOSPI 지수를 설정하여 점을 찍어 보는 방법일 것이다. 만약에 두개의 변수가 서로 같이 움직이는 경향을 가진다면 x가 높을 수록 y도 높은 값을 가지고, x가 낮을 수록 y도 낮은 값을 가지게 될 것으로 추측할 수 있다. 먼저 실습 데이터를 Python으로 불러와 보자. 데이터는 2010년부터 2016년까지의 KOSPI 지수와 삼성전자 주가이다. 먼저 필요한 패키지들을 불러온다. import numpy as np import pandas as pd import pandas_datareader.data as web  # DataReader import matplotlib.pyplot as plt  #  import datetime 위의 다섯개의 패키지들은 앞으로 있을 실습에서 데이터를 불러오거나 차트를 생성할때 거의 항상 사용하게 될 패키지들이다. numpy 패키지는 다차원 배열의 연산처리를 위한 패...