Today I Learned
-
한국 주요 기업 주가 간의 상관관계 분석
import yfinance as yf import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt naver = yf.download('035420.KS', start='2016-01-01') samsung = yf.download('005930.KS', start='2016-01-01') hynix = yf.download('000660.KS', start='2016-01-01') hyundai = yf.download('005380.KS', start='2016-01-01') kia = yf.download('000270.KS', start='2016-01-01') kakao = yf.downl..
-
한국 실업률 데이터를 활용한 스플라인 보간(Spline Interpolation)
한국 실업률 데이터는 2013년 1월 ~ 2023년 4월 데이터. 실업률에 대한 데이터는 월단위로 얻을 수 있어, 이 데이터를 증폭시킨다면 시계열 예측에 있어서 도움될 것. 원래 데이터 크기: 124 원하는 목표의 데이터 크기: 2500 import numpy as np import pandas as pd from scipy.interpolate import interp1d import matplotlib.pyplot as plt # umemployed이라는 DataFrame이 이미 존재하며, index는 0부터 시작한다고 가정합니다. original_length = len(umemployed) new_length = 2500 # 보간에 사용할 원래의 x, y 좌표를 생성합니다. x_original = ..
-
아파치 파켓(Apache Parquet)
아파치 파켓(Apache Parquet)은 열 기반의 고성능 파일 포맷으로, 빅데이터 처리를 위한 오픈소스 프로젝트 Apache Arrow에서 개발되었다. 하둡(Hadoop) 파일 시스템에서 사용하기 위해 최적화되어 있으며, Apache Spark, Apache Hive, Apache Impala 등의 데이터 처리 프레임워크와 호환된다. Parquet은 효율적인 데이터 압축 및 인코딩 방식을 사용해 데이터를 저장하며, 고속 쿼리 처리를 가능하게 한다. Parquet의 주요 특징 및 장점은 다음과 같다. 열(column) 기반 저장 Parquet은 열 기반의 파일 포맷으로, 데이터를 열 단위로 저장한다. 이러한 방식은 대규모 데이터셋에서 작은 부분만 읽어야 하는 경우 유용하다. 예를 들어, 특정 열에 대한..
-
자기상관함수(AutoCovariance Function, ACF) 그래프 확인하기
import pyupbit as pu import numpy as np import pandas as pd import matplotlib.pyplot as plt from statsmodels.graphics.tsaplots import plot_acf pu.get_current_price(["KRW-BTC"]) btc = pu.get_ohlcv(ticker="KRW-BTC",interval='minute1',to='2023-04-12 23:59',count=3000).close plt.figure(figsize=(14,7)) plt.title('Bitcoin') plt.plot(btc) fig, ax = plt.subplots(figsize=(12, 5)) plot_acf(btc, ax=ax, lag..
-
PDF 파일에서 특정 페이지 python으로 추출하기
# fitz 설치 pip install PyMuPDF def find_pages_with_keyword(input_pdf_path, keyword): pdf = fitz.open(input_pdf_path) pages_with_keyword = [] for page_num in range(pdf.page_count): page = pdf.load_page(page_num) if keyword.lower() in page.get_text().lower(): pages_with_keyword.append(page_num + 1) pdf.close() return pages_with_keyword def print_pages_with_keyword(input_pdf_path, keyword): pages = ..
-
시계열 분해(Time series decomposition) 그래프 확인하기
import pyupbit as pu import numpy as np import pandas as pd import matplotlib.pyplot as plt from statsmodels.tsa.seasonal import seasonal_decompose pu.get_current_price(["KRW-BTC"]) btc = pu.get_ohlcv(ticker="KRW-BTC",interval='minute1',to='2023-04-12 23:59',count=3000).close plt.figure(figsize=(14,7)) plt.title('Bitcoin') plt.plot(btc) result = seasonal_decompose(btc, model='multiplicative', pe..
Time Series Analysis
-
One-step forecasting/Multi-horizon forecasting
시계열 예측에서 one-step forecasting과 multi-horizon forecasting은 예측 기간에 따라 구분되는 두 가지 주요 방법이다. One-step forecasting One-step forecasting은 향후 하나의 시점에 대한 예측값을 생성하는 것이다. 이 방법은 현재 시점의 상태를 바탕으로 다음 관측값을 예측하기 때문에 직계 예측이라고도 한다. 예를 들어, 주식 시장에서 오늘의 데이터를 활용하여 내일의 주가를 예측하는 것이 one-step forecasting의 예다. 단일 스텝 예측은 일반적으로 빠르고 손쉽게 적용할 수 있으며, 단기 예측에 적합하다. Multi-horizon forecasting Multi-horizon forecasting은 향후 여러 시점에 대한 예..
-
시계열 데이터의 차원(Time Series Dimensionality)
시계열 데이터의 차원(Time series dimensionality)은 데이터가 단일 변수(univariate) 또는 다중 변수(multivariate)로 구성되어 있는지에 따라 결정된다. Univariate Time Series (단변량 시계열) Univariate time series는 하나의 변수 또는 특성만을 포함하는 시계열 데이터다. 예를 들어, 주식 가격의 일별 종가, 월별 판매량, 연간 기온 등은 모두 단일 변수 시계열 데이터의 예시다. 이러한 데이터는 시간에 따라 관측된 값들의 연속으로 구성되어 있으며, 각 관측치는 해당 변수의 값을 나타낸다. Multivariate Time Series (다변량 시계열) Multivariate time series는 두 개 이상의 변수 또는 특성을 포함..
-
변수 선택법(Variable Selection)
변수 선택법 (Variable Selection)은 머신러닝 모델을 구축할 때 사용되는 변수(특성)를 선택하는 방법이다. 이는 모델의 성능을 향상시키고, 과적합(overfitting)을 줄이며, 모델의 복잡성을 낮추고, 계산 시간을 줄이는 데 도움이 된다. 변수 선택법에는 여러 가지 방법이 있다. 필터 기반(Filter-based) 방법: 이 방법은 각 변수의 통계적 속성을 기준으로 변수를 선택한다. 변수 간 상관관계, 카이제곱 검정, 정보 이득 등을 사용하여 변수를 평가하고, 가장 중요한 변수만 선택한다. 이 방법은 계산 효율성이 높으나, 모델과 독립적이기 때문에 선택된 변수가 항상 최적의 모델 성능을 보장하지는 않는다. 래퍼 기반(Wrapper-based) 방법: 래퍼 기반 방법은 모델 성능을 직접 ..
-
다중공선성(Multicollinearity)
다중공선성(multicollinearity)은 회귀 분석에 사용되는 독립 변수들 간에 높은 상관관계가 존재할 때 발생하는 문제다. 조금 더 구체적으로 말하자면, 독립 변수의 일부가 다른 독립 변수의 조합으로 표현될 수 있는 경우다. 독립 변수들이 서로 독립이 아니라 상호상관관계가 강한 경우에 발생한다. 이 문제는 회귀 계수의 추정치가 불안정하게 되어, 모델의 해석과 예측 성능에 영향을 미치게 된다. 다중공선성을 이해하기 위해서는 몇 가지 주요 개념들을 알아야 한다. 회귀 분석(Regression Analysis): 종속 변수와 하나 이상의 독립 변수 사이의 관계를 모델링하는 통계 기법이다. 회귀 분석은 독립 변수의 변화가 종속 변수에 어떤 영향을 미치는지 파악하는 데 도움이 된다. 상관계수(Correla..
-
교차 상관(Cross Correlation)
교차 상관(Cross Correlation)은 두 시계열 데이터의 상관 관계를 시간 지연(lag)에 따라 분석하는 통계적 방법이다. 교차 상관은 한 시계열 데이터가 다른 시계열 데이터에 얼마나 밀접하게 관련되어 있는지를 측정한다. 이는 두 시계열 데이터 사이의 상관 관계를 찾고, 한 시계열 데이터의 패턴이 다른 시계열 데이터에 어떻게 영향을 미치는지 이해하는 데 도움이 된다. 교차 상관의 계산은 다음과 같다. 두 시계열 데이터 $X$와 $Y$가 있고, 각각의 길이가 $n$이라고 가정해보자. 교차 상관 $r_{xy}(k)$를 시간 지연 $k$에 대해 다음과 같이 정의한다. $r_{xy}(k) = \frac{\sum_{i=1}^{n-k} (x_{i+k} - \bar{x})(y_i - \bar{y})}{\sq..
-
전송 엔트로피(Transfer Entropy, TE)
전송 엔트로피(Transfer Entropy, TE)는 두 시계열 변수 간의 방향성 있는 정보 전달을 측정하는 비선형 방법이다. 전송 엔트로피는 정보 이론의 개념을 기반으로 하며, 한 시계열에서 다른 시계열로의 정보 전달을 정량화한다. 이를 통해 두 변수 간의 인과 관계를 추론할 수 있다. 전송 엔트로피는 선형 및 비선형 관계를 모두 측정할 수 있으며, 시차(lag)를 고려하여 방향성 있는 정보 전달을 계산한다. 전송 엔트로피를 계산하는 공식은 다음과 같다. $TE(X \to Y) = \sum_{x_{t-1}, y_{t}, y_{t-1}} p(x_{t-1}, y_{t}, y_{t-1}) \log \frac{p(y_{t} | x_{t-1}, y_{t-1})}{p(y_{t} | y_{t-1})}$ 여기서, ..
-
그레인저 인과관계 검정(Granger causality test)
그레인저 인과관계 검정(Granger causality test)은 두 시계열 변수 간의 인과 관계를 추론하는 통계적 방법이다. 그레인저 인과성 검정은 한 변수가 다른 변수의 과거 정보를 통해 예측할 수 있는지를 확인하여 인과 관계를 결정한다. 이 방법은 두 변수의 시간 지연(lag) 값을 고려하여 회귀 모델을 사용하여 검정한다. 그레인저 인과성 검정은 다음과 같은 과정으로 수행된다. 두 시계열 변수 X와 Y를 준비한다. 시간 지연(lag) 값을 선택한다. 일반적으로 AIC(Akaike Information Criterion) 또는 BIC(Bayesian Information Criterion) 같은 정보 기준을 사용하여 최적의 지연 값을 선택한다. 선택한 시간 지연 값을 사용하여 두 변수의 벡터 자기회..
-
상호 정보량(Mutual Information)
상호 정보량(Mutual Information, MI)은 정보 이론에서 두 확률변수 간의 의존성을 측정하는 방법이다. 상호 정보량은 한 변수의 정보가 다른 변수의 불확실성을 얼마나 줄여주는지를 나타내며, 두 변수가 독립적일 때 상호 정보량은 0이 된다. 상호 정보량은 선형 및 비선형 관계 모두를 포착할 수 있으며, 이산(discrete) 및 연속(continuous) 변수에 모두 적용할 수 있다. 상호 정보량을 계산하는 공식은 다음과 같다. 이산 변수 $I(X; Y) = \sum_{x \in X} \sum_{y \in Y} p(x, y) \log \frac{p(x, y)}{p(x) p(y)}$ 연속 변수 $I(X; Y) = \int_{x \in X} \int_{y \in Y} p(x, y) \log \f..
-
켄달의 타우(Kendall's tau)
켄달의 타우(Kendall's tau)는 두 변수 간의 순위(rank)에 기반한 상관계수로, 비선형 상관관계와 단조(monotonic) 관계를 측정하는 데 적합하다. 켄달의 타우는 두 변수의 순위 차이에 따라 양의 상관관계, 음의 상관관계, 또는 독립적인 관계를 나타낸다. 켄달의 타우를 계산하는 과정은 다음과 같다. 각 변수의 관측값에 대해 순위(rank)를 할당한다. 동일한 값이 있는 경우 평균 순위를 사용한다. 두 변수의 관측값 쌍을 비교하여 일치 쌍(concordant pairs)과 불일치 쌍(discordant pairs)를 찾는다. 일치 쌍: 한 변수의 관측값 쌍에서 값이 증가하면 다른 변수의 관측값 쌍에서 값도 증가하는 경우, 또는 값이 감소하면 값도 감소하는 경우다. 불일치 쌍: 한 변수의 ..
-
스피어만 상관계수(Spearman's rank correlation coefficient)
스피어만 상관계수(Spearman's rank correlation coefficient)는 두 변수의 순위(rank) 간의 상관관계를 측정하는 비모수적(non-parametric) 통계 방법이다. 스피어만 상관계수는 선형 및 비선형 상관관계를 모두 측정할 수 있으며, 특히 단조(monotonic) 관계에 강하게 민감하다. 스피어만 상관계수는 다음과 같은 과정을 통해 계산된다. 각 변수의 관측값에 대해 순위(rank)를 할당한다. 동일한 값이 있는 경우 평균 순위를 사용한다. 두 변수의 순위 차이를 계산한다. ($d_i = r_{X_i} - r_{Y_i}$) 순위 차이의 제곱을 모두 더한다. ($Σd²$) 스피어만 상관계수를 다음 공식을 사용하여 계산한다. $\rho = 1 - \frac{6 \sum_{..
-
피어슨 상관 계수(Pearson correlation coefficient)
피어슨 상관계수(Pearson correlation coefficient)는 두 변수 간의 선형 상관관계를 측정하는 통계적 지표다. 피어슨 상관계수는 -1부터 1까지의 범위를 가지며, 이 값이 1에 가까울수록 두 변수는 강한 양의 선형 상관관계를 가지고, -1에 가까울수록 강한 음의 선형 상관관계를 가지며, 0에 가까울수록 선형 상관관계가 없음을 의미한다. 피어슨 상관계수는 다음과 같은 공식으로 계산된다. $r = \frac{\sum_{i=1}^n (X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum_{i=1}^n (X_i - \bar{X})^2 \sum_{i=1}^n (Y_i - \bar{Y})^2}}$ 여기서 $r$은 피어슨 상관계수이며, $X_i$와 $Y_i$는 각각 두 변수..
-
시계열 상관관계 분석(Correlation analysis)
시계열 데이터를 다룰 때, 여러 시계열 데이터 간의 상관 관계를 파악하고 이에 따라서 데이터 모델링을 해야 하는 상황이 온다. 시계열 데이터들 간의 상관관계를 분석하는 여러가지 방법을 소개한다. 피어슨 상관 계수(Pearson Correlation Coefficient): 두 변수 간의 선형 상관 관계를 측정하는 가장 일반적인 방법. -1에서 1사이의 값을 가진다. 스피어만 순위 상관 계수(Spearman Rank Correlation Coefficient): 두 변수 간의 순위 기반의 비선형 상관 관계를 측정한다. 피어슨 상관 계수와 마찬가지로 -1에서 1 사이의 값을 가진다. 켄달 타우(Kendall's Tau): 스피어만 상관 계수와 유사하게, 켄달 타우는 두 변수 간의 순위 기반의 비선형 상관 관..
-
GARCH(Generalized Autoregressive Conditional Heteroskedasticity) 모델
GARCH(Generalized Autoregressive Conditional Heteroskedasticity) 모델은 시계열 데이터의 변동성을 분석하고 예측하는 데 사용되는 통계 모델이다. GARCH 모델은 금융 시장과 같이 변동성이 크고 시간에 따라 변화하는 데이터를 분석하는 데 특히 유용하다. GARCH 모델의 핵심 개념은 조건부 이차 모멘트(분산)가 시간에 따라 변화한다는 것이다. 이는 ARCH(Autoregressive Conditional Heteroskedasticity) 모델을 일반화한 것으로, ARCH 모델은 이차 모멘트만 고려한다. GARCH 모델은 이차 모멘트뿐만 아니라 과거의 변동성 정보도 고려한다. $GARCH(p, q)$ 모델은 다음과 같은 수식으로 표현된다. $σ_t^2 =..
-
ARCH(Autoregressive Conditional Heteroskedasticity) 모델
ARCH(Autoregressive Conditional Heteroskedasticity) 모델은 시계열 데이터의 변동성을 분석하기 위한 통계적 모델 중 하나다. 이 모델은 금융 시계열 데이터와 같이 변동성 클러스터링이 존재하는 경우, 즉 일정 기간 동안 변동성이 높거나 낮게 유지되는 현상을 설명하고 예측하는 데 유용하다. ARCH 모델의 기본 아이디어는 현재 시점의 분산이 과거의 오차항 제곱에 의존한다는 가정이다. $ARCH(p)$ 모델은 다음과 같이 표현된다. $y(t) = μ + ε(t)$ $ε(t) = σ(t) * z(t)$ $σ²(t) = α₀ + α₁ * ε²(t-1) + ... + α_p * ε²(t-p)$ 여기서 $y(t)$는 $t$ 시점의 관측값, $μ$는 상수항, $ε(t)$는 $t$..
-
SARIMA(Seasonal Autoregressive Integrated Moving Average) 모델
SARIMA(Seasonal Autoregressive Integrated Moving Average) 모델은 ARIMA 모델의 확장 버전으로, 계절성 패턴을 가진 시계열 데이터를 분석하고 예측하기 위한 통계적 방법이다. SARIMA 모델은 기본 ARIMA 모델에 계절성 요소를 추가하여 복잡한 계절성 패턴을 포착하고 설명할 수 있다. SARIMA 모델은 다음과 같이 표현된다. $SARIMA(p, d, q)(P, D, Q)m$ 여기서 $p, d, q$는 각각 자기 회귀(AR) 차수, 차분 차수, 이동 평균(MA) 차수를 나타내며, 기본 ARIMA 모델과 동일한 의미다. $P, D, Q$는 각각 계절성 자기 회귀 차수, 계절성 차분 차수, 계절성 이동 평균 차수를 나타낸다. $m$은 계절성 주기를 나타내는 ..
-
VAR(Vector Autoregression) 모델
VAR(Vector Autoregression) 모델은 다변량 시계열 데이터 분석을 위한 통계적 방법론 중 하나입니다. 여러 개의 시계열 변수가 상호 연관성을 가지며, 각 변수가 과거의 자신과 다른 변수들의 값에 영향을 받는 경우에 적합한 모델이다. VAR 모델은 여러 시계열 변수 간의 동적 관계를 분석하고 예측할 수 있다. VAR 모델의 기본 개념은 각 변수가 일정한 시차(lag)로 과거의 자신과 다른 변수들의 값에 선형적으로 의존한다고 가정하는 것이다. 이를 통해 변수들 간의 인과 관계와 영향력을 분석할 수 있다. 예를 들어, 두 변수 $X$와 $Y$가 있을 때, $VAR(1)$ 모델은 다음과 같이 표현된다. $X(t) = a1 + b1 * X(t-1) + c1 * Y(t-1) + e1(t)$ $Y(..
-
ARIMA(Autoregressive Integrated Moving Average) 모델
ARIMA(Autoregressive Integrated Moving Average) 모델은 시계열 데이터 분석과 예측을 위한 통계적 방법론 중 하나다. ARIMA 모델은 세 가지 주요 구성 요소인 Autoregression(AR), Integration(I), Moving Average(MA)를 결합하여 복잡한 패턴과 변동성을 가진 시계열 데이터를 설명하고 예측한다. Autoregression(AR): 자기 회귀 모델은 이전 시점의 관측값에 의존하여 현재 시점의 값을 예측하는 데 사용된다. 이 과정에서 과거 관측값들의 가중치를 고려한다. $AR(p)$ 모델에서 $p$는 과거 관측값을 고려하는 시차(lag)를 나타낸다. Integration(I): 시계열 데이터에서 추세와 계절성 패턴을 제거하여 데이터를..
-
이동평균(Moving Average, MA) 모델
이동평균(Moving Average, MA) 모델은 시계열 분석에서 사용되는 모델 중 하나로, 현재 시점의 오차와 과거 시점의 오차의 가중합으로 시계열 데이터를 설명하는 모델이다. MA 모델은 백색잡음(White noise)이 시간에 따라 어떻게 변화하는지를 설명하는 데 사용되며, 이를 통해 시계열 데이터의 패턴을 분석할 수 있다. $q$차 이동평균 모델(MA(q))은 다음과 같은 형태를 가진다. $y_t = \epsilon_t + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \cdots + \theta_q \epsilon_{t-q}$ 여기서 $y_t$는 시점 $t$에서의 관측값, $\epsilon_t$는 시점 $t$에서의 백색잡음, 그리고 $\theta_..
-
공적분(Cointegration)
공적분(cointegration)은 시계열 데이터 분석에서 중요한 개념으로, 두 개 이상의 시계열 데이터가 공통적인 장기 추세를 공유할 때 발생한다. 이는 단기적인 시간에 따른 변동성에도 불구하고 시계열 변수들이 장기적으로 평형 관계를 유지하게 된다. 공적분은 금융, 경제학, 환경 과학 등 다양한 분야에서 활용되며, 시계열 변수들 간의 장기적인 관계를 검증하고 예측 모델을 구축하는 데 도움이 된다. 공적분을 이해하려면 먼저 단위근(Unit root) 개념에 대해 알아야 한다. 단위근이 있는 시계열 데이터는 정상성(Stationarity)을 만족하지 않으며, 평균과 분산이 시간에 따라 변화한다. 이러한 비정상 시계열 데이터는 차분(Differencing)을 통해 정상성을 만족하도록 변환할 수 있다. 공적분..
-
AR(AutoRegressive) 모델
AR(AutoRegressive) 모델은 시계열 데이터 분석에서 널리 사용되는 선형 모델 중 하나다. AR 모델은 시계열 데이터의 현재 값이 과거 값에 의존하는 구조를 가진다. 이는 시계열 데이터의 자기상관(Autocorrelation)을 반영한 모델로서, 과거의 관측값을 사용하여 현재 값의 예측에 활용할 수 있다. $AR(p)$ 모델은 다음과 같은 형태의 회귀식으로 나타낼 수 있다. $y_t = α + ρ_1y_{t-1} + ρ_2y_{t-2} + ... + ρ_py_{t-p} + ε_t$ 여기서, $y_t$는 시계열 데이터 $α$는 상수항 $ρ_i$는 각 과거 시점에 대한 자기회귀 계수$(i = 1, 2, ..., p)$. $p$는 모델의 차수(Order)로, 과거 몇 개의 관측값을 고려할지를 결정한..
-
KPSS(Kwiatkowski-Phillips-Schmidt-Shin) 검정
KPSS(Kwiatkowski-Phillips-Schmidt-Shin) 검정은 시계열 데이터의 정상성을 검정하기 위한 통계적 방법 중 하나다. ADF(Augmented Dickey-Fuller) 검정이나 PP(Phillips-Perron) 검정과 달리 KPSS 검정은 시계열이 정상적이라고 가정한 상태에서 검정을 수행한다. 이로 인해 KPSS 검정은 ADF 및 PP 검정과 상호 보완적인 역할을 수행할 수 있다. KPSS 검정은 시계열 데이터에 대한 다음의 회귀식을 사용한다. $y_t = α + βt + ρ_1y_{t-1} + ... + ρ_py_{t-p} + ε_t$ 여기서, $y_t$는 시계열 데이터 $α$는 상수항, $βt$는 시간 추세 $ρ_i$는 $AR(p)$ 모델의 계수 $ε_t$는 오차항으로, ..
-
Phillips-Perron(PP) 검정
Phillips-Perron (PP) 검정은 Augmented Dickey-Fuller (ADF) 검정과 마찬가지로 시계열 데이터의 정상성을 검정하기 위한 통계적 방법이다. PP 검정은 ADF 검정과 유사하게 단위근의 존재 여부를 통해 정상성을 판단하며, 단위근이 존재하면 시계열이 비정상적이라고 간주된다. 그러나 PP 검정은 ADF 검정과 다르게 시계열 데이터에 자기상관 구조와 이질적인 분산을 고려한 검정 방법이다. PP 검정은 다음의 회귀식을 사용하여 수행된다. $Δy_t = α + γy_{t-1} + ε_t$ 여기서, $Δy_t = y_t - y_{t-1}$은 시계열의 차분 $α$는 상수항이며, $γ$는 단위근을 검정하는 계수 $ε_t$는 오차항 ADF 검정과 마찬가지로 PP 검정의 귀무 가설(Nul..
-
ADF(Augmented Dickey-Fuller) 검정
ADF(Augmented Dickey-Fuller) 검정은 시계열 데이터가 정상성을 가지고 있는지 확인하기 위해 사용되는 통계적 검정 방법이다. 이 검정은 시계열 데이터에 단위근이 있는지 없는지를 판단하여 정상성 여부를 결정한다. 단위근이 존재하면 시계열이 비정상적이라고 간주된다. ADF 검정은 아래의 회귀식을 사용하여 수행된다. $Δy_t = α + βt + γy_{t-1} + δ_1Δy_{t-1} + ... + δ_{p-1}Δy_{t-p+1} + ε_t$ 여기서, $Δy_t = y_t - y_{t-1}$은 시계열의 차분을 나타낸다. $α$는 상수항, $βt$는 시간 추세를 나타내며, $γ$는 단위근을 검정하는 계수다. $p$는 차분의 지연(lag)를 나타낸다. $ε_t$는 오차항이다. ADF 검정의 ..
-
단위근 검정(Unit root test)
단위근 검정(Unit root test)은 시계열 데이터가 정상성(Stationarity)을 가지고 있는지 확인하는 데 사용되는 통계적 방법이다. 정상성이란 시계열의 평균, 분산, 자기공분산이 시간에 따라 일정하게 유지되는 성질을 말한다. 정상성을 가진 시계열은 예측, 추론 및 모델링에 더 적합하며, 단위근이 있을 경우 시계열은 정상성을 가지지 않는다. 단위근(Unit root)은 시계열 데이터에서 발견될 수 있는 통계적 특성 중 하나로, 시계열 데이터가 정상성을 가지지 않는 경우를 나타내는 지표다. 좀 더 구체적으로 말하면, 단위근은 $AR(1)$ 모델에서 다음과 같은 회귀식이 있을 때, 계수 $ρ$가 1에 가까운 값이라는 의미다. $y_t = α + ρy_{t-1} + ε_t$ 여기서, $y_t$는 ..
-
푸리에 변환(Fourier Transform)
푸리에 변환(Fourier Transform)은 시간 영역에서 주파수 영역으로 데이터를 변환하는 과정이다. 이 변환을 통해 시계열 데이터의 주기적 성분을 분석하거나 노이즈를 제거하는 데 사용할 수 있다. 푸리에 변환은 연속 푸리에 변환(Continuous Fourier Transform)과 이산 푸리에 변환(Discrete Fourier Transform)으로 나뉜다. 시계열 데이터는 이산 시간 데이터이므로 이산 푸리에 변환을 사용한다. 이산 푸리에 변환(DFT)의 공식은 다음과 같다. $X(k) = \sum_{n=0}^{N-1} x(n) e^{-i\frac{2\pi}{N}nk}$ 여기서 $X(k)$는 푸리에 변환된 주파수 영역에서의 데이터를 나타내며, $x(n)$은 시간 영역에서의 시계열 데이터다. $..
-
편 자기 상관함수(Partial Autocorrelation Function, PACF)
편자기상관함수(Partial Autocorrelation Function, PACF)는 시계열 데이터에서 한 시점의 값이 다른 시점의 값과의 상관관계를 측정하되, 그 사이에 있는 시점들의 영향을 제거한 상관 관계를 나타낸다. 즉, 특정 시간 지연(lag)에 대한 순수한 상관관계를 측정하는 함수다. 예를 들어, 시점 $t$와 시점 $t+2$의 상관관계를 분석하려는 경우, PACF는 시점 $t$와 시점 $t+1$ 사이의 상관관계를 제거하고 순수한 상관관계를 측정한다. 편자기상관함수는 시계열 모델링 및 예측에서 중요한 도구로 사용된다. 특히, 자기회귀(AR) 모델의 차수를 결정하는 데 도움이 되며, 시계열 데이터의 구조를 분석하는데도 유용하다. 편자기상관함수의 주요 특징 및 용도는 다음과 같다. 시계열 데이터..
-
자기 상관 함수(Autocorrelation Function, ACF)
자기상관함수(Autocorrelation Function, ACF)는 시계열 데이터에서 시간의 경과에 따른 값들 사이의 상관관계를 측정하는 함수다. 즉, 시계열 데이터의 한 시점의 값이 다른 시점의 값과 얼마나 관련되어 있는지를 나타낸다. 이러한 상관 관계는 특정 시간 지연(lag)에 따라 다를 수 있다. 자기상관함수는 시계열 데이터의 패턴과 주기를 분석하는 데 사용되며, 시계열 모델링 및 예측에 중요한 정보를 제공한다. 자기상관함수를 사용하여 시계열 데이터의 계절성, 주기성, 그리고 노이즈 등의 특성을 파악할 수 있다. 자기상관함수는 다음과 같은 수식으로 정의된다. $ACF(τ) = E[(Y(t) - μ) * (Y(t+τ) - μ)] / σ^2$ 여기서 $ACF(τ)$는 시간 지연 $τ$에서의 자기상관..
-
시계열 분해(Time series decomposition)
시계열 분해(time series decomposition)는 시계열 데이터를 구성 요소로 분해하여 데이터의 패턴과 구조를 분석하는 방법이다. 시계열 데이터의 주요 구성 요소는 일반적으로 추세, 계절성, 주기 그리고 그 외의 노이즈로 구성되며, 이 요소들의 조합을 통해 원래의 시계열 데이터가 형성된다. 시계열 데이터 분해는 주로 덧셈 분해(additive decomposition)와 곱셈 분해(multiplicative decomposition) 두가지 방법으로 분해된다. 덧셈 분해(Additive Decomposition) 시계열 데이터를 추세, 계절성, 그리고 그 외 노이즈의 합으로 분해한다. 이 방법은 각 구성 요소가 시간에 따라 일정하게 변하는 경우 적합하다. 덧셈 분해의 수식은 다음과 같다. $..
-
데이터 평활(Data smoothing)
데이터 평활(Data Smoothing)은 노이즈를 줄이거나 완화함으로써 데이터의 일반적인 패턴이나 경향성을 더 명확하게 만드는 과정이다. 이러한 기법은 시계열 데이터 분석, 신호 처리, 이미지 처리 및 다양한 분야에서 노이즈를 제거하고 주요 신호를 추출하기 위해 사용된다. 데이터 평활 방법에는 여러 가지가 있다. 주요 기법은 다음과 같다. 이동 평균(Moving Average) 이동 평균은 간단한 데이터 평활 기법으로, 연속된 일련의 관측값의 평균을 계산하여 노이즈를 줄이는 방법이다. 이동 평균은 여러 유형으로 나뉜다. 예를 들어, 단순 이동 평균(Simple Moving Average), 가중 이동 평균(Weighted Moving Average), 지수 이동 평균(Exponential Moving ..
-
업샘플링(Upsampling)과 다운샘플링(Downsampling)
업샘플링(upsampling)과 다운샘플링(downsampling)은 디지털 신호 처리, 이미지 처리 및 음성 처리와 같은 여러 분야에서 사용되는 기술이다. 이 두 기술은 데이터의 해상도(resolution)를 조절하여 다양한 목적에 맞게 정보를 변환한다. 업샘플링(upsampling) 업샘플링은 데이터의 해상도를 높이는 과정이다. 이 과정에서 데이터 포인트의 수가 증가하며, 원본 데이터와 비교하여 새로운 데이터 포인트가 삽입된다. 업샘플링을 통해 이미지를 확대하거나 음성 신호의 샘플 레이트를 높일 수 있다. 업샘플링 방법에는 여러 가지가 있으며, 일부는 다음과 같다. 최근접 이웃(nearest neighbor): 새로운 데이터 포인트를 가장 가까운 원래 데이터 포인트의 값으로 설정한다. 선형 보간법(l..
-
결측치(Missing value) 처리
시계열 데이터 결측치(missing value) 처리법은 여러 가지 방법이 있으며, 주요한 방법들은 다음과 같다. 대치법 (Imputation) 결측치를 대체하는 값으로 기존 데이터를 수정하는 방법. 대치법은 여러 하위 유형으로 나눌 수 있다. 평균 대치법: 결측치를 해당 변수의 평균 값으로 대체 중앙값 대치법: 결측치를 해당 변수의 중앙값으로 대체 최빈값 대치법: 결측치를 해당 변수의 최빈값으로 대체 마지막 관측값 대치법: 결측치를 직전의 관측값으로 대체 보간법 (Interpolation) 결측치 양쪽의 데이터를 이용하여 결측치를 추정하는 방법. 주로 시계열 데이터에 사용되며, 다양한 보간법이 있다. 선형 보간법: 결측치 양쪽의 데이터를 선형 함수로 연결하여 결측치를 추정한다. 스플라인 보간법: 결측치..
-
사전 관찰(Look-ahead)
시계열 분석에서의 사전 관찰(look-ahead)은 미래의 데이터를 미리 사용하는 것을 의미한다. 이를 통해 모델이 예측할 때 미래의 정보를 참조할 수 있게 되며, 실제로는 미래의 데이터를 알 수 없기 때문에 이러한 방법은 과적합(overfitting)이나 정보 누설(information leakage)로 이어질 수 있다. 시계열 데이터는 시간에 따라 변화하는 값들의 연속이며, 과거 데이터를 기반으로 미래의 데이터를 예측하는 것이 주 목적이다. 이때 look-ahead 문제는 시계열 데이터를 분석할 때 주의해야 할 요소 중 하나다. 예측 모델을 훈련할 때 과거 데이터만 사용하여 미래를 예측하는 것이 정상적인 접근 방법이지만, look-ahead 문제는 이러한 원칙을 위배하여 모델이 과거 데이터에만 의존하..
-
백색 잡음 과정(White Noise Process)
백색잡음과정(white noise process)은 일정한 평균과 분산을 갖는 독립적인 무작위 변수의 시퀀스(sequence)다. 이러한 변수들은 상호 독립이며, 각각이 평균이 0이고 분산이 $σ^2$인 정규분포(normal distribution)를 따른다. 이러한 백색잡음과정은 다음과 같은 수식으로 나타낼 수 있다. $Y(t) = \epsilon(t)$ 여기서 $Y(t)$는 $t$ 시점에서의 백색잡음과정을 나타내며, $ε(t)$는 $t$ 시점에서의 독립적인 무작위 변수다. 이러한 변수들은 평균이 0이고 분산이 $σ^2$인 정규분포를 따르며, 서로 독립적이다. 백색잡음과정은 주로 시간에 따른 무작위한 변동성을 모델링하는 데 사용된다. 예를 들어, 백색잡음과정은 주식 가격의 일시적인 변동성을 모델링하는 ..
-
확률 보행 과정(Random Walk Process)
확률보행과정(random walk)은 일련의 확률적인 움직임을 나타내는 수학적 모델이다. 이는 시간에 따라 변하는 확률변수를 모델링하는 데 사용된다. 확률보행과정은 다음과 같은 수식으로 나타낼 수 있다. $X(t) = X(0) + \sum_{i=1}^{t} Z(i)$ 여기서 $X(t)$는 시간 $t$에서의 위치를 나타내는 확률변수이며, $X(0)$는 초기 위치를 나타낸다. $Z(i)$는 $i$번째 단계에서의 변위(displacement)를 나타내는 확률변수다. 이러한 변위는 보통 독립적으로 분포되며, 평균 $\mu$와 표준편차 $\sigma$를 가지는 정규분포(normal distribution)를 따른다. 즉, 확률보행과정은 초기 위치에서 시작하여 각 단계에서의 변위가 정규분포를 따르는 일련의 움직임으..
-
정상성(Stationarity)
정상성(Stationarity)은 시계열 데이터의 통계적 특성이 시간에 따라 일정한 상태를 유지하는 것을 의미한다. 정상성을 가진 시계열 데이터는 더욱 간편하게 분석할 수 있으며, 예측 성능이 향상된다. 시계열 데이터가 정상성을 가지려면 모든 시간 $t$에 대해서 평균(average), 분산(variance), 자기공분산(autocovariance)이 일정해야 한다. 시계열 데이터의 정상성을 확인하는 방법은 다음과 같다. 시각적 점검: 시계열 데이터를 그래프로 그려서 시간에 따른 평균과 분산의 변화를 확인한다. 요약 통계량 검증: 주어진 시계열 데이터를 일정한 구간으로 나누어 각 구간의 평균과 분산을 비교한다. 통계적 검정: 다음과 같은 통계적 검정 방법을 사용하여 시계열 데이터의 정상성을 검증한다. A..
-
시계열 데이터(Time series data)의 구성 요소
시계열 데이터(Time series data)는 일정한 시간 간격으로 관측된 데이터다. 이러한 데이터는 시간의 순서에 따라 구성되며, 시간에 따른 패턴, 추세 및 계절성과 같은 특성을 가진다. 시계열 데이터의 주요 특성 및 구성 요소는 다음과 같다. 추세(Trend) 시계열 데이터에서 장기적으로 나타나는 상승 또는 하락 경향을 추세라고 한다. 추세는 경제 성장, 인구 증가 등과 같은 일반적인 변화를 반영한다. 계절성(Seasonality) 시계열 데이터에서 일정한 기간마다 반복되는 변동 패턴을 계절성이라고 한다. 계절성은 주로 연간, 분기, 월간 또는 주간 단위로 나타난다. 예를 들어, 여름철의 전력 소비 증가, 겨울철의 온도 하락 등이 계절성의 예시다. 주기(Cyclical) 주기는 시계열 데이터에서 ..
Machine Learning & Deep Learning
-
트랜스포머(Transformer)
트랜스포머(Transformer)는 2017년 "Attention Is All You Need"라는 논문에서 처음으로 소개됐다. 논문의 제목대로, transformer는 어텐션 메커니즘(attention mechanism)이 트랜스포머 모델에서 중요한 역할을 담당한다는 의미를 담고 있다. 이전의 Seq2seq 모델에서는 순환 신경망(RNN)이나 장기 단기 기억(LSTM)과 같은 메커니즘을 사용하여 시퀀스를 처리했다. 그러나 트랜스포머는 이러한 순환 메커니즘 없이 어텐션 메커니즘만을 사용하여 모델을 구성한다. 이 논문은 어텐션 메커니즘이 기존의 RNN이나 LSTM보다 효과적으로 장기 의존성 문제를 해결하고, 병렬 처리를 통해 학습 속도를 향상시킬 수 있다는 점을 입증하였다. 이로 인해 트랜스포머는 자연어 ..
-
어텐션 메커니즘(Attention Mechanism)
어텐션(Attention)은 Seq2seq 모델에서 디코더(decoder)가 인코더(encoder)의 정보를 활용할 수 있도록 하는 메커니즘이다. 기존의 Seq2seq 모델은 인코더의 최종 문맥 벡터(context vector)를 고정된 길이의 벡터로 압축하고 이를 디코더에 전달하는데, 이는 입력 시퀀스의 모든 정보를 하나의 벡터에 압축하기 때문에 정보 손실이 발생할 수 있다. 어텐션 메커니즘은 이러한 문제를 해결하기 위해 개발되었다. 어텐션은 디코더가 출력 단어를 생성할 때 인코더의 각 입력 단어에 주의(attention)를 기울일 수 있도록 한다. 이는 디코더가 인코더의 어떤 부분에 더 집중해야 하는지를 학습할 수 있게 해준다. 어텐션 메커니즘은 인코더와 디코더 사이에 추가적인 컴포넌트로 도입되며, ..
-
Seq2seq(sequence-to-sequence)
Seq2seq는 시퀀스 투 시퀀스(sequence-to-sequence) 모델의 줄임말로, 입력 시퀀스를 다른 시퀀스로 변환하는 기계 번역과 같은 자연어 처리 작업에 주로 사용되는 딥러닝 모델이다. Seq2seq모델은 두 개의 주요 컴포넌트로 구성된다. 하나는 인코더(Encoder)이고, 다른 하나는 디코더(Decoder)다. 인코더(Encoder) 인코더는 입력 시퀀스를 고정된 길이의 문맥 벡터로 압축하는 역할을 한다. 보통 RNN 계열의 네트워크인 LSTM(Long Short-Term Memory)이나 GRU(Gated Recurrent Unit)를 사용하여 구현된다. 인코더의 동작 과정은 다음과 같다. 입력 시퀀스의 단어들은 임베딩 과정을 통해 고정된 차원의 벡터로 변환된다. 임베딩된 단어들은 시퀀..
-
Isolation Forest
Isolation Forest는 이상치 탐지(Anomaly detection)를 위한 알고리즘으로, 데이터셋에서 특이하거나 이상한 패턴을 가진 데이터 포인트를 찾는 데 사용된다. 이 알고리즘은 간단하면서도 효과적인 방법으로 이상치를 식별할 수 있다. Isolation Forest는 다른 이상치 탐지 알고리즘과는 다른 접근 방식을 가지고 있다. 일반적인 방법은 정상 데이터의 군집을 찾고, 그 군집과 멀리 떨어진 데이터를 이상치로 간주하는 것이다. 하지만 Isolation Forest는 정상 데이터와는 구분되는 데이터 포인트를 찾기 위해 데이터셋을 분리하는 방식을 사용한다. Isolation Forest의 작동 원리를 이해하기 위해, 우선 트리(Tree)의 개념을 살펴보자. 트리는 루트 노드(root nod..
-
[PyTorch] 신경망 모델 구축 방식
nn.Sequential을 사용하는 방법 nn.Sequential을 사용하여 간단한 신경망 구조를 구성할 수 있다. 이 방식은 각 층을 순차적으로 쌓아올린다. import torch import torch.nn as nn model = nn.Sequential( nn.Linear(784, 128), nn.ReLU(), nn.Linear(128, 64), nn.ReLU(), nn.Linear(64, 10), nn.Softmax(dim=1) ) nn.Module을 사용하는 방법 nn.Module을 사용하여 사용자 정의 신경망 구조를 구성할 수 있다. 이 방식은 객체 지향 프로그래밍을 사용하여 모델을 정의한다. import torch import torch.nn as nn class MyModel(nn.Mod..
-
[Tensorflow] 신경망 모델 구축 방식
순차형 (Sequential) 모델 순차형 모델은 간단한 신경망 구조를 구성하는 데 사용되며, 층을 순차적으로 쌓아올린다. 이 방식은 각 층에 대한 복잡한 연결이 없을 때 적합하다. TensorFlow의 Keras API를 사용하여 순차형 모델을 구성하는 방법은 다음과 같다. from tensorflow.keras import models from tensorflow.keras import layers model = models.Sequential() model.add(layers.Dense(128, activation='relu', input_shape=(784,))) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(10, a..
-
K-평균 군집화(K-means Clustering)
K-평균 군집화(K-means Clustering)는 비지도 학습 알고리즘 중 하나로, 주어진 데이터를 K개의 클러스터로 그룹화하는 방법이다. 이 알고리즘은 다음과 같은 과정을 통해 클러스터링을 수행한다. 무작위로 K개의 초기 클러스터 중심(centroid)를 선택한다. 각 데이터 포인트를 가장 가까운 클러스터 중심에 할당한다. 각 클러스터의 중심을 새롭게 계산한다. 이를 위해, 해당 클러스터에 속한 모든 데이터 포인트의 평균 좌표를 사용한다. 클러스터 중심의 변화가 없을 때까지 2번과 3번 단계를 반복한다. K-평균 군집화의 목표는 아래의 목적 함수를 최소화하는 클러스터 중심을 찾는 것이다. $J = \sum_{i=1}^K \sum_{x \in C_i} ||x - \mu_i||^2$ 여기서 $J$는 목..
-
서포트 벡터 머신(Support Vector Machine, SVM)
서포트 벡터 머신(Support Vector Machine, SVM)은 분류와 회귀 문제를 해결하기 위한 머신러닝 알고리즘이다. SVM의 핵심 아이디어는 마진(margin)을 최대화하여 클래스 간의 경계를 찾는 것이다. 마진은 클래스를 구분하는 초평면(hyperplane)과 가장 가까운 훈련 샘플 간의 거리로 정의된다. 이러한 가장 가까운 훈련 샘플들을 서포트 벡터(support vectors)라고 한다. 조금 더 알기 쉽게 직관적으로 설명하자면, 2차원 평면에 빨간색과 파란색 점들이 분포되어 있다고 가정해보자. SVM의 목표는 빨간색과 파란색 점을 구분하는 선을 그리는 것이다. 이 선은 두 클래스의 가장 가까운 점들 사이의 거리가 최대가 되도록 그어진다. 이렇게 그어진 선은 분류 성능이 좋고, 새로운 ..
-
결정 트리(Decision Tree)
결정 트리(Decision Tree)는 분류와 회귀 문제를 해결하기 위해 사용되는 머신러닝 알고리즘이다. 결정 트리는 데이터를 기반으로 결정 규칙을 생성하며, 트리 구조를 이용해 학습과 예측을 수행한다. 각각의 노드는 특정 특성에 대한 질문이나 테스트를 나타내고, 가지는 이러한 테스트의 결과를 표현한다. 결정 트리 알고리즘의 핵심은 최적의 질문(또는 테스트)을 선택하는 것이다. 이를 위해 주로 사용되는 기준은 정보 이득(Information Gain)과 지니 불순도(Gini Impurity)다. 정보 이득(Information Gain) 정보 이득은 결정 트리에서 분기 기준을 선택하기 위해 사용되는 척도다. 정보 이득은 부모 노드의 엔트로피와 자식 노드의 가중평균 엔트로피의 차이로 정의된다. 정보 이득이..
-
로지스틱 회귀(Logistic Regression)
로지스틱 회귀(Logistic Regression)는 이름에는 회귀가 들어가지만, 사실 분류 문제(이진 분류)에 주로 사용되는 머신러닝 알고리즘이다. 로지스틱 회귀는 선형 회귀와 비슷하지만, 종속 변수의 값이 0과 1 사이에 있어야 하므로, 시그모이드 함수(sigmoid function)와 같은 활성화 함수를 사용하여 출력을 확률로 변환한다. 시그모이드 함수는 다음과 같이 정의된다. $\sigma(z) = \frac{1}{1 + e^{-z}}$ 로지스틱 회귀 모델은 선형 회귀와 유사한 형태를 가진다. 하지만 종속 변수를 시그모이드 함수에 통과시켜 확률로 변환한다. $\hat{y} = \sigma(w_0 + w_1x_1 + w_2x_2 + ... + w_nx_n)$ 여기서 $\hat{y}$는 예측 확률, ..
-
선형 회귀(Logistic Regression)
선형 회귀(Linear Regression)는 종속 변수(타깃)와 독립 변수(특성) 간의 선형 관계를 모델링하여 예측하는 기법이다. 선형 회귀는 간단한 회귀 문제에 적합하며, 다음과 같은 수식으로 표현할 수 있다. $y = w_0 + w_1x_1 + w_2x_2 + ... + w_nx_n$ 여기서 $y$는 종속 변수, $x_1, x_2, ..., x_n$은 독립 변수, $w_0, w_1, ..., w_n$은 가중치다. 이때, $w_0$는 절편(intercept)으로 간주할 수 있다. 선형 회귀 모델의 학습 목표는 손실 함수(loss function)를 최소화하는 가중치를 찾는 것이다. 손실 함수로는 주로 평균 제곱 오차(Mean Squared Error, MSE)가 사용된다. $MSE = \frac{1}..
-
준지도학습(Semi-Supervised Learning)
준지도학습(semi-supervised learning)은 지도학습(supervised learning)과 비지도학습(unsupervised learning)의 중간 형태로, 레이블이 있는 데이터와 레이블이 없는 데이터 모두를 사용하여 머신러닝 알고리즘을 학습시키는 방법이다. 준지도학습은 데이터셋의 일부분에만 레이블이 있는 경우, 레이블이 없는 데이터를 활용하여 모델의 성능을 향상시키는 데 도움이 되는 방식으로 사용된다. 준지도학습의 주요 기법은 다음과 같다. 자기 학습(Self-training): 먼저 지도학습을 사용하여 레이블이 있는 데이터로 모델을 학습시킨다. 그런 다음, 학습된 모델을 사용하여 레이블이 없는 데이터의 레이블을 예측하고, 그 결과를 다시 학습 데이터에 추가한다. 이 과정을 반복하면서..
-
딥러닝(Deep Learning)
딥러닝은 머신러닝의 한 분야로, 인공신경망(Artificial Neural Network)을 이용하여 다층으로 구성된 신경망을 학습시켜 패턴을 인식하고 의사결정을 내리는 기술이다. 딥러닝의 핵심은 인공신경망이다. 인공신경망은 뇌의 신경망을 모방하여 만들어진 기술로, 입력층(Input Layer), 은닉층(Hidden Layer), 출력층(Output Layer) 등으로 구성되어 있다. 딥러닝의 학습은 대량의 데이터를 이용한다. 입력 데이터는 인공신경망의 입력층으로 들어가게 되며, 은닉층을 거쳐 출력층으로 나오게 된다. 이때, 출력층의 결과와 실제 정답을 비교하여 오차를 계산하고, 이를 다시 입력층까지 거슬러 올라가면서 오차를 최소화하는 방향으로 가중치(Weight)와 편향(Bias) 값을 조정한다. 이러..
-
머신러닝(Machine Learning)
머신러닝(Machine Learning)은 인공지능의 한 분야로, 알고리즘을 통해 데이터로부터 학습하고, 패턴을 인식하며, 결정을 내리는 모델을 만드는 과정이다. 머신러닝의 주요 목표는 새로운 데이터에 대한 예측이나 분류를 자동으로 수행하는 일반화된 모델을 생성하는 것이다. 머신러닝 워크플로우는 다음과 같은 일반적인 단계로 구성된다. 문제 정의 - 머신러닝 프로젝트의 첫 번째 단계는 문제를 정의하는 것이다. 이 단계에서는 어떤 데이터를 수집할 것인지, 어떤 문제를 해결하고자 하는지 등을 명확하게 해야 한다. 데이터 수집 - 머신러닝 모델을 학습시키기 위해서는 데이터가 필요하다. 이 단계에서는 필요한 데이터를 수집하고 준비한다. 데이터가 준비되면, 데이터를 분석하고, 불필요한 데이터를 제거하고, 결측치나 ..
-
[최적화] Adam(Adaptive Moment Estimation)
Adam(Adaptive Moment Estimation)은 RMSprop와 Momentum 기법을 결합한 최적화 알고리즘이다. 이 알고리즘은 기울기의 지수 가중 이동 평균(1st moment)과 기울기 제곱의 지수 가중 이동 평균(2nd moment)을 동시에 추정하여, 적응적으로 학습률을 조절한다. Adam의 업데이트 규칙은 다음과 같다. $m_t = \beta_1 m_{t-1} + (1-\beta_1) \nabla_{\theta_t} L(\theta_t)$ $v_t = \beta_2 v_{t-1} + (1-\beta_2) \nabla_{\theta_t} L(\theta_t) \odot \nabla_{\theta_t} L(\theta_t)$ $\hat{m}_t = \frac{m_t}{1-\beta_1..
-
[최적화] RMSprop(Root Mean Square Propagation)
RMSprop(Root Mean Square Propagation)은 AdaGrad의 학습률 감소 문제를 해결하기 위한 최적화 알고리즘이다. RMSprop은 가장 최근의 기울기 정보만 사용하여 기울기의 제곱의 지수 가중 이동 평균을 계산한다. 이를 통해 학습률이 너무 빠르게 감소하는 문제를 완화한다. RMSprop의 업데이트 규칙은 다음과 같다. $E[g^2]_t = \beta E[g^2]_{t-1} + (1-\beta) \nabla_{\theta_t} L(\theta_t) \odot \nabla_{\theta_t} L(\theta_t)$ $\theta_{t+1} = \theta_t - \frac{\eta_t}{\sqrt{E[g^2]_t+\epsilon}} \odot \nabla_{\theta_t} L(..
-
[최적화] AdaGrad(Adaptive Gradient)
AdaGrad(Adaptive Gradient)는 말그대로 학습률을 적응적으로 조정하는 최적화 알고리즘이다. 각 변수에 대해 학습률을 개별적으로 조절하므로, 변수마다 스케일이 다른 최적화 문제에 효과적이다. AdaGrad의 업데이트 규칙은 다음과 같다. $G_{t+1} = G_t + \nabla_{\theta_t} L(\theta_t) \odot \nabla_{\theta_t} L(\theta_t)$ $\theta_{t+1} = \theta_t - \frac{\eta_t}{\sqrt{G_{t+1}+\epsilon}} \odot \nabla_{\theta_t} L(\theta_t)$ 여기서 $G_t$는 기울기(gradient)의 제곱의 누적합을 나타낸다. $\odot$는 요소별 곱셈/아다마르 곱(eleme..
-
[최적화] 모멘텀(Momentum)
모멘텀(Momentum)은 최적화 알고리즘에서 많이 사용되는 방법으로, 파라미터 업데이트 시 이전 단계의 움직임에 가중치를 두어 일정한 방향성을 유지하는 기법이다. 정확하게는 모멘텀 자체가 최적화 알고리즘은 아니고, 기존의 최적화 알고리즘에 추가되어 사용되는 기법이다. 이를 통해 최적화 과정에서 파라미터 업데이트가 더 안정적이고 빠르게 수렴하도록 한다. 직관적으로는 공이 경사면을 따라 내려가면서 속도를 얻어 일정한 방향으로 움직이는 모습을 생각할 수 있다(관성을 떠올리면 이해가 쉬움). 모멘텀의 공식은 다음과 같다. $v_{t+1} = \beta v_t + (1-\beta) \nabla_{\theta_t} L(\theta_t)$ $\theta_{t+1} = \theta_t - \eta_t v_{t+1}$..
-
[최적화] 확률적 경사 하강법(Stochastic Gradient Descent, SGD)
확률적 경사 하강법(Stochastic Gradient Descent, SGD)은 최적화 알고리즘 중 하나이다. 경사 하강법(Gradient Descent)은 손실 함수(Loss Function)의 기울기(Gradient)를 이용해 최소 지점을 찾는 방법이다. 확률적 경사 하강법은 이 과정에서 미니배치(mini-batch) 또는 하나의 데이터 샘플을 사용하여 계산을 수행하므로, 기본 경사 하강법에 비해 속도가 빠르고 메모리 사용량이 적다. 확률적 경사 하강법의 공식은 다음과 같다. $\theta_{t+1} = \theta_t - \eta_t \nabla_{\theta_t} L(\theta_t; x_i, y_i)$ 여기서 $\theta_t$는 파라미터(parameter)의 현재 추정값, $\eta_t$는 ..
-
[최적화] 뉴턴법(Newton's method)
뉴턴 법(Newton's method)은 비선형 방정식의 근을 근사하는 수치 해석 방법 중 하나다. 이 방법은 주어진 함수에 대해 초기 추정값에서 시작하여, 반복적으로 접선을 따라 이동하면서 근에 점점 가까워지는 원리를 사용한다. 이 방법은 뉴턴-랩슨 법(Newton-Raphson method)이라고도 한다. 뉴턴법의 공식은 다음과 같다. $x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}$ 여기서 $x_n$은 현재 추정값이고, $x_{n+1}$은 다음 추정값이다. $f(x_n)$은 현재 추정값에서 함수의 값이고, $f'(x_n)$은 현재 추정값에서 함수의 도함수 값이다. 뉴턴법을 사용하려면 다음과 같은 과정을 거친다. 초기 추정값 $x_0$을 선택합니다. 뉴턴법 공식을 사용하여 새로..
-
[최적화] 경사 하강법(Gradient Descent)
경사 하강법(Gradient Descent)은 최적화 알고리즘 중 하나로, 손실 함수를 최소화하기 위해 매개변수(parameter)를 업데이트하는 방법이다. 이 방법은 함수의 그래디언트(기울기)를 따라 가장 작은 손실 값을 찾으려고 한다. 경사 하강법은 머신러닝 및 딥러닝에서 널리 사용되는 최적화 방법이다. 경사 하강법의 기본 아이디어는 매개변수를 현재 위치에서 손실 함수의 그래디언트와 반대 방향으로 업데이트하여 손실 값을 줄이는 것이다. 손실 함수를 $L(θ)$라고 할 때, 매개변수 $\theta$의 그래디언트는 다음과 같이 정의된다. $\nabla_\theta L(\theta) = \left[ \frac{\partial L(\theta)}{\partial \theta_1}, \frac{\partial..
-
[최적화] 확정적 최적화(Deterministic Optimization), 확률적 최적화(Stochastic Optimization)
최적화 이론에서 확정적 최적화(Deterministic Optimization)와 확률적 최적화(Stochastic Optimization)는 주로 최적화 알고리즘의 유형을 구분하는 데 사용되는 개념이다. 각 유형의 알고리즘은 다른 문제와 상황에 적합하며, 그에 따라 다른 성능 및 수렴 특성을 보인다. 확정적 최적화 확정적 최적화 알고리즘은 정해진 규칙에 따라 움직이며, 무작위성이 없는 알고리즘이다. 주어진 초기 조건에서 동일한 결과를 항상 생성한다. 이러한 알고리즘은 수학적으로 분석하기가 상대적으로 쉽다. 확정적 최적화의 종류 경사 하강법 (Gradient Descent): 경사 하강법은 손실 함수의 그래디언트(기울기)를 따라 가장 낮은 손실 값을 찾아 나가는 방식으로 작동한다. 전체 데이터셋을 사용하..
Algorithm
Python
Economics & Finance
-
소비자 물가지수(Consumer Price Index, CPI)와 생산자 물가지수(Producer Price Index, PPI)
소비자 물가지수(CPI)와 생산자 물가지수(PPI)는 경제에서 가격 변동을 측정하고 분석하기 위해 사용되는 두 가지 주요 지표다. 각각 소비자와 생산자의 입장에서 가격 변동을 측정하고, 경제의 인플레이션 상황을 파악하는 데 도움을 준다. 소비자 물가지수 (CPI) 소비자 물가지수는 소비자들이 구매하는 상품과 서비스의 가격 변동을 측정하는 지표다. 일반적으로 음식, 주택, 교통, 의류, 교육 등 소비자들의 일상 생활에서 필요한 다양한 항목들이 CPI의 구성 요소로 포함된다. CPI는 가격 수준의 변동을 측정하여 소비자들의 구매력 변화를 반영한다. CPI는 일반적으로 기준 연도를 설정하여 해당 연도의 가격을 100으로 설정하고, 이후의 가격 변동을 상대적으로 표현한다. 이를 통해 CPI를 추적하여 가격 변동..
-
알파(α)와 베타(β)
알파(α)와 베타(β)는 주식 투자에서 중요한 개념으로, 특정 주가와 주식 시장 간의 관계를 설명하는 지표다. 알파(α): 알파는 특정 주식의 초과 수익률을 나타내는 지표다. 주식의 초과 수익률은 해당 주식의 수익률에서 시장 전반의 평균 수익률을 뺀 값으로 정의된다. 알파는 투자자가 특정 주식을 보유함으로써 얻은 추가적인 수익을 측정하는데 사용된다. 양수의 알파 값은 주식의 초과 수익을 나타내며, 음수의 알파 값은 주식의 시장 평균 수익에 비해 부족한 수익을 나타낸다. 알파는 주식 선택이나 포트폴리오 조정의 효과를 평가하는 데 사용된다. 베타(β): 베타는 주식의 시장 대비 상대적인 변동성을 나타내는 지표다. 베타 값은 주식의 수익률과 시장 전반의 평균 수익률 간의 상관관계를 측정한다. 베타 값이 1보다..
-
국채 금리(Treasury rates)
국채금리는 정부가 발행한 국채에 대한 이자율을 나타낸다. 국채금리는 투자자들이 국채를 구매할 때 받게 되는 이자의 비율로, 정부의 신용위험과 투자자들의 기대 인플레이션 등의 요인에 따라 결정된다. 국채금리는 국채의 만기에 따라 다양한 종류로 나뉜다. 1년물, 2년물, 10년물 등의 'n년물'은 국채의 만기 기간을 의미한다. 만기 기간은 국채가 발행된 날로부터 이자를 지급하고 원금을 상환하는 날까지의 기간을 말한다. 예를 들어, 1년물 국채금리는 1년 후에 만기가 되는 국채의 금리를 의미하며, 10년물 국채금리는 10년 후에 만기가 되는 국채의 금리를 의미한다. 이렇게 다양한 만기 기간의 국채금리를 보는 이유는 시장 참가자들이 국가의 경제 상황과 미래에 대한 기대를 나타내기 때문이다. 국채금리는 경제 성장..
-
채권(Bond)
채권은 기업이나 정부가 자금을 조달하기 위해 발행하는 부채증서다. 채권 발행을 통해 기업이나 정부는 투자자들로부터 필요한 자금을 빌리게 된다. 채권에는 발행자가 일정 기간 후에 원금과 이자를 지급할 것이라는 약속이 포함되어 있다. 이렇게 투자자들은 채권을 구매함으로써 발행자에게 자금을 제공하고, 일정 기간 동안 이자 수익을 얻게 된다. 대표적인 채권의 종류로는 다음과 같은 것들이 있다. 국채: 정부가 발행하는 채권으로, 자금 조달 목적이 주로 국가 예산, 인프라 구축, 사회 복지 프로그램 등 공공 프로젝트에 사용된다. 국채는 발행자인 정부의 신용도에 따라 일반적으로 안정적인 투자 수단으로 여겨진다. 지방채: 지방 정부가 발행하는 채권으로, 주로 지방 정부의 예산 조달이나 지역 내 인프라 개발 등의 목적으..
-
샤프 비율(Sharp ratio)
샤프 비율이란 투자 성과 판단용 지수이다. 사전적 샤프 비율 E(기대되는 투자의 수익률 - 벤치마크 수익률) / σ(기대되는 투자의 수익률 - 벤치마크 수익률) 사후적 샤프 비율 (실현된 수익률 - 벤치마크 수익률)의 평균 이용 높은 샤프지수를 기록하는 투자일수록 더 적은 위험으로 더 높은 수익률을 내는 것. 샤프지수가 0 이상이어야 투자의 고려대상이 되고, 1 이상이면 상당히 괜찮은 투자라고 판단한다. reference 샤프 비율 - 나무위키 이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권 namu.wiki
Linear Algebra
-
특이값 분해(Singular Value Decomposition, SVD)
특이값 분해(Singular Value Decomposition, SVD)는 선형 대수학에서 중요한 개념으로, 임의의 $m$ x $n$ 크기의 행렬 $A$를 세 행렬의 곱으로 분해하는 방법이다. 주어진 행렬 $A$에 대해, SVD는 다음과 같이 정의된다. $A = U \Sigma V^*$ 여기서, $A$는 $m$ x $n$ 크기의 행렬로, 분해하고자 하는 대상이다. $U$는 $m$ x $m$ 크기의 직교 행렬(orthogonal matrix)로, $A$의 열 공간의 기저를 구성하는 고유벡터들로 이루어져 있다. $Σ$는 $m$ x $n$ 크기의 대각 행렬로, $A$의 특이값(singular values)이라 불리는 값들을 대각선 상에 정렬한 행렬이다. 특이값은 $A$의 고유값의 제곱근이며, 이 값들은 일반..
-
직교 행렬(Orthogonal matrix)
직교행렬(orthogonal matrix)은 행렬의 열 벡터들이 서로 정규 직교(orthonormal)한 경우를 말한다. 정규 직교란, 벡터들이 서로 수직이고, 각 벡터의 크기가 1인 경우를 의미한다. 직교행렬의 한 가지 중요한 특성은 다음과 같은 관계를 가지고 있다는 것이다. $A^T A = I$ 여기서 $A$는 직교행렬, $A^T$는 $A$의 전치행렬, $I$는 항등행렬(identity matrix)이다. 즉, 직교행렬의 전치행렬과 원래 행렬의 곱은 항등행렬이 된다. 직교행렬은 선형 대수와 여러 분야에서 중요한 개념으로 사용되며, 특이값 분해(SVD)와 고유값 분해(eigenvalue decomposition)와 같은 고급 알고리즘에서도 사용된다.
-
대각화(Diagonalization)
행렬의 대각화(diagonalization)는 주어진 행렬을 대각 행렬과 그 행렬의 고유벡터로 이루어진 행렬의 곱으로 분해하는 과정이다. 대각화가 가능한 행렬은 대각 행렬로 유사 변환(similarity transformation)할 수 있으며, 이러한 행렬을 대각화 가능(diagonalizable)하다고 한다. 행렬 $A$가 $n$ x $n$ 크기의 정방행렬이고, 이 행렬의 $n$개의 선형 독립인 고유벡터가 존재한다고 가정해 본다면, 행렬 $A$는 다음과 같이 대각화할 수 있다. $A = P D P^{-1}$ 여기서 $A$는 주어진 $n$ x $n$ 크기의 정방행렬이다. $P$는 $A$의 고유벡터들로 구성된 $n$ x $n$ 크기의 정방행렬이다. $D$는 $A$의 고유값들을 대각선 원소로 하는 $n$ ..
-
고유값(Eigenvalue), 고유벡터(Eigenvector)
고유값(eigenvalue)과 고유벡터(eigenvector)는 선형 변환에서 중요한 개념이다. 주어진 선형 변환(행렬) $A$에 대해, 변환을 적용한 후에도 방향이 변하지 않고 크기만 변하는 벡터를 고유벡터라고 한다. 이때, 그 크기의 변화 비율을 고유값이라고 한다. 수학적으로, 행렬 $A$와 벡터$x$에 대해 다음과 같은 관계가 성립하면, $x$는 고유벡터이고, $\lambda$는 고유값이다. \(Ax = \lambda x\) 이 방정식에서 행렬$A$는 주어진 선형 변환을 나타내며, $x$는 고유벡터, $\lambda$는 고유값이다. 이 문제를 풀기 위해, 다음 식을 만족하는 $\lambda$와 $x$를 찾아야 한다. \( (A - \lambda I)x = 0 \) 여기서 $I$는 항등행렬(ident..
-
선형성(Linearity)
선형성(linearity)은 함수나 변환의 특정 속성을 나타낸다. 선형 함수 또는 선형 변환은 두 가지 기본적인 성질을 만족해야 한다. 이러한 성질은 중첩의 원리(superposition principle)라고도 한다. 덧셈에 대한 동차성(Homogeneity with respect to addition) 선형성이 있는 함수 f에 대해, 두 벡터 u와 v에 대해 f(u+v) = f(u) + f(v)가 성립한다. 이 성질은 함수가 벡터의 합에 대해 분배되는 것을 의미한다. $f(\mathbf{u}+\mathbf{v}) = f(\mathbf{u}) + f(\mathbf{v})$ 스칼라 곱에 대한 동차성(Homogeneity with respect to scalar multiplication) 선형성이 있는 ..
-
무효차수(Nullity)
무효차수(nullity)는 선형 대수학에서 사용되는 개념으로, 주어진 행렬의 영공간(null space)의 차원을 나타낸다. 다시 말해, 무효차수는 행렬을 선형 변환으로 취급했을 때 변환된 결과가 영벡터가 되는 모든 입력 벡터들의 집합인 영공간의 크기를 나타내는 값이다. 무효차수는 행렬의 특성을 분석하고, 선형 시스템의 해가 존재하는지 여부를 판별할 때 유용한 정보를 제공한다. 무효차수가 0인 경우, 행렬은 영공간에 오직 영벡터만을 가지므로, 선형 시스템은 유일한 해를 가진다. 반면 무효차수가 양수인 경우, 영공간은 영벡터 이외의 벡터들도 포함하므로, 선형 시스템은 해가 없거나 무수히 많은 해를 가질 수 있다. 무효차수와 랭크(rank) 사이에는 다음과 같은 관계가 있다. 랭크-무효차수 정리(Rank-N..
-
랭크(Rank)
랭크(rank)는 행렬의 열 벡터들이나 행 벡터들의 선형 독립성을 측정하는 값이다. 보다 구체적으로, 행렬의 랭크는 다음과 같은 두 가지 관점에서 정의된다. 열 랭크(Column rank): 행렬의 열 벡터들 중 선형 독립인 벡터들의 최대 개수를 의미한다. 다시 말해, 열 랭크는 행렬의 열 벡터들로부터 생성되는 열 공간의 차원을 나타낸다. 행 랭크(Row rank): 행렬의 행 벡터들 중 선형 독립인 벡터들의 최대 개수를 의미한다. 다시 말해, 행 랭크는 행렬의 행 벡터들로부터 생성되는 행 공간의 차원을 나타낸다. 행렬의 랭크는 행렬이 얼마나 다양한 정보를 포함하고 있는지에 대한 척도로 사용된다. 높은 랭크를 가진 행렬은 더 많은 선형 독립한 정보를 포함하고 있어, 더 많은 자유도를 가진다. 반면 낮은 ..
-
행공간(Row space), 열공간(Column space), 영공간(Null space)
이 각각의 공간들은 선형대수에서 행렬의 속성을 분석하는 데 사용되며, 각각 다른 관점에서 행렬을 이해할 수 있게 도와준다. 행공간(Row space) 행공간은 행렬의 행 벡터들로 구성된 공간이다. 즉, 행렬의 모든 행 벡터들의 선형 조합으로 얻을 수 있는 모든 벡터들의 집합이 행공간이다. 행공간은 주로 선형 방정식 시스템에서 가능한 해들의 공간을 나타낸다. 수식으로는 다음과 같이 나타낼 수 있다. $\text{Col}(A) = \{ x \in \mathbb{R}^m : x = Ay \text{ for some } y \in \mathbb{R}^n \}$ 열공간(Column space) 열공간은 행렬의 열 벡터들로 구성된 공간이다. 즉, 행렬의 모든 열 벡터들의 선형 조합으로 얻을 수 있는 모든 벡터들의 ..
-
생성(Span)
생성(span)은 벡터 집합에서 가능한 모든 선형 조합으로 생성되는 벡터 공간의 부분 공간(Subspace)을 의미한다. 다시 말해, 주어진 벡터 집합의 모든 선형 조합으로 만들 수 있는 벡터의 집합이 그 벡터 집합의 스팬이다. 이를 통해 벡터 집합이 어떤 벡터 공간의 어떤 부분을 형성하는지 파악할 수 있다. 스팬을 이해하려면 먼저 선형 조합의 개념을 알아야 한다. 벡터 집합의 선형 조합은 각 벡터에 스칼라 계수를 곱한 후 그 결과들을 더한 것이다. 수학적으로 다음과 같이 표현할 수 있다. $c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 + \cdots + c_n \mathbf{v}_n$ 여기서 $\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n$은 ..
-
기저(Basis)
기저(Basis)는 벡터 공간의 구조를 설명하는 데 사용되는 중요한 개념이다. 기저는 선형 독립인 벡터들의 집합으로 구성되며, 이 기저를 통해 벡터 공간의 모든 벡터를 생성할 수 있다. 기저의 개수가 벡터 공간의 차원을 결정한다. 기저를 이해하려면 다음과 같은 성질을 충족하는 벡터들의 집합을 찾아야 한다. 선형 독립성(Linearly independent) 기저 벡터들은 서로 선형 독립이어야 한다. 이는 어떤 기저 벡터도 다른 기저 벡터들의 선형 조합으로 표현될 수 없다는 것을 의미한다. $\text{If } c_1v_1 + c_2v_2 + ... + c_nv_n = 0 \text{, then } c_1 = c_2 = ... = c_n = 0$ 생성(Span) 기저 벡터들은 벡터 공간의 모든 벡터를 생성..
-
선형 독립(Linearly Independence)과 선형 종속(Linearly Dependence)
선형 독립(Linear Independence)과 선형 종속(Linear Dependence)은 벡터들이 서로 어떤 관계에 있는지를 나타내는 개념이다. 이 개념들은 기저, 차원, 벡터 공간 등과 같은 선형 대수학의 중요한 주제들과 관련이 있다. 먼저, 선형 조합(Linear Combination)의 개념을 이해해야 한다. 벡터들의 선형 조합은 각 벡터에 스칼라를 곱한 후 더하는 것을 의미한다. 예를 들어, 벡터들 $v_1, v_2, ..., v_n$에 대해 스칼라 값들 $c_1, c_2, ..., c_n$을 곱하고 더한 것은 다음과 같다. $c_1v_1 + c_2v_2 + ... + c_nv_n$ 선형 독립(Linear Independence) 벡터들이 선형 독립이라는 것은 이 벡터들이 서로 선형 관계에..
-
스칼라(Scalar), 벡터(Vector), 행렬(Matrix), 텐서(Tensor)
스칼라(Scalar): 스칼라는 크기만을 가지고 방향이 없는 값을 말한다. 일반적인 숫자를 예로 들 수 있으며, 실수, 정수, 복소수 등이 스칼라에 해당한다. 스칼라는 기호로 표기할 수 있으며, 예를 들어, $a$와 같이 표기할 수 있다. 벡터(Vector): 벡터는 크기와 방향을 모두 가지고 있는 값이다. 벡터는 n차원 공간의 점으로 표현되며, 각 차원에 해당하는 스칼라 값을 요소로 가진다. 벡터는 열(column) 또는 행(row)으로 표현될 수 있으며, 일반적으로 열 벡터를 사용한다. 벡터는 굵은 소문자 기호로 표기할 수 있으며, 예를 들어, $\textbf{v}$와 같이 표기할 수 있다. n차원 벡터의 표기는 다음과 같다. \(\textbf{v} = \begin{bmatrix} v_1 \\ v_2..
-
코사인 유사도(Cosine Similarity)
코사인 유사도(Cosine Similarity)란 내적공간의 두 벡터간 각도의 코사인 값을 이용하여 측정된 벡터간의 유사한 정도를 의미한다. 코사인 유사도는 -1부터 1까지의 값을 가진다. 두 벡터의 방향이 같은 경우: 1 두 벡터의 방향이 직각인 경우(독립): 0 두 벡터의 방향이 반대인 경우: -1 코사인 유사도는 유클리디안 스칼라곱에서 유도된다. $\mathbf{a} \cdot \mathbf{b} = ||\mathbf{a}|| \ ||\mathbf{b}|| \cos{\theta}$ 이에 따라, 코사인 유사도 cos(θ)는 아래와 같이 표현된다. $\text{cosine similarity}(\mathbf{a}, \mathbf{b}) = \frac{\mathbf{a} \cdot \mathbf{b}}{..
Probability & Statistics
-
가설 검정(Hypothesis Testing)
가설 검정(Hypothesis Testing)은 통계적 추론의 한 방법으로, 주어진 데이터를 사용하여 통계적 모델의 가설에 대한 결론을 내리는 과정이다. 가설 검정은 다음의 두 가지 가설 중 하나를 선택하는 것으로 구성된다. 귀무 가설(Null Hypothesis, $H_0$): 통계적 모델의 가설 중 기본 가설로, 일반적으로 변화나 차이가 없음을 주장한다. 대립 가설(Alternative Hypothesis, $H_1$ or $H_a$): 귀무 가설과 반대되는 가설로, 관심의 변화나 차이가 있음을 주장한다. 가설 검정의 주요 단계는 다음과 같다. 가설 설정: 귀무 가설($H_0$)과 대립 가설($H_1$)을 설정한다. 검정 통계량 선택: 가설을 검증하기 위해 사용할 적절한 검정 통계량(Test Stat..
-
통계적 추정(Statistical estimation)
통계적 추정(Statistical estimation)은 모집단의 모수(ex. 평균, 분산 등)를 추정하기 위해 사용되는 통계적 방법이다. 통계적 추정에는 주로 점 추정(Point estimation)과 구간 추정(Interval estimation)의 두 가지 방법이 사용된다. 점 추정(Point estimation) 점 추정은 모집단의 모수를 하나의 값으로 추정하는 방법이다. 예를 들어, 표본 평균 $\bar{X}$는 모평균 $\mu$의 점 추정값으로 사용된다. 표본 분산 $S^2$은 모분산 $\sigma^2$의 점 추정값으로 사용된다. 표본 평균 $\bar{X} = \frac{1}{n} \sum_{i=1}^{n} X_i$ 표본 분산 $S^2 = \frac{1}{n-1} \sum_{i=1}^{n} (..
-
중심 극한 정리(Central Limit Theorem, CLT)
중심 극한 정리(Central Limit Theorem, CLT)는 통계학에서 아주 중요한 정리로, 독립적이고 동일한 확률 분포를 따르는 임의의 확률 변수들의 합이나 평균이 정규 분포에 가까워지는 현상을 설명한다. 이 정리는 대량의 데이터를 처리하거나 큰 모집단에서 표본을 추출할 때 매우 유용하게 사용된다. 중심 극한 정리를 수식으로 표현하면 다음과 같다. 독립적인 확률 변수들 $X_1, X_2, ..., X_n$이 평균 $\mu$와 분산 $\sigma^2$인 동일한 확률 분포를 따를 때, 표본 크기 $n$이 충분히 클 경우, 표본 평균 $\bar{X}$의 분포는 평균이 $\mu$이고 분산이 $\frac{\sigma^2}{n}$인 정규 분포에 근사하게 된다. $\bar{X} = \frac{X_1 + X_..
-
결합 확률(Joint Probability)
결합 확률(Joint Probability)은 두 개 이상의 확률 변수가 동시에 어떤 특정 값을 가질 확률을 나타낸다. 결합 확률은 이산 확률 변수와 연속 확률 변수 모두에 대해 정의할 수 있다. 이산 확률 변수의 결합 확률 두 이산 확률 변수 $X$와 $Y$에 대한 결합 확률은 각 변수가 동시에 특정 값을 가질 확률을 나타낸다. $P(X = x_i, Y = y_j)$는 $X = x_i$와 $Y = y_j$가 동시에 발생할 확률을 의미한다. $P(X = x_i, Y = y_j)$ 연속 확률 변수의 결합 확률 두 연속 확률 변수 $X$와 $Y$에 대한 결합 확률은 결합 확률 밀도 함수(joint probability density function, $f_{XY}(x, y)$)를 사용하여 정의된다. 두 변수..
-
분산(Variance)과 표준편차(Standard Deviation)
분산(Variance)은 확률 변수의 값이 평균(기댓값)으로부터 얼마나 흩어져 있는지를 나타내는 척도다. 즉, 분산은 데이터의 변동성을 측정하는 통계량이다. 이산 확률 변수와 연속 확률 변수에 대해 분산을 다음과 같이 계산할 수 있다. 이산 확률 변수의 분산 확률 변수 $X$가 이산적인 경우, 분산 $Var(X)$는 각 가능한 결과 $x_i$에 대한 확률 $P(x_i)$에 따라 가중치를 부여한 제곱 차의 합계로 계산된다. $Var(X) = E((X - E(X))^2) = \sum_{i} (x_i - E(X))^2 P(x_i)$ 연속 확률 변수의 분산 확률 변수 $X$가 연속적인 경우, 분산 $Var(X)$는 확률 밀도 함수 $f(x)$를 사용하여 가중치를 부여한 제곱 차의 적분으로 계산된다. $Var(X..
-
기댓값(Expectation)
기댓값(expectation)은 확률 분포를 사용하여 확률 변수의 평균값을 계산한 것이다. 기댓값은 여러 가능한 결과에 대한 확률에 따라 가중치를 부여하여 평균을 계산한다. 기댓값은 이산 확률 변수와 연속 확률 변수에 대해 다음과 같이 계산할 수 있다. 이산 확률 변수의 기댓값 확률 변수 $X$가 이산적인 경우, 기댓값 $E(X)$는 각 가능한 결과 $x_i$에 대한 확률 $P(x_i)$에 따라 가중치를 부여한 합계로 계산된다. $E(X) = \sum_{i} x_i P(x_i)$ 연속 확률 변수의 기댓값 확률 변수 $X$가 연속적인 경우, 기댓값 $E(X)$는 확률 밀도 함수 $f(x)$를 사용하여 가중치를 부여한 적분으로 계산된다. $E(X) = \int_{-\infty}^{\infty} x f(x) ..
-
베이즈 정리(Bayes' theorem)
베이즈 정리(Bayes' theorem)는 조건부 확률을 사용하여 주어진 증거를 기반으로 사건의 확률을 업데이트하는 방법을 제공한다. 이 정리는 사전 확률(prior probability)과 관측된 데이터를 기반으로 사후 확률(posterior probability)을 계산하는 데 사용된다. $P(A|B) = \frac{P(B|A) P(A)}{P(B)}$ 여기서 각 요소는 다음과 같은 의미를 가진다. $P(A|B)$: 사건 $B$가 발생했다는 조건 하에서 사건 $A$가 발생할 조건부 확률(사후 확률, posterior probability) $P(B|A)$: 사건 $A$가 발생했다는 조건 하에서 사건 $B$가 발생했었을 조건부 확률(우도, likelihood) $P(A)$: 사건 $A$가 발생할 확률(사..
-
조건부 확률(Conditional probability)
조건부 확률(conditional probability)은 어떤 사건이 발생했다는 조건 하에서 다른 사건이 발생할 확률을 의미한다. 예를 들어, 두 사건 $A$와 $B$가 있을 때, 사건 $B$가 발생했다는 조건 하에서 사건 $A$가 발생할 확률을 조건부 확률이라고 한다. $P(A|B) = \frac{P(A \cap B)}{P(B)}$ 여기서 $P(A|B)$는 "사건 $B$가 주어졌을 때 사건 $A$의 조건부 확률"을 의미하며, $P(A ∩ B)$는 "사건 $A$와 사건 $B$가 동시에 발생할 확률"을 의미한다. $P(B)$는 "사건 $B$가 발생할 확률"을 나타낸다. 이 식에서 분모 $P(B)$는 0이 아니어야 한다.
-
연속 확률 분포(Continuous probability distribution)
연속 확률 분포(continuous probability distribution)는 연속 확률 변수의 값들이 나타날 확률을 설명하는 함수다. PDF, Probability Density Function(확률밀도함수) 균일 분포(Uniform distribution) 구간 [a, b]에서 모든 값이 동일한 확률로 발생하는 확률변수의 분포 PDF $f(x) = $\begin{cases} \frac{1}{b-a}, & \text{for } a \le x \le b \\ 0, & \text{otherwise}\end{cases} 정규 분포(Normal distribution) 평균이 $\mu$이고 표준편차가 $\sigma$인 연속 확률변수의 분포 PDF $f(x) = \frac{1}{\sqrt{2\pi\sigm..
-
이산 확률 분포(Discrete probability distribution)
이산 확률 분포(discrete probability distribution)는 이산 확률 변수의 값들이 나타날 확률을 설명하는 함수다. PMF, Probability Mass Function(확률질량함수) 주요한 이산 확률 분포는 아래와 같다. 베르누이 분포(Bernoulli distribution) 두 가지 결과만 가능한 확률변수의 분포(ex. 동전 던지기) PMF $P(X = k) = p^k (1-p)^{1-k},\ \text{where } k \in \{0, 1\}$ 이항 분포(Binomial distribution) 독립적인 베르누이 시행에서 성공한 횟수에 대한 확률변수의 분포 PMF $P(X = k) = \binom{n}{k} p^k (1-p)^{n-k},\ \text{where } k \in..
-
확률질량함수(Probability Mass Function, PMF)와 확률밀도함수(Probability Density Function, PDF)
확률질량함수(Probability Mass Function, PMF)와 확률밀도함수(Probability Density Function, PDF)는 확률 분포를 설명하는 데 사용되는 함수다. 이 두 함수는 이산 확률변수와 연속 확률변수를 나타내는 데 각각 사용된다. 확률질량함수 이산 확률변수에서 각 값을 가질 확률을 나타내는 함수다. 확률질량함수는 확률변수가 취할 수 있는 이산적인 값들에 대해 해당 값이 발생할 확률을 제공한다. 모든 확률값이 0과 1 사이이며, 모든 가능한 값에 대한 확률의 합이 1이다. 예를 들어, 동전 던지기를 생각해보면 이산 확률변수 $X$가 앞면이 나올 때 1, 뒷면이 나올 때 0이라고 할 수 있다. 이 때 확률질량함수는 다음과 같다. $P(X = 0) = 0.5$ $P(X = ..
-
마르코프 체인(Markov chain)
마르코프 체인(Markov chain)은 확률론과 통계학에서 사용되는 모델로, 시스템의 상태가 이전 상태에만 의존하는 이산 시간 확률 과정이다. 이러한 과정은 "마르코프 성질(Markov property)"을 가지며, 이는 미래 상태가 오직 현재 상태에만 의존하고, 과거 상태는 고려하지 않는다는 것을 의미한다. 쉽게 말해, 현재 상태를 알고 있다면 과거 정보는 미래 예측에 도움이 되지 않는다. 마르코프 체인은 다음과 같은 요소로 구성된다. 상태(state) 시스템이 가질 수 있는 가능한 모든 상태의 집합이다. 예를 들어, 날씨 예측 시스템에서 상태는 '맑음', '흐림', '비', '눈' 등이 될 수 있다. 전이 확률(transition probability) 한 상태에서 다른 상태로 전이할 확률을 나타낸..
-
[기술 통계] 형태(Shape)
기술통계에서 데이터의 모양(Shape)은 데이터 분포의 특성을 나타내는 중요한 요소다. 데이터의 모양은 주로 대칭성, 왜도, 첨도 등의 지표를 사용하여 설명된다. 대칭성(Symmetry): 분포의 대칭성은 데이터가 평균을 중심으로 얼마나 대칭적으로 분포하고 있는지를 나타낸다. 대칭 분포에서는 평균, 중앙값, 최빈값이 모두 일치한다. 대표적인 대칭 분포로는 정규분포가 있다. 분포가 대칭이 아닌 경우 왜도를 통해 분포의 비대칭 정도를 측정할 수 있다. 왜도(Skewness): 왜도는 분포의 비대칭 정도를 나타내는 지표로, 분포가 평균을 중심으로 어느 방향으로 치우쳐 있는지를 설명한다. 왜도가 0이면 분포가 대칭이다. 왜도가 양수인 경우(양의 왜도), 분포는 왼쪽으로 치우쳐져 있으며, 음수인 경우(음의 왜도)..
-
[기술 통계] 산포도(Dispersion)
기술 통계에서 산포도(Dispersion)는 데이터 값들이 얼마나 퍼져 있는지를 나타내는 지표다. 산포도를 이해하면 데이터의 변동성을 파악할 수 있으며, 이를 통해 데이터의 안정성과 신뢰성을 평가할 수 있다. 주요 산포도 지표로는 범위, 분산, 표준편차, 사분위간 범위가 있다. 범위 (Range): 범위는 데이터셋에서 가장 큰 값과 가장 작은 값의 차이로 계산된다. 범위는 산포도를 나타내는 가장 간단한 지표이지만, 이상치(Outlier)에 매우 민감하며 데이터셋의 모든 값을 고려하지 않기 때문에 한계가 있다. $\text{Range} = \max(x) - \min(x)$ 분산 (Variance): 분산은 각 데이터 값과 평균 간 차이를 제곱한 값들의 평균이다. 분산은 데이터 값이 평균 주변에 얼마나 퍼져..
-
[기술 통계] 중심 경향치(Central Tendency)
중심 경향치(Central Tendency)는 데이터의 중심을 나타내는 값으로, 일반적으로 평균, 중앙값, 최빈값이 이에 해당한다. 평균(Mean): 평균은 모든 데이터 값의 합을 데이터의 개수로 나눈 값이다. 기호로는 ${\mu}$ 또는 $\bar{x}$로 표현된다. 데이터의 전체적인 경향을 파악하는 데 가장 널리 사용되는 중심 경향성이다. 그러나 평균은 이상치(Outlier)에 민감하게 반응할 수 있어, 이상치가 있는 경우 다른 중심 경향치 지표를 고려해야 할 수 있다. $\mu = \frac{\sum x}{n} \quad \text{또는} \quad \bar{x} = \frac{\sum x}{n}$ 여기서 $\sum x$는 모든 데이터 값의 합이고, $n$은 데이터의 개수이다. 중앙값(Median)..
-
기술 통계(Descriptive statistics)와 추리 통계(Inferential statistics)
기술통계(Descriptive Statistics) 기술통계는 데이터를 요약하고 설명하는데 사용되는 통계적 방법이다. 주요 개념은 다음과 같다. 중심 경향치(Central Tendency): 데이터의 중심을 나타내는 지표로 평균, 중앙값, 최빈값이 있다. 산포도(Dispersion): 데이터의 퍼짐 정도를 나타내는 지표로 범위, 분산, 표준편차, 사분위수 등이 있다. 모양(Shape): 데이터 분포의 형태를 나타내는 지표로 왜도(Skewness, 비대칭도)와 첨도(Kurtosis, 뾰족함) 등이 있다. 데이터 분석에서 기술통계의 중요성: 데이터 요약: 기술통계는 대량의 데이터를 몇 가지 요약 통계량으로 축소하여, 데이터의 전반적인 특성을 쉽게 파악할 수 있게 해준다. 이를 통해 데이터의 중심 위치, 퍼짐..
Calculus
-
라플라스 변환(Laplace transform)
라플라스 변환(Laplace transform)은 주로 미분 방정식의 해를 찾거나 시스템의 안정성을 분석하는 데 사용되는 수학적 기법이다. 라플라스 변환은 시간 영역의 함수를 복소 주파수 영역의 함수로 변환한다. 이를 통해 시간 영역에서 다루기 어려운 미분 방정식 문제를 주파수 영역에서 쉽게 해결할 수 있다. 라플라스 변환은 다음과 같이 정의된다. 주어진 시간 영역의 함수 $f(t)$에 대해, 라플라스 변환 $\mathcal{L}{f(t)}$는 다음과 같이 표현할 수 있다. $\mathcal{L}\{f(t)\} = F(s) = \int_{0}^{\infty} f(t) e^{-st} \, dt$ 라플라스 변환은 선형 시스템의 해를 구하는 데 유용하며, 라플라스 변환을 사용하면 시간 영역에서의 미분 연산이 ..
-
테일러 급수(Taylor series)
테일러 급수(Taylor series)는 주어진 미분 가능한 함수를 무한 급수로 근사하는 방법이다. 테일러 급수는 함수의 근사와 관련된 많은 정보를 제공하며, 함수의 성질을 이해하는 데 도움이 된다. 함수 $f(x)$가 어떤 점 $x=a$에서 무한 번 미분 가능하다고 가정해보자. 이때, 테일러 급수는 다음과 같이 정의된다. $f(x) = \sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n!} (x - a)^n$ 테일러 급수를 이용해 함수를 점 $a$ 주변에서 근사할 수 있다. 일반적으로 테일러 급수의 차수가 높아질수록, 함수와의 근사 정확도도 증가한다. 예를 들어, $e^x$ 함수의 테일러 급수는 다음과 같다. $e^x = \sum_{n=0}^{\infty} \frac{x^n}{n!}..
-
그래디언트(Gradient)
그래디언트(gradient)는 다변수 함수에서 각 변수에 대한 편미분을 벡터로 표현한 것이다. 그래디언트는 함수가 가장 빠르게 증가하는 방향을 나타내며, 이를 통해 함수의 최소값 또는 최대값을 찾는 데 사용된다. 예를 들어, 두 변수 $x$와 $y$에 대한 함수 $f(x, y)$가 있다고 가정하면, 이 함수의 그래디언트는 다음과 같이 정의된다. $\nabla f(x, y)$ = \begin{bmatrix} \frac{\partial f(x, y)}{\partial x} \\ \frac{\partial f(x, y)}{\partial y} \end{bmatrix} 이 그래디언트 벡터는 함수 $f(x, y)$의 각 점 $(x, y)$에서의 기울기를 나타낸다. 편미분을 벡터의 형태인 그래디언트로 굳이 표현하는..
-
상미분 방정식(Ordinary Differential Equation, ODE)
미분 방정식의 일종으로, 구하려는 함수가 하나의 독립 변수만을 가지고 있는 경우를 말하며, 이와 반대되는 개념은 여러 변수에 대한 함수를 편미분 하는 형식을 취하는 편미분 방정식(Partial Differential Equation, PDE)이라고 한다. 선형 상미분 방정식(Linear Ordinary Differential Equation) ${\displaystyle y^{(n)}=\sum _{i=0}^{n-1}a_{i}(x)y^{(i)}+r(x)}$ 제차 선형 상미분 방정식(Homogeneous Linear Ordinary Differential Equation): 위의 식에서 초항 $r(x) = 0$인 경우 비제차 선형 상미분 방정식(Non-homogeneous Linear Ordinary Dif..
Paper Review
-
[논문 리뷰] Are Transformers Effective for Time Series Forecasting?
Are Transformers Effective for Time Series Forecasting? Ailing Zeng1*, Muxi Chen1*, Lei Zhang2 , Qiang Xu1 1The Chinese University of Hong Kong 2 International Digital Economy Academy (IDEA) 논문링크: https://arxiv.org/pdf/2205.13504.pdf 장기 시퀀스 시계열 예측에서 과연 트랜스포머(Transformer)가 효과적인가? NLP(Natural Language Processing)와 CV(Computer Vision) 분야 등 여러 task에서 트랜스포머 모델은 성능 향상에 있어서 효과적이었지만, 이를 시계열 데이터를 모델링 하는데..
-
[논문 리뷰] Stock market network based on bi-dimensional histogram and autoencoder
Intelligent Data Analysis 26 (2022) 723–750 723 DOI 10.3233/IDA-215819 IOS Press Stock market network based on bi-dimensional histogram and autoencoder Sungyoon Choia , Dongkyu Gwaka , Jae Wook Songb and Woojin Changa,c,d,∗ aDepartment of Industrial Engineering, Seoul National University, Seoul, Korea bDepartment of Industrial Engineering, Hanyang University, Seoul, Korea c Institute for Industr..
Project
-
[Project] Interregional Correlation Analysis of COVID-19 Confirmed Cases using LSTM: linear and non-linear correlation analysis
상관 관계 분석(correlation analysis)을 함에 있어서 다양한 기법이 있습니다. 그 중 대표적인 방법은 변수 간의 피어슨 상관 계수(Pearson correlation coefficient)를 알아보는 것입니다. 피어슨 상관 계수를 통하여 -1 ~ 1 까지의 수치를 얻어내고 변수들 간의 어느정도 관계가 있는지 양의 상관 관계, 음의 상관 관계를 얻어낼 수 있습니다. 피어슨 상관 계수를 구하는 것은 선형 상관 관계(linear correlation)를 구하는 것입니다. 그치만, 피어슨 상관 계수를 구한다 해서 변수 간의 상관 관계를 완벽하게 알 수 있는 것이 아닙니다. 피어슨 상관 계수에 반영되지 않는 부분도 여러가지 있을 것입니다. 이 피어슨 상관 계수가 포착하지 못하는 부분을 알아내기 위..
-
[Project] 클러스터링을 이용한 성적 분배
대학에서는 상대평가 시, 일정 비율로 성적을 산출합니다. 그러나, 이렇게 성적을 산출하게 되면 A0와 B+ 구간에 있는 학생들이 다소 아쉬운 상황이 발생할 수 있다는 것입니다. 예를 들어, 어떤 학생은 91점을 받아 A0인데, 어떤 학생은 90.5점을 받아 B+를 받는 상황이 생기는 것입니다. 이는 수많은 학생들이 겪어 봤을 것이고, 저도 여러 번 겪어 봤습니다. 또한, 이 부분은 어쩔 때는 교수님들에게도 고역인 경우가 있습니다. 이런 경계구간에서 학생들의 성적이 모두 같아버린다면, 그 학생들 간의 출석, 태도, 과제 점수 등에 대해서 세부적으로 따져봐야 하기 때문입니다. 이렇게 억울하거나 귀찮아지는 일을 없애보고자 이 프로젝트를 진행했습니다. GitHub - kangmincho1/Side-Project..
-
[Project] 고등학교 학생 성적에 미치는 요인 분석
머신러닝 기법을 이용하여 학생 성적에 영향을 미치는 여러가지 요인을 분석해 보았습니다. GitHub - kangmincho1/Side-Projects: Collection of side projects Collection of side projects. Contribute to kangmincho1/Side-Projects development by creating an account on GitHub. github.com Dataset Predict the final grade of Portuguese high school students Student Grade Prediction Predict the final grade of Portugese high school students www.kaggl..
-
[Project] 18-19 시즌 EPL 승부예측
머신러닝 기법을 이용하여 영국 프리미어리그의 데이터를 학습하고, 이를 토대로 승부를 예측하도록 해보았습니다. GitHub - kangmincho1/Side-Projects: Collection of side projects Collection of side projects. Contribute to kangmincho1/Side-Projects development by creating an account on GitHub. github.com Dataset Premier League 2018/2019 시즌 데이터 Download Soccer / Football Stats Database to CSV | FootyStats Download Soccer / Football Stats Database to ..