기본 콘텐츠로 건너뛰기

라벨이 stock인 게시물 표시

통계관련 함수와 메서드 사전

A B C d E F G H I K L M N O P Q R S T U V W Z A statsmodels.ap.stats.anova_lm(x) statsmodels.formula.api.ols 에 의해 생성되는 모형 즉, 클래스 인스턴스(x)를 인수로 받아 anova를 실행합니다. np.argsort(x, axis=-1, kind=None) 객체 x를 정렬할 경우 각 값에 대응하는 인덱스를 반환합니다. Axis는 기준 축을 지정하기 위한 매개변수로서 정렬의 방향을 조정할 수 있음(-1은 기본값으로 마지막 축) pandas.Series.autocorr(lag=1) lag에 전달한 지연수에 따른 값들 사이의 자기상관을 계산 B scipy.stats.bernoulli(x, p) 베르누이분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 p: 단일 시행에서의 확률 scipy.stats.binom(x, n, p) 이항분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 n: 총 시행횟수 p: 단일 시행에서의 확률 C scipy.stats.chi2.pdf(x, df, loc=0, scale=1) 카이제곱분포의 확률밀도함수를 계산 $$f(x, k) =\frac{1}{2^{\frac{k}{2}−1}Γ(\frac{k}{2})}x^{k−1}\exp\left(−\frac{x^2}{2}\right)$$ x: 확률변수 df: 자유도 pd.concat(objs, axis=0, join=’outer’, …) 두 개이상의 객체를 결합한 새로운 객체를 반환. objs: Series, DataFrame 객체. Axis=0은 행단위 즉, 열 방향으로 결합, Axis=1은 열단위 즉, 행 방향으

회귀분석을 위한 주가데이터 만들기_DayInInterRetStockS 해설

