기본 콘텐츠로 건너뛰기

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

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은 열단위 즉, 행 방향으

16. Learning: Support Vector Machines

support vector machine_intro

SVM hyperplane(초평면) : 유한차원 공간에서 원 차원으로 부터 한 차원 낮은 부분공간을 의미합니다. 예를들면 3차원 공간 속 평면 공간을 의미합니다. 부분 벡터 공간 $N \subset V$ 에서 N을 V의 벡터 초평면(hyperplane)이라고 합니다. 서포트벡터머신(svm)은 기계학습 분야의 하나로 대표적인 지도학습의 분야 중 하나 입니다. 주로 분류(classification)과 회귀분석에 사용됩니다. 장점;  - 고차원 공간에서 효율적  - 샘플 수보다 큰 차원에서 효율적  - 결정함수(decision function, support vector)내에서 훈련  데이터들의 부분들을 이용(memory effect)  - 결정함수를 특정하기 위해 다른 커널 함수(kernel functions)들을 사용할 수 있습니다. 일반적인 커널 함수가 제공하되지만 사용자가 생성할 수 있습니다. 단점;  - 샘플의 수 > 변수의 수 --> 특정한 커널 함수를 선택하는 것으로 과적합을 피하여야 합니다. 그리고 데이터들의 정규화가 중요합니다.  - SVMs은 직접적으로 확률적 추정을 제공하지 않기 때문에 expensive five-fold cross-validation을 이용하여 계산합니다. scikit-learn내에 svm은 입력 데이터로 dense와 sparse sample vectors 형식을 지원합니다. dense : numpy.ndarray 와 numpy.asarray에 의해 이 형식으로 변환할 수 있습니다. sparse : scipy.sparse 분류 선형적으로 분리할 수 있는 데이터는 데이터의 원소들을 구별할 수 있는 무한히 많은 결정경계를 만들수 있습니다. 그러나 직관적의 어떠한 경계는 다른 것들보다 좀 더 명확한 경계선을 보일 것입니다. 위 그림은 원과 사각형의 점들을 구별하기 위해 3개의 선을 보인 것으로 선 1, 2, 3 중에 어떤 선을 선택해야 하는가를 찾는 것이 svm의 목적입니

axes and text_R plots

Axes and Text R에서 plot() 함수의 기본 형은 다음과 같습니다.  plot(x, y, main="제목", sub="하위제목", xlab=" ", ylab=" ", xlim=c(최소, 최대), ylim=c(최소, 최대), xlab, ylab, col.lab=축이름의 색, cex.lab=0.75) 위 함수의 매개변수 중 xlab. ylab은 축이름이고 xlim, ylim은 x, y 축의 범위를 나타냅니다.  cex.lab은 축이름의 크기를 지정합니다.  위 함수에서 재목은 title() 함수를 사용하여 별도로 나타낼 수 있습니다.  title(main="제목", col.main=제목의 색, sub="하위제목", col.sub="하위제목의 색") 그래프에 text를 첨가하기 위해 text()와 mtext()를 사용할 수 있습니다.  text(): 그래프 내에 문구를 첨가할 경우 사용합니다.    text(위치1, "삽입문구", 위치2, ...) mtext(): 그래프 외부에 위치시킬 경우 사용합니다.   mtext("삽입할 문구", side,...) 위치1 - x, y 축의 값을 지정하여 해당하는 좌표를 시작으로 문구가 삽입됩니다.  side(위치2) - 그래프 내 또는 외부에 위치를 지정합니다.       위치2 = 1, 2, 3, 4로 지정되면 각각은 below, left, above, right 이외에 cex, col, font를 지정할 수 있는데 각각은 크기, 색, 폰트 스타일을 지정할 수 있습니다.  축 설정  axis() 함수를 사용하여 축을 별도로 설정할 수 있습니다.  axis(위치2, at=, labels=, pos=, lty=, col=, las=, tck=,...) at: 지

linear regression_python

선형회귀는 회귀계수 w=(w1, w2, ..., wp)를 가진 선형모형을 생성하는 것입니다. 이는 반응변수의 관찰치와 선형 모형에 의한 추정치 사이의 잔차제곱합이 최소가 되도록 설정합니다. $$ \text{min} \sum^n_{i=1} {(x_i w- y_i)^2}$$ 회구모형을 구축하기 위해 sklearn 모듈을 사용하는데 제공되는 모든 함수는 list 또는 np.array 형을 대상으로 합니다. 그러므로 아래와 같이 pandas 모듈의 함수를 사용하여 엑셀로 부터 데이터를 호출하는 경우 호출되 데이터는 DataFrame 형태이므로 이들의 형식을 np.array 형으로 변경하여야 합니다. >>> import numpy as np >>> import pandas as pd >>> from datetime import datetime, timedelta >>> import matplotlib.pyplot as plt >>> from sklearn import linear_model >>> kl=pd.read_excel('C:\\~~.xlsx', sheet_name="kl") >>> startd=pd.Timestamp(datetime(2017,12, 1)) >>> kl1=kl.ix[kl.index>=startd, :] >>>  kl1              Open   High    Low  Close    Volume 2017-12-01  17550  17580  17345  17425   9696255 2017-12-04  17550  17750  17400  17750   8287180 2017-12-05  17610  17955  17530  17875   9387273 .... 위 데이터에서 Open, High, Low를 독립변수

