기본 콘텐츠로 건너뛰기

라벨이 잔차인 게시물 표시

[matplotlib]quiver()함수

[Linear Analysis] 최소제곱법에 의한 수학적 모형

최소제곱법에 의한 수학적 모형 관련된 내용 최소제곱해 y=f(x)를 따르는 데이터에 대해 생각해 봅니다. $$(x_1, y_2),\, (x_2, y_2), \, \cdot, \, (x_n, y_n)$$ 위 데이터의 패턴을 찾는 것은 f(x)의 함수를 찾는 것과 같습니다. 이러한 함수를 수학적 모형이라 합니다. 이러한 함수의 몇가지 예를 나타내면 다음과 같습니다. 직선: y=ax+b 2차 다항식: y=a+bx+cx 2 3차 다항식: y=a+bx+cx 2 +dx 3 x1=symbols("x1") f=2+3*x1+4*x1**2+5*x1**3 df=f.diff(x1) ddf=df.diff(x1) x=np.linspace(-10, 10, 100) y1=[f.subs(x1, i) for i in x] y2=[df.subs(x1, i) for i in x] y3=[ddf.subs(x1, i) for i in x] fig, ax=plt.subplots(figsize=(4,3)) ax.plot(x, y1, color="r", label=r"$y=dx^{3} + cx^{2} + b x + a$") ax.plot(x, y2, color="b", label=r"$y=c x^{2} + b x + a$") ax.plot(x, y3, color="g", label=r"$y=b x + a$") ax.legend( bbox_to_anchor=(0.8,1)) ax.set_xlabel("x", loc="right") ax.set_ylabel("y", loc="top") ax.set_ylim(-200, 200) ax.spines['left'].set_position(("data", 0)) ax.spines['bottom...

[data analysis] 다중 회귀모형의 진단

다중 회귀모형의 진단 내용 정규성(normality) 과 이상치(outlier) 평가 독립성 선형성과 자기상관 등분산성 단순회귀모형과 같이 회귀분석은 몇 가지 가정 을 전제한 상태에서 모형을 구축합니다. 그러므로 그 가정의 충족되지 않은 자료들에서 생성된 모형의 경우 적용과 적합성에 문제가 발생됩니다. 예를 들어 데이터가 정규분포를 따르지 않는 상태에서 구축된 회귀모형의 예측 범위는 매우 넓어질 수 있으므로 그 자체의 의미가 감소됩니다. 또한 변수들의 독립성에 문제가 있는 경우 반응변수에 대한 설명변수들의 선택에서 발생하는 오류는 실제와 다른 결과를 가져올 수 있습니다. 이 원인들은 모두 회귀모형의 신뢰도를 악화시키며 예측정도를 빈약하게 만들 수 있습니다. 정규성(normality) 과 이상치(outlier) 평가 예 1) 다음 코드에 의해 생성된 자료 코스피지수(kos), 코스탁지수(kq), kodex 레버리지(kl), kodex 인버스(ki), 그리고 원달러환율(WonDol)의 일일 종가들을 설명변수로 사용하여 삼성전자(sam)의 일일 종가를 추정하는 회귀모델을 구축해 봅니다. (이 자료에서 설명변수는 반응변수보다 1일 앞선 데이터 입니다.) import numpy as np import pandas as pd import yfinance as yf st=pd.Timestamp(2023,1, 10) et=pd.Timestamp(2024, 5, 30) code=["^KS11", "^KQ11", "122630.KS", "114800.KS","KRW=X","005930.KS"] nme=["kos","kq","kl", "ki", "WonDol","sam" ] da={} for i, j in zip(nme,c...

[data analysis] 회귀분석(Regression analysis)의 정의와 가정

회귀분석(Regression analysis)의 정의와 가정 회귀분석(Regression analysis) 은 변수들간의 관계에 대한 모형을 설정하고 그 모형을 통해 새로운 값을 추정하는 통계적 방법입니다. 그림 1은 일정한 높이(x)에 대응되는 힘(y)에 대한 그래프로서 x가 증가할수록 y가 증가하는 정확한 정비례 관계를 보여줍니다. 이 관계는 일반적인 물리법칙을 적용한 것으로 높이에 따라 작용되는 힘을 정확하게 결정할 수 있습니다. 그림 1. 높이에 따른 힘의 변화. h=np.linspace(0, 5) f=0.1*9.8*h plt.figure(figsize=(4,3)) plt.plot(h, f, color="g", label="F=mgh\nm:0.1 kg") plt.xlabel("h(m)") plt.ylabel("F(N)") plt.legend(loc="best") plt.show() 그림 2는 x가 증가하면서 y의 증가를 보이지만 그림 1과 같이 완전한 선으로 미지의 값에 대한 적확한 예측을 하는 것은 어렵습니다. 그림에서 나타낸 것과 같이 각 x 점에 대응하는 y 값들의 관계식은 다양하게 존재할 것입니다. 이 상황에서 새로운 x에 대한 y를 추정하기 위한 가장 적합한 식(회귀모델)을 추론하는 것이 회귀분석의 최종적인 목적입니다. 이와 같이 두 변수 사이의 관계 모형을 확정하기 어려운 경우에서의 모델 구축은 확률적으로 이루어 집니다. 다시말하면 회귀분석은 확률론적 시각으로 데이터의 특성을 이해하고 미지의 값을 추론하는 주요한 통계적 방법입니다. 그림 2 X에 대한 Y의 관계. np.random.seed(3) x=np.linspace(-1, 5, 100) y=0.3*x+np.random.rand(100) y1=0.56+0.4*x y2=0.45+0.32*x y3=0.2+0.44*x y4=0.7+0.2*x col=["brown...