일일주가 데이터에서 지정한 열을 기준으로 일중 수익률, 일간 수익률, 그리고 지정한 일전(preday)의 자료와 결합합니다. 목표한 자료를 위해 사용자 정의 클래스를 작성하였습니다. import numpy as np import pandas as pd import copy class DayInInterRetStockS:     def __init__(self, da):         self.da=da         self.nme=[i for i in self.da.columns]     def InRetS(self, DeColN):         nme0=copy.deepcopy(self.nme)         nme1=self.nme[DeColN]         del(nme0[DeColN])          nme2=[ ]         for i in nme0:             nme2.append(nme1+":"+i+":ret")             m=0         re=pd.DataFrame()         for j in nme0:             re[nme2[m]]=(self.da[nme1]-self.da[j])/ self.da[j] *100             m=m+1         self.Inday=re.drop(nme2[len(nme2)-1], axis=1)         return(self.Inday)     def IntRetS(self, Int=1):         nme1=[i+':intRet' for i in self.nme]         self.intrad=((self.da-self.da.shift(Int))/self.da.shift(Int)*100)         self.intrad.columns=nme1         return(self.intrad)     def ShiftdS(self

stock data의 정규 분포의 적합성_bootstrap, CLT

중심극한정리를 사용하여 최근 60일 또는 30일간의 일일자료를 바탕으로 자료의 수를 증가시켜 회귀모형을 작성합니다. 우선 이 자료가 정규분포 또는 로그노말 분포에 적합성을 확인합니다. 1. 자료 호출 (대상은 코덱스 레버리지) 엑셀에 보관된 자료를 호출합니다. >>> import numpy as np >>> import pandas as pd >>> from datetime import datetime, timedelta >>> kl=pd.read_excel('C:\\~~\\newD1.xlsx', sheet_name="kl") 호출한 자료 중에서 일정한 날짜 이후의 데이터를 추출합니다. 이 경우 사용될 수 있는 date 자료형은 pd.Timestamp를 사용하여 입력된 숫자형 타입을 date형으로 전환합니다. >>> startd=pd.Timestamp(datetime(2017,9,20)) >>> kl1=kl.ix[kl.index>=startd, :] >>> len(kl1) #데이터 프레임 형에서 행의 수를 나타냅니다.  60 위의 자료의 정규성 검사를 위해 QQ plot과 pearson 상관검정을 실시해 봅니다. >>> from scipy import stats >>> g=plt.subplot(111) >>> x=stats.probplot(kl1.ix[:,3], dist="norm", plot=g) >>> plt.show() 위의 객체 x에서 생성된 두 결과 객체 즉, 위 그림의 ordered Value(x[0][1])과 Theoretical quanties(x[0][0]) 사이의 상관분석을 실시해보면 다음과 같은 결과가 나타납니다. >>> stats.pearso

Date 데이터의 조정

Date 클래스 문자열을 날짜 인덱스로 변환 일일 주가자료를 주중자료로 변환 시간 데이터 수열 생성 Date 데이터의 조정 Date 클래스 날짜는 date 클래스를 사용하여 조정할 수 있습니다. 이 클래스는 year, month, day 의 속성을 가지고 있다. 또한 요일은 메소드 weekday() 에 의해 확인할 수 있으며 0 ~ 6 사이의 정수를 반환합니다. 각 수치는 다음과 같이 요일을 대표한다. 0:월요일, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일요일 오늘의 날짜를 나타내기 위해서는 today() 메소드를 사용합니다. import datetime today=datetime.date.today() today datetime.date(2022, 3, 11) today.year 2022 today.month 3 today.day 11 today.weekday() 4 print(today) 2022-03-11 date.ctime() 은 날짜를 나타내는 문자열을 반환합니다 today.ctime() 'Fri Mar 11 00:00:00 2022' 문자열을 날짜 인덱스로 변환 다음과 같이 날짜 타입인 문자열인 경우 분석을 위해서는 date 형식으로 변환하여야 합니다. x="2010. 10. 11 오후 3:30:00" type(x) str x에서 '오후'를 제거하고 숫자 형식의 문자만을 date 형식으로 변환합니다. 이 변환은 str객체.replace() 와 pandas.to_dateTime() 메소드를 사용할 수 있습니다. 또한 문자열에서 특정부분만을 변환하기 위해서 str객체.split() 메소드를 사용할 수 있습니다. x="2010. 10. 11 오후 3:30:00" type(x) str x1=x.replace("오후", "") x1 '

주식 데이터 관리_google finance

1. 대상이 되는 주식 일일자료를 google finance로 부터 호출하여 엑셀로 저장하기 다음의 패키지들이 필요하다. In [1]: import numpy as np In [2]: import pandas as pd In [3]: from googlefinance.client import get_price_data, get_prices_data, get_prices_time_data In [4]: from datetime import datetime, timedelta 1) google finance에 사용할 수 있는 각 주가 코드를 엑셀로 정리하여 호출하자. 다음예에서 사용된 dropna()는 데이터에 na를 제거하기 위해 사용한 것으로 아래의 포스트를 참조( nan제거를 위한 함수들 ) In [5]: itemCode=pd.read_excel("c:\\~~.xlsx", sheet_name="googleCode") In [6]: itemCode1=itemCode.ix[:,:4] In [7]: itemCode1=itemCode1.dropna(axis=0) In [8]: itemCode1 Out[8]: code1 종목코드 item 종목명 0 KRX KOSPI kospi 종합(KOSPI) ... ... ... ... ... 2) google finance로 부터 데이터를 호출하기 위해 위 코드 [3]에서 제공하는 함수들을 사용한다. 포스트 ( google finance로 부터의 자료 호출_python  )참조 위에서 호출한 code는 여러 종목에 관한 것이다. 그러므로 각 종목을 호출하기 위해서는  반목문을 사용하자.  최종 결과를 담기위해 인덱스(주식명)과 값(일일자료)를 모두 표시할 수 있는 사전 객체로 생성하자.  In [9]: dat={} In [10]: for i in range(len(itemCode1)):             param={

선형회귀모형

1. 데이터 준비  설명변수와 반응변수 사이의 상관성을 토대로 설명변수에 의한 반응변수의 추정를 위한 모형을 구축하는 분석방법 선형 모형 구축을 위해 python에서는 일반적으로 satasmodels와 sklearn 패키지를 사용된다.  이 포스팅에서는 sklearn패키지를 사용한다. 또한 kospi일일 주가자료를 가지고 모형을 구축해 본다. 우선 google finance에서 kospi일일자료를 호출해 보자. 패키지 numpy와 pandas는 자료 조작에 매우 유용하다. 그러므로 모형구축을 위해 사용되는 패키지들을 장착하자. import numpy as np import pandas as pd from datetime import datetime from pandas_datareader import data, wb #웹에서 데이터 호출 import pandas_datareader.data as web import matplotlib.pyplot as plt #그래프 작성을 위해 필요 #%matplotlib inline from sklearn.linear_model import LinearRegression startD=datetime(2010, 3, 1) endD=datetime(2017, 3, 31) k=web.DataReader("KRX:kospi", "google", startD, endD) k.head(3) Open High Low Close Volume Date 2010-03-02 1612.43 1620.15 1608.97 1615.12 414637000 2010-03-03 1615.25 1622.63 1611.35 1622.44 403092000 2010-03-04 1625.35 1631.10 1612.47