삼각비 삼각비는 고대부터 전해내려오는 비율인데 고대 천문학자들이 별을 관찰하면서 생겨났습니다. 직각삼각형을 기준으로 길이비를 각각 sin, cos, tan로 만들었습니다. $$ sinA = \frac{a}{c} \ \ \ \ cosA =\frac{b}{c} \ \ \ \ \ tanA = \frac{a}{b} $$ $$ cscA = \frac{1}{sinA} \ \ \ \ secA = \frac{1}{cosA} \ \ \ \ cotA = \frac{1}{tanA} $$ 삼각비 공식 삼각비의 공식은 여러가지가 있는데 중세에서 근대로 넘어가는 시점에 삼각비를 대수적으로 표현하고 전개할 수 있는지에 대한 연구를 한때 했던적이 있는데 아래 공식은 그 결과들입니다. 덕분에 외울게 많아졌습니다. 제곱공식 $$ sin..
상관계수와 회귀계수 관계 상관관계와 회귀계수의 관계에 대해서 수학적으로 알아볼까 합니다. 막 유용하진 않습니다. 다만, 생각을 다른 방향으로 뻗어나갈때 중간다리 역할을 해줍니다. 모르는 것보다는 나은 것 같습니다. 관계를 알기에 앞서 노테이션을 정하고 가겠습니다. 그냥 식이 복잡해서 간단하게 하기 위함입니다. $$ S_{xx} = \frac{1}{n} \sum_{i=1}^{n}{(x_i-\bar x)^2} $$ $$ S_{yy} = \frac{1}{n} \sum_{i=1}^{n}{(y_i-\bar y)^2} $$ $$ S_{xy} = \frac{1}{n} \sum_{i=1}^{n}{(x_i-\bar x)(y_i-\bar y)} $$ 그냥 분산과 공분산을 다르게 쓴 것뿐입니다. 이 노테이션을 사용해서 상관..
공분산과 상관관계: 데이터 분석의 핵심 개념 데이터 분석 및 통계학 분야에서 중요한 두 가지 개념인 공분산과 상관관계에 대해 알아보겠습니다. 이 개념들은 데이터 간의 관계를 이해하고 해석하는 데 도움을 주는 중요한 역할을 합니다. 1. 공분산 (Covariance) 공분산은 두 변수 간의 관계를 측정하는 지표 중 하나입니다. 두 변수가 어떻게 함께 움직이는지를 보여주는데 사용됩니다. 공분산의 수학적 정의는 다음과 같습니다. $$ Cov(X, Y) = E[(X-\mu_X)(Y-\mu_Y)] $$ 여기서, X와 Y는 두 변수, Xᵢ와 Yᵢ는 각각의 변수의 개별 데이터 포인트, $μ_X$와 $μ_Y$는 각각의 변수 X와 Y의 평균, n은 데이터 갯수입니다. 정의에서 보듯이 공분산은 X의 편차와 Y의 편차를 곱..
확률의 종류 문제를 이해하고 예측하기 위해서는 다양한 확률 모델과 접근 방식이 필요합니다. 세상은 생각보다 복잡하기 때문에 문제를 컨트롤하기 위한 고민이 끊이없이 있어왔습니다. 그러다 보니 확률의 종류도 여러가지 생겨난 것 같습니다. 수학적 확률(The mathematical probability) 중고등학교 때 배우는 우리가 흔히 말하는 확률을 의미합니다. 이론적인 확률로 간단한 확률 문제를 다룹니다. 주사위 던지기나 동전 던지기 같이 명확하게 확률을 알 수 있는 것을 기반으로 하고 있고 그래서 정확하게 계산할 수 있습니다. 어떤 사건 A가 일어날 확률 P(A)를 구한다면 다음과 같이 구할 수 있습니다. $$ P(A) = \frac{n(A)}{n(S)} = \frac{the\ number\ of\ ou..
곡선의 넓이 구하기 곡선의 넓이를 구하는 방법은 고대부터 이어오는 연구였는데 적분이라는 개념으로 통합되면서 현재 우리가 적분으로 곡선의 넓이를 구하게 되었습니다. 결론만 요약해서 얘기하면 극한의 개념이 있기 전까지는 적분이라는 것을 쓸 수 없었는데 극한의 개념이 전파되면서 적분을 쓸 수 있게 되었습니다. 이번 포스팅은 적분의 전형태인 구분구적법에 대한 얘기를 쓸까 합니다. 구분구적이라는 말은 한자어로 measuration by parts를 한자로 번역한 것입니다. 여기서 구분은 말그대로 '구분'한다는 것인데 수학적 관점으로 보면 쪼갠다는 의미로 받아들일 수 있습니다. 작은 도형으로 만드는 것이지요. 구적법은 meansuration 으로 면적을 구하는 방법이라 합니다. 즉, 구분구적법은 어떤 도형의 넓이 ..
파이썬에서 수학함수 어떻게 쓰나? 코딩을 하다보면 수학함수가 의외로 많이 쓰입니다. 이번 포스팅은 자주 쓰는 수학함수를 math 모듈로 가져오는 방법에 대한 얘기입니다. math 모듈 math 모듈로 아주 간단하게 주요함수들을 불러올 수 있는데 누가 만들었는지 아주 기똥찹니다. 주로 자연상수 e나 삼각함수, 지수를 쓸때 유용합니다. 다른건 코드로 할 수 있기도 하지만 math모듈을 활용하면 코드량도 줄이고 간편하게 할 수 있는게 큰 장점입니다. 아나콘다나 미니콘다로 설치했다면 대부분 기본적으로 깔려 있습니다. 혹시 없다면 아래와 같이 math 모듈을 설치합니다. pip install math 주요한 수학 함수 수치계산이나 데이터 분석을 위해서는 모델링이 필수적인데 삼각함수나 지수로그함수가 적합한 모델일 ..
자연대수 e를 이용한 복리법 복리법은 복리법인데 난데없이 자연대수 e을 가져다쓰는 어그로에 적잖이 의문을 가질 것 같습니다. 하지만 잘 따져보면 e가 복리 성질이 있는 것의 모델링을 할 때 굉장히 중요하다는 것을 느낄 수 있습니다. 일반적인 복리계산법 일반적으로 알려진 복리계산법은 다음과 같습니다. 원금 A, 이자 r, 주기 n, 기간 t일 때, 원금에 대한 복리는 $$ A(1+r/n)^nt $$ 입니다. 예를 들어, 1000달러에 연이자 6% 이자갱신 주기가 하루인 복리상품을 3년동안 저축한다고 하면 3년 후에는 다음을 받게 됩니다. $$ 1000(1+0.06/365)^{365*3} = 1197.19 $$ 으로 약 1197.2 가 됩니다. 여기서 알 수 있는건 n이 증가할 때마다 지급되는 이자 또한 증..
자연로그의 밑 e 자연상수 e 또는 자연로그의 밑 e라고 불리는 수로 수학에서 $\pi$ 와 함께 가장 자주 쓰는 상수라고 할 수 있습니다. 자연상수 e는 전혀 자연스럽게 생긴 수가 아닙니다. 어떤 필요에 의해 만들어진 수입니다. e가 있음으로 많은 것들을 이어나갈 수 있고 편리해졌습니다. 이번 포스팅은 자연대수 e에 대한 정의파트를 다루려고 합니다. e의 정의 e는 사실 정의하기 나름인데 개인적으로 모델링을 할 때 도움이 많이 되는 미적분에서 전개하는 방식으로 하려고 합니다. 간단한 지수함수에 대한 미분을 구해보겠습니다. 만약 $f(x)=b^x$라 할 때, 미분을 구하면 $$ f'(x) = lim_{h->0}\frac{f(x+h)-f(x)}{h} $$ $$ = lim_{h->0}\frac{b^{x+h}..
사분위수란 데이터를 가장 작은 값부터 큰 값으로 나열하고 4등분을 했을 때의 각 등분에 해당하는 값을 말합니다. 그래서 4등분했을 때의 값들을 등위라고 하는데 제p사분위수 라고 합니다. 제1사분위수(Q1) : 전체 데이터를 사등분했을 시 1번째에 해당하는 값, 데이터를 작은수부터 나열했을때 25% 지점에 해당하는 수. 제2사분위수(Q2) : 전체 데이터를 사등분했을 때 2번째에 해당하는 수, 50% 지점에 해당하는 수로 중간값(median)과 동일 제3사분위수(Q3) : 전체 데이터를 사등분했을 때 3번째에 해당하는 수, 75% 지점에 해당하는 수 사분위수 범위(Interquartile range,IQR) : Q3-Q1으로 자료 집합의 50%를 가지는 값의 범위. 실생활에서 많이 쓰는 등분은 100,10..
통계하면 정규분포가 빠질 수 없는데 파이썬으로 정규분포 그리는 방법 알려드립니다. scipy로 간단하게 그릴 수 있기도 하지만 직접 식으로 그려보고 scipy 통해서도 그려보겠습니다. 확률밀도함수로 직접 구하기 수학자가 만든 함수 중에 전체넓이가 1이거나 1로 제한할 수 있는 경우 분포함수로 쓰게 되는데 정규분포의 확률밀도함수는 가우스 함수라고도 합니다. 함수의 모양이 대칭이고 넓이가 1이 되는 함수입니다. 정규분포 확률밀도함수 식은 다음과 같습니다. $$ f(x)=\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{1}{2}(\frac{(x-\mu)}{\sigma})^2} $$ 데이터가 무엇이냐에 따라 코딩이 달라질 수 있기 때문에 정규분포의 확률밀도함수(pdf) 를 통해 직접 구하는 것..
파이썬으로 미분방정식 해 구하는 방법입니다. 수학적 증명이 필요없이 간단하게 코딩을 이용해 해를 구할 수 있습니다. 코딩이 할 줄만 알면 참 좋은 것 같습니다. numpy로 미분방정식을 구하는 걸 기대할 수 있으나 numpy는 행렬과 데이터 벡터화에 특화된 모듈이기 때문에 미분방정식의 해를 직접 구하는 건 불가능합니다. 행렬 형태로 이루어진 쟈코스키 같은 특수한 상황에서나 가능합니다. 그렇다고 아예 불가능한 것은 아닙니다. 미분방정식의 해를 구하는 수학적 원리를 잘 모르더라도 파이썬으로 해를 구하실 수 있습니다. sympy를 이용한 미분방정식 해 구하기 sympy를 이용하면 미분방정식 해를 구할 수 있는데 그 이유는 sympy는 실제 수학처럼 변수를 지정이 가능하고 방정식을 인식을 하기 때문에 미분방정식..
수학기호 입력 사이트 수학 기호를 입력해야 하는 상황이 있을 때 소프트웨어로 하면 좋겠지만 비용이 드는 경우가 많습니다. 물론 대학원에서 논문을 쓴다면 소프트웨어를 사거나 얻거나 대학원에서 주거나 해서 쓸 수 있는데 회사에서 또는 개인이 쓰려고 하면 비용이 들기 때문에 프리웨어인 제품을 찾을 수 밖에 없는데 찾아보니 있었습니다. http://www.sciweavers.org/free-online-latex-equation-editor http://www.hostmath.com/ https://www.codecogs.com/latex/eqneditor.php sciweavers 나 hostmath 가 개인적으로는 편했습니다. sciweavers와 codecogs는 수식을 그림으로 받을 수 있어서 워드 작업..
sympy를 이용해 그래프 그리는 방법입니다. 데이터의 값에 따른 그래프를 그리는 게 아니라 함수식 자체를 그리려고 한다면 sympy를 사용하면 그릴 수 있습니다.sympy의 내장으로 가지고 있는 plot 함수를 이용하면 됩니다. 편의를 위해 sympy를 sy로 줄이고 sympy의 나머지 함수를 모두 불러옵니다. from sympy import * import sympy as sy 함수 그래프 그리기 함수 1개 $x^2$ 를 그려보겠습니다. x = sy.symbols('x') fx = x^2 plot(fx) 함수 여러개 두 가지 함수를 동시에 그려보겠습니다. plot 안에 넣어서 한꺼번에 그릴 수 있는데 색깔이 같게 나오는 문제가 생깁니다. plot(fx,x**3) 색깔을 바꾸려면 line_color를 ..
앞선 포스팅에서 최소제곱방법을 다뤘었는데 행렬표현으로 하지 않고 직관적인 설명 위주로 했습니다. 가장 간단한 (x,y) 에 대한 설명을 하였습니다. 이번에는 변수의 갯수를 n개까지 늘리는 소위 말하는 정규방정식 유도 방법을 포스팅하겠습니다. 이전 포스팅과 같은 최소제곱방법이지만 좀 더 일반적인 상황이고 초점이 파라미터가 아니라 x에 있습니다. 변수가 n 개까지 늘어나고 m 개의 데이터라고 보시면 될 것 같습니다. 즉, 변수 n개에 대한 m개의 방정식을 푸는 연립방정식이 되겠습니다. 보통 식이 많은 연립방정식은 선형대에서 배우는 linear system으로 넘겨 행렬 문제로 바꿔버립니다. 즉, linear system으로 표현하면 Ax = b 를 푸는 문제가 됩니다. n개의 변수와 n 개의 방정식이라면 정..
파이썬으로 미분할 때 Sympy를 사용하면 아주 편리합니다. 정의대로 미분 먼저 정의대로 되는지 구해보겠습니다. 미분의 정의는 순간속력을 알아내기 위한 방법으로 고안했습니다. 속력 = 거리/시간 인데 이를 그래프로 보면 속력은 기울기와 같게 됩니다. 예를 들어, a에서 b 시점까지의 평균속력은 a와 b 사이의 평균 기울기가 됩니다. 즉, 평균속력 = $ \frac{f(b)-f(a)}{b-a} $ 이 됩니다. 관심을 갖는 건 a에서의 순간 속력입니다. 그러니 저 기울기가 a만 지나가야 하는 접선의 형태로 나타난다면 a의 순간속력이 될 것입니다. 이를 위해 limit를 도입합니다. 왜냐하면 속력 = 거리/시간 인데 b=a 가 되면 분수는 성립하지 않아서 속력을 구할 수 없게 됩니다. 그래서 a는 아니지만 a..