기본 콘텐츠로 건너뛰기

1월, 2018의 게시물 표시

벡터와 행렬에 관련된 그림들

주가추정 결과

Kospi를 비롯한 몇가지 종목의 다음날의 추정치는 시가, 고가, 저가, 종가, 거래량 데이터를 기반으로 계산된 지표를 첨가하여 lasso 회귀모형을 기반으로 분석한 결과입니다.  이 추정결과는 다음 링크에서 확인할 수 있습니다. 각 달이 하나의 파일에 포함되면 각 spearsheet의 이름은 추정된 날짜를 나타냅니다. 또한 동일한 날짜에 "c"표시는 원 데이터를 실제 거래하는 가격의 간격에 따라 구분하여 분석한 결과입니다.  'wk'는 주간 추정치 입니다.  추정결과 

수치형 자료의 목록화_python

시가, 고가, 저가, 종가, 거래량으로 구성되어 있는 일일자료 중 종가를 기준으로 다음을 계산 1) (당일 - 전일)/전일 2) 일정한 구간으로 구분 3) 원자료와 결합 위 과정중 1)을 위해 사용자 정의 함수를 작성하여 사용 def InterRetS(da, inter=1):     ref=da.shift(inter)     re=(da-ref)/ref     re.columns=da.columns+"interRet"     return(re) 테스트를 위한 자료는 kodex leverge 일일자료를 사용 위 함수는 지정된 시차의 자료와 각 열 (각 변수)별로 위의 1)을 계산합니다. kl1.head(2) Out[13]:             Open  High   Low  Close    Volume 2016-01-04  9810  9815  9470   9490  31928370 2016-01-05  9420  9620  9400   9525  27896887 ret=InterRetS(kl1) ret.head(2) Out[14]:             OpeninterRet  HighinterRet  LowinterRet  CloseinterRet  \ 2016-01-04           NaN           NaN          NaN        ...

array 벡터 구조의 변환_reshape, np.newaxis

numpy 객체 array 구조에서 기본은 행 즉, 열벡터입니다. 예를들어 다음과 같은 1차원 구조의 객체를 생성합니다. x1=np.random.randint(0, 10, 5) x1 Out[24]: array([3, 5, 0, 6, 7]) 객체 x1의 경우 행 또는 열로 이루어진 1차원 구조입니다.  array 객체에서 데이터의 우선적 배치는 행입니다. 즉, 1행을 채우고 다음으로 2행을 채우는 방법이지요. 사실 이 방법은 python에서 뿐만 아니라 다른 언어의 배열(행렬) 구조의 기본 배치방법입니다. 그러므로 위 객체는 5행인 1차원 구조로 열의 수는 정해지지 않습니다. 다른 언어에서는 이러한 경우 열은 자동으로 1로 지정되지만 numpy의 경우는 지정되지 않습니다. 다음과 같지요. x1.shape Out[25]: (5,) 이 경우 다른 객체와의 행렬곱 등 연산의 경우 서로의 차원의 mismatch로 에러가 유발됩니다. 그러므로 위의 결과 (5, ) 를 (5, 1)과 같이 열을 지정해 줄 필요가 있습니다. 이를 위해 np.reshape() 또는 np.newaxis를 사용합니다. np객체.reshape(행수, 열수) : 원 객체의 차원을 지정한 차원으로 전환합니다. x1.shape Out[25]: (5,) x2=x1.reshape(5,1) x2 Out[27]: array([[3],        [5],        [0],        [6],        [7]]) x2.shape Out[28]: (5, 1) np객체[:, np.newaxis] : 원객체의 새로운 축 하나를 첨가합니다. 이 경우는 열에 새로운 축을 첨가하는 것으로 결과적으로 열의 수가 1로 지정됩니다. np.newaxis를 행의 위치에 지정하면 원 객체의 행과 열이 전치됩니다. ...

분산-공분산 행렬

어떤 행렬의 열들 사이의 공분산을 계산하기 위해 사용할 수 있는 함수는 numpy.cov() pandas데이터프레임.cov() 가 있다. 그러나 numpy.cov()의 경우 두 객체들 사이의 공분산을 계산하고 그 이상의 차원에서는 엉뚱한 값들을 반환한다. >>> x                 Open      High       Low    Volume 2017-12-05  0.493023  0.648262  0.624396 -0.220359 2017-12-06  0.737391  1.452395  1.166491  0.200745 2017-12-07  1.877774  1.256265  0.499297  0.316586 2017-12-08  0.065379 -0.450067 -0.480642  0.635944 2017-12-11 -0.260445 -0.548132 -0.084496 -0.518430 2017-12-12 -0.138261 -0.626584 -0.105346 -1.072204 2017-12-13 -0.117897 -0.705036 -0.188745 -0.986260 2017-12-14 -0.525176 -0.116646 -0.147046 -0.465978 2017-12-15  0.594843  1.668138  1.249890  1.623176 2017-12-18  1.144670  0.785553  0.853744 -0.322070 2017-12-19  0.615207  0.177549  0.978842 -1.352655 2017-12-20...