회귀계수에 대한 F 검정

단변수에 대한 회귀검정 회귀 모형에서 독립변수 각각의 효과를 검정합니다. 2 단계로 이루어 집니다. 1) 독립변수와 관찰치 사이의 상관을 계산 $$\frac{(x-\ba x)(y-\bar y)}{\sigma_x \sigma_y}$$ 2) F score 즉, F 값과 대응되는 p value를 계산한다. F 검정은 정규분포를 따르는 모집단에서 분류된 집단의 분산이 동일하고 각 집단의 평균이 같다고 가정한다.  H0: 각 그룹의 분산은 같다. 회귀계수의 검정에서 각 변수는 그 회귀계수가 0일 경우 즉, 반응변수의 평균과의 잔차에 대한 분포와 독립변수가 사용될 때 추정치와의 잔차의 분포를 비교합니다.  다음의 독립변수(ind)와 반응변수(de)에 대해 F 검정의 결과는 regression_f() 메소드를 적용합니다. 이 메소드는 sklearn.feature_selection클래스 메소드입니다. >>> from sklearn import feature_selection >>> ind array([[ 17550.,  17580.,  17345.],        [ 17550.,  17750.,  17400.],        [ 17610.,  17955.,  17530.],        [ 17890.,  17905.,  17370.],        [ 17445.,  17470.,  17135.],        [ 17365.,  17445.,  17230.],        [ 17395.,  17425.,  17225.],        [ 17400.,  17405.,  17205.],        [ 17300.,  17555.,  17215.],        [ 17575.,  18010.,  17550.],        [ 17710.,  17785.,  17455.],        [ 17580.,  17630.,  17485.],        [ 17685.,  17885., 

pandas DataFrame 객체의 호출방법

함수 내용 df[열이름], df[ [열이름1, 열이름2, ...] ] 열선택 , 다중의 열을 호출할 경우 호출할 열이름은 하나의 인자가 되어야 하므로 리스트([])로 묶어 표현해야 합니다. df.loc[행이름, 열이름] 라벨에 의한 행, 열 선택 df.iloc[정수형태로 행, 열] 위치를 나타내는 정수에 의해 행 선택 df.ix[행, 열] 행과 열을 지정하여 값을 호출, 이 메소드에 행과열은 이름 뿐 아니라 위치를 나타내는 정수 역시 가능합니다.(이 방법은 호출방식에서 제거 될 예정이므로 지양하는 것이 좋습니다.) >>> x              Open   High    Low  Close    Volume 2017-12-15  17710  17785  17455  17520   8021471 2017-12-18  17580  17630  17485  17585   5329171 2017-12-19  17685  17885  17500  17585   8411805 2017-12-20  17500  17670  17490  17520   4540009 2017-12-21  17430  17485  16840  16840  15900848 >>> x["Close"] Out[205]: 2017-12-15    17520 2017-12-18    17585 2017-12-19    17585 2017-12-20    17520 2017-12-21    16840 Name: Close, dtype: int64 >>> x.loc['2017-12-20', "Close"] 17520 >>> x.iloc[3, 2] 17490

회귀분석을 위한 주가데이터 만들기2_ DataForRegressionS

포스트 DayInInterRetStockS() 의 클래스를 소개하는 글에서 원 일일주가데이터로 부터 새로운 변수들을 생성하여 새로운 객체를 만들었습니다. 그 결과를 바탕으로 회귀분석을 위한 데이터 생성을 계속해 보면 다음과 같습니다.  이전의 데이터 경향으로 새로운 값을 예측하는 것이 회귀분석의 기본방향이라면 위에서 생성된 데이터들 중에 예측에 사용되는 변수들(독립변수)과 예측을 위한 변수(반응변수)를 구분해야 겠지요. 이전에 생성한 객체의 변수명은 다음과 같습니다.  >>> da.columns Index(['Open', 'High', 'Low', 'Close', 'Volume', 'Close:Open:ret',        'Close:High:ret', 'Close:Low:ret', 'Open:intRet', 'High:intRet',        'Low:intRet', 'Close:intRet', 'Volume:intRet', 'olag', 'hlag', 'llag',        'clag', 'vlag'],       dtype='object') 위의 변수들 중에 반응변수의 대상은 'Open', 'High', 'Low', 'Close'중의 하나의 변수가 될 것입니다.  예로서 Close를 반응변수로 한다면 나머지 변수들은 독립변수가 됩니다. 독립과 반응변수는 날들로 모형의 설계는  '당일까지의 독립변수들의 성격들로 다음날의 반응변수를 예측' 으로 구축할 것입니다.  이러한 구축을 위해 먼저 독립변수들과 반응변수를 구분하고 이 두 대상의 날짜를