Skip to content
Home » 시계열 분석 Python | 시계열 데이터 분석 기초 Part.1 #Python #파이썬 최근 답변 174개

시계열 분석 Python | 시계열 데이터 분석 기초 Part.1 #Python #파이썬 최근 답변 174개

당신은 주제를 찾고 있습니까 “시계열 분석 python – 시계열 데이터 분석 기초 Part.1 #Python #파이썬“? 다음 카테고리의 웹사이트 https://kk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: https://kk.taphoamini.com/wiki/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 데이터 스테이션 이(가) 작성한 기사에는 조회수 6,869회 및 좋아요 80개 개의 좋아요가 있습니다.

시계열 분석 python 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 시계열 데이터 분석 기초 Part.1 #Python #파이썬 – 시계열 분석 python 주제에 대한 세부정보를 참조하세요

안녕하세요. 데이터 스테이션입니다.
매일 10분 데이터 분석은 금주 월/화/목/토요일 진행됩니다.
Q \u0026 A 는 댓글남겨주시면 취합 후, 토요일에 답변드리겠습니다.
감사합니다.
예제 데이터 다운로드 : https://blog.naver.com/data_station/222493262626 클래스101에서 Python 데이터 분석 강좌가 오픈되었습니다!
* Python 데이터 분석에 관한 자세한 강의를 더 들으시려면, 아래 클래스101 강의를 확인해보세요.
* 클래스 101 데이터 분석강의
Python활용 데이터 분석 기초 : https://class101.page.link/zX5T
Python Pandas 활용 실무 데이터 전처리 : https://class101.page.link/e5hQ
Python활용 실무 통계 분석 : https://class101.page.link/5cvM
Python을 이용한 실무 머신러닝 : https://class101.page.link/18c9
Python으로 제조/공정 데이터 분석 하기 : https://class101.page.link/CTgL
* 비즈니스 및 기업 강의 문의
[email protected]

시계열 분석 python 주제에 대한 자세한 내용은 여기를 참조하세요.

[Python] 날씨 시계열 데이터(Kaggle)로 ARIMA 적용하기

이전 포스팅에서 시계열 분석에 대한 전반적인 설명과 ARIMA 모형(정상성, AR, MA) 에 대해 설명했다. 이번에는 실제 시계열 데이터에 ARIMA 모형을 …

+ 여기에 보기

Source: leedakyeong.tistory.com

Date Published: 1/25/2021

View: 73

Python 시계열 분석 – tak’s data blog – 티스토리

학교 수업으로 시계열분석을 듣고 싶었지만, 커리큘럼상 문제로 중요한 시계열분석을 듣지 못하고 졸업을 해야할 것 같습니다 ㅠㅠ 그래서 요즘은 …

+ 여기에 더 보기

Source: taek98.tistory.com

Date Published: 3/4/2021

View: 4003

[Python] 삼성전자 주가 예측 입니다 – DACON

Step 2 예측: 파이썬 라이브러리를 활용한 시세 예측. Model 1: ARIMA. 우선 사용할 시계열 예측 분석은 ARIMA 분석 방법이다.

+ 자세한 내용은 여기를 클릭하십시오

Source: dacon.io

Date Published: 6/2/2021

View: 6318

[Python Data Analysis 분석 8] 데이터 분석 – 파이썬 시계열분석

네이버 블로그로 이전했습니다. https://blog.naver.com/moongda0404/222729530178 [Python Data Analysis 분석 8] 데이터 분석 – 파이썬 시계열분석 …

+ 여기에 더 보기

Source: tjansry354.tistory.com

Date Published: 6/10/2021

View: 6912

4.8 시계열 자료 다루기 – 데이터 사이언스 스쿨

pd.to_datetime 함수를 쓰면 날짜/시간을 나타내는 문자열을 자동으로 datetime 자료형으로 바꾼 후 DatetimeIndex 자료형 인덱스를 생성한다.

+ 여기에 더 보기

Source: datascienceschool.net

Date Published: 4/24/2021

View: 4880

[시계열 분석] 2. 최소 제곱법을 이용한 시계열 분석 with Python

이번 포스팅에서는 기존 최소 제곱법을 이용하여 시계열 데이터를 분석하는 방법과 파이썬(Python)으로 구현하는 방법에 대해서 알아보고자 한다.

+ 여기에 자세히 보기

Source: zephyrus1111.tistory.com

Date Published: 7/14/2022

View: 2840

[Python 시계열 자료 분석] 시계열 모형의 예측 성능 평가 지표

[Python 시계열 자료 분석] 시계열 모형의 예측 성능 평가 지표. Rfriend 2021. 7. 18. 11:04. 지난번 포스팅에서는 시계열 패턴별 지수 평활법 (exponential …

+ 여기에 보기

Source: rfriend.tistory.com

Date Published: 7/14/2022

View: 2274

주제와 관련된 이미지 시계열 분석 python

주제와 관련된 더 많은 사진을 참조하십시오 시계열 데이터 분석 기초 Part.1 #Python #파이썬. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

시계열 데이터 분석 기초 Part.1 #Python #파이썬
시계열 데이터 분석 기초 Part.1 #Python #파이썬

주제에 대한 기사 평가 시계열 분석 python

  • Author: 데이터 스테이션
  • Views: 조회수 6,869회
  • Likes: 좋아요 80개
  • Date Published: 2021. 3. 9.
  • Video Url link: https://www.youtube.com/watch?v=0ErbtpR9HQA

[Python] 날씨 시계열 데이터(Kaggle)로 ARIMA 적용하기

반응형

2021.05.24 – [통계 지식/시계열자료 분석] – 시계열 분해란?(Time Series Decomposition) :: 시계열 분석이란? 시계열 데이터란? 추세(Trend), 순환(Cycle), 계절성(Seasonal), 불규칙 요소(Random, Residual)

2021.05.24 – [통계 지식/시계열자료 분석] – ARIMA란? :: ARIMA 분석기법, AR, MA, ACF, PACF, 정상성이란?

이전 포스팅에서 시계열 분석에 대한 전반적인 설명과 ARIMA 모형(정상성, AR, MA) 에 대해 설명했다.

이번에는 실제 시계열 데이터에 ARIMA 모형을 적용하는 Python 코드를 설명하겠다.

ARIMA in Python

kaggle에서 제공된 제 2차 세계대전 날씨데이터를 활용했으며, kaggle 코드를 참고하였다.

총 2가지 날씨 데이터이며, 하나는 station별 위도, 경도 등 위치가 표시되어있는 위치데이터,

하나는 station 별 실제 온도 데이터이다.

각 데이터별 사용한 컬럼에 대한 Description은 다음과 같다.

Weather station location: WBAN: Weather station number NAME: weather station name STATE/COUNTRY ID: acronym of countries Latitude: Latitude of weather station Longitude: Longitude of weather station

Weather: STA: eather station number (WBAN) Date: Date of temperature measurement MeanTemp: Mean temperature

필요한 라이브러리들을 import하고, 데이터를 불러온다.

import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv) import seaborn as sns # visualization library import matplotlib.pyplot as plt # visualization library # import plotly.plotly as py # visualization library from plotly.offline import init_notebook_mode, iplot # plotly offline mode init_notebook_mode(connected=True) import plotly.graph_objs as go # plotly graphical object import os import warnings warnings.filterwarnings(“ignore”) # if there is a warning after some codes, this will avoid us to see them. plt.style.use(‘ggplot’) # style of plots. ggplot is one of the most used style, I also like it.

weather_station_location = pd.read_csv(“../01. Data/Weather Station Locations.csv”) weather = pd.read_csv(“../01. Data/Summary of Weather.csv”) weather_station_location = weather_station_location.loc[:,[“WBAN”,”NAME”,”STATE/COUNTRY ID”,”Latitude”,”Longitude”] ] weather = weather.loc[:,[“STA”,”Date”,”MeanTemp”] ]

분석에 필요한 컬럼들만 불러왔으며, 각 데이터에 대한 상위 5개를 head()로 보면 다음과 같다.

여러 지역 중 BINDUKURI 지역에 대한 일 평균 온도를 대상으로 분석을 진행하겠다.

weather_station_id = weather_station_location[weather_station_location.NAME == “BINDUKURI”].WBAN weather_bin = weather[weather.STA == int(weather_station_id)] weather_bin[“Date”] = pd.to_datetime(weather_bin[“Date”])

1943년 5월 11일부터 1945년 5월 31일까지 일단위 평균 온도이다.

이를 시계열 그래프로 그려보면 다음과 같다.

plt.figure(figsize=(22,8)) plt.plot(weather_bin.Date,weather_bin.MeanTemp) plt.title(“Mean Temperature of Bindukuri Area”) plt.xlabel(“Date”) plt.ylabel(“Mean Temperature”) plt.show()

이를 시계열 분해법으로 분해해보면 다음과 같다.

먼저, 시계열 형태의 ts 데이터를 만들어준다.

# lets create time series from weather timeSeries = weather_bin.loc[:, [“Date”,”MeanTemp”]] timeSeries.index = timeSeries.Date ts = timeSeries.drop(“Date”,axis=1)

다음으로 seasonal_decompose() 를 활용하여 분해한다.

from statsmodels.tsa.seasonal import seasonal_decompose result = seasonal_decompose(ts[‘MeanTemp’], model=’additive’, freq=7) fig = plt.figure() fig = result.plot() fig.set_size_inches(20, 15)

freq에 들어가는 주기는 계절성 주기를 기반으로 설정해준다.

이 계절성 주기는 정답이나 공식이 있는 것은 아니고 눈으로 보고 파악해야 하는데,

분기별 데이터는 4, 월별 데이터는 12, 주별 패턴이 있는 일별 데이터는 7로 초기 설정해보고 보면서 맞춰가는 것을 추천한다.

(이 데이터는 계절성 주기가 1년이라 365로 설정하는 것이 바람직하다.)

데이터가 패턴이 보이기 때문에 정상성이 의심된다. 이를 판단하기 위해 ACF 그래프를 그려보았다.

import statsmodels.api as sm fig = plt.figure(figsize=(20,8)) ax1 = fig.add_subplot(211) fig = sm.graphics.tsa.plot_acf(ts, lags=20, ax=ax1)

아주아주 천천히 값이 작아지는 것을 볼 수 있다. 이전 포스팅에서 언급했듯이, ACF 값이 아주아주 천천히 감소하는 것은 정상성을 만족하지 않는다는 것을 의미한다.

이번에는 단위근 검정인 ADF 검정(Augmented Dickey-Fuller test)으로 정상성을 확인해보겠다.

이 검정의 가설은 다음과 같다.

H0(귀무가설) : 자료에 단위근이 존재한다. 즉, 정상성을 만족하지 않는다.

H1(대립가설) : 자료가 정상성을 만족한다.

from statsmodels.tsa.stattools import adfuller result = adfuller(ts) print(‘ADF Statistic: %f’ % result[0]) print(‘p-value: %f’ % result[1]) print(‘Critical Values:’) for key, value in result[4].items(): print(‘\t%s: %.3f’ % (key, value))

p-value가 0.05를 넘으므로, 귀무가설을 기각하지 못한다. 즉, 해당 데이터는 정상성을 만족하지 못한다.

이를 해결하기 위해 1차 차분을 해주었다.

ts_diff = ts – ts.shift() plt.figure(figsize=(22,8)) plt.plot(ts_diff) plt.title(“Differencing method”) plt.xlabel(“Date”) plt.ylabel(“Differencing Mean Temperature”) plt.show()

일정한 패턴이 확인되지 않고, 정상성을 만족하는 듯 보인다.

ADF 검정 결과는 다음과 같다.

p-value가 0.05보다 작으므로 귀무가설을 기각한다. 즉, 1차 차분한 데이터는 정상성을 만족한다.

정상성을 만족하는 차분된 데이터로 ACF와 PACF 그래프를 그려 ARIMA 모형의 p와 q를 결정한다.

import statsmodels.api as sm fig = plt.figure(figsize=(20,8)) ax1 = fig.add_subplot(211) fig = sm.graphics.tsa.plot_acf(ts_diff[1:], lags=20, ax=ax1) # ax2 = fig.add_subplot(212) fig = sm.graphics.tsa.plot_pacf(ts_diff[1:], lags=20, ax=ax2)# , lags=40

ACF와 PACF 모두 금방 0에 수렴하고, 2번째 lag 이후 0에 수렴한다.

즉, ARIMA(2,1,2) 모형을 base model로, ARIMA(2,1,1), ARIMA(1,1,2), ARIMA(1,1,1) 등의 모델을 시도해 볼 수 있다.

ARIMA(2,1,2) 모델의 결과이다.

1994년 6월 25일 부터를 Test했다. Obs로는 340개에 해당한다.

from statsmodels.tsa.arima_model import ARIMA from pandas import datetime # fit model model = ARIMA(ts, order=(2,1,2)) model_fit = model.fit(disp=0) # predict start_index = datetime(1944, 6, 25) end_index = datetime(1945, 5, 31) forecast = model_fit.predict(start=start_index, end=end_index, typ=’levels’) # visualization plt.figure(figsize=(22,8)) plt.plot(weather_bin.Date,weather_bin.MeanTemp,label = “original”) plt.plot(forecast,label = “predicted”) plt.title(“Time Series Forecast”) plt.xlabel(“Date”) plt.ylabel(“Mean Temperature”) plt.legend() plt.show()

위 코드에서 중의할 점은 model fitting 시 typ = ‘levels’로 해 주어야 한다.

차분이 들어간 모델의 경우 typ을 default 파라미터인 ‘linear’로 설정해 줄 경우 차분한 값에 대한 결과가 나오기 때문이다.

눈으로 볼 때 결과가 아주 좋아보인다. 마지막으로 잔차 분석을 통해 모델에 빠진 것이 없는지, 문제가 없는지 확인한다.

잔차는 어떠한 패턴이나 특성이 나타나서는 안된다.

어떤 패턴이 있다는 것은 모델에 그만큼 덜 적용이 되었다는 것을 의미하기 때문이다.

resi = np.array(weather_bin[weather_bin.Date>=start_index].MeanTemp) – np.array(forecast) plt.figure(figsize=(22,8)) plt.plot(weather_bin.Date[weather_bin.Date>=start_index],resi) plt.xlabel(“Date”) plt.ylabel(“Residual”) plt.legend() plt.show()

ACF 그래프 및 ADF 검정을 통해 정상성도 판단한다.

ACF 그래프도 빠르게 0으로 수렴하고, ADF 검정 역시 p-value값이 매우 작은 것을 볼 수 있다.

마지막으로 성능까지 확인해보면 다음과 같다.

from sklearn import metrics def scoring(y_true, y_pred): r2 = round(metrics.r2_score(y_true, y_pred) * 100, 3) # mae = round(metrics.mean_absolute_error(y_true, y_pred),3) corr = round(np.corrcoef(y_true, y_pred)[0, 1], 3) mape = round( metrics.mean_absolute_percentage_error(y_true, y_pred) * 100, 3) rmse = round(metrics.mean_squared_error(y_true, y_pred, squared=False), 3) df = pd.DataFrame({ ‘R2’: r2, “Corr”: corr, “RMSE”: rmse, “MAPE”: mape }, index=[0]) return df

반응형

Python 시계열 분석

학교 수업으로 시계열분석을 듣고 싶었지만, 커리큘럼상 문제로 중요한 시계열분석을 듣지 못하고 졸업을 해야할 것 같습니다 ㅠㅠ

그래서 요즘은 youtube나 블로그로도 시계열분석에관한 핵심내용이 정리가 잘 되어 있어 youtube를 통해 공부한 python 시계열분석에대한 내용을 포스팅하도록 하겠습니다!! 아래 유튜브 채널을 통해 공부를 하였는데 참 쉽고 설명을 잘해주셨더라구요 감사의 말씀을 드립니다!

출처 : https://www.youtube.com/watch?v=ZwjMJyA3r5s

특정 간격을 갖는 시간 즉 (Lag)

Lag에서 Data의 Trend를 찾는것이 목적입니다.

대표적 일변량 정상시계열모델인 ARIMA 모델이 있습니다.

시계열분석은 크게 4가지 특성이 있습니다.

1) Trend : 추세

2) Seasonality : 계절성

3) Cycle : 주기

4) Noise : 잡음 -> White Noise

다음은 시계열분석을 python으로 진행해보겠습니다.

아래와 같이 날짜로 이루어진 Datetime칼럼을 pd.to_datetime을 통해 datetime형태로 변환하고

각 year, month, week, day_name으로 새로운 칼럼을 생성합니다.

아래와 같이 데이터프레임을 생성합니다.

날짜별 구매금액의 합계를 시계열로 보기위해 pivot_table을 생성하였습니다.

pivot_table로 x축에 datetime, y축에 구매금액을 두고 라인플랏을 그립니다.

아래는 index를 날짜뿐만아니라 물품의 종류까지 포함해서 구매금액의 합계를 pivot으로 변환하였습니다.

pivot_table로 x축에 datetime, y축에 구매금액을 두고 라인플랏을 그립니다.

여기까지 물품들의 합계별 간단한 라인플랏을 그려보았습니다.

다음으로 시계열분석을위해 ARIMA모델에 대해 설명을 드리겠습니다.

ARIMA(Auto Regressive Intergated Moving Average Model) = AR(Auto Regressive Model) + MA (Moving Average Model) + Difference (차분)가 합쳐진 모델입니다.

1) AR : 자기회귀모델

– p 시점 전의 자료가 현재 시점의 데이터에 영향을 주는 자기회귀모델

– 단점 : 외부적인 변동이 일어날 수 있음

– ACF(Auto corr func) : 자기상관함수 / 특정 구간내 데이터간 상관관계

ex) 교회수 증가 범죄율증가 (상관관계만 보면 높다 나오지만 인구가 증가해서 교회도 증가하고 범죄율도 증가한것)

두개의 종속변수(독립적변수)가 상관관계가 있는것 처럼 나올 수 있다.

– PACF(particial Auto corr func) : 위의 문제를 방지하기위해 나온 것, 부분자기상관함수

2) MA : 이동평균모델

– 일정한 구간 데이터의 평균을 계산해, 미래를 예측하는 모델

3) Difference : 차분

– 정상적이지 못한 데이터에 대해서 차분을 실시해 데이터를 어느정도 정상적으로 만들어줌 (정상성을 잡아주는)

ARIMA모델의 특징은 다음과 같습니다.

1. 단기예측에 적합

2. 계절적 변동요인 (주기적 변동)

3. Sample수 > 50

4. 정성적자료

-> 차분

다음은 시계열 분해에 대해 설명을 드리겠습니다.

들어가기전에 데이터프레임에 만약 null값이 있을때는 보통 fillna를 통해 평균값을 대체하거나 하지만 시계열모델은

.fillna(method=’bfill’)를 통해 이전값을 대체자료로 넣거나

.fillna(method=’ffill’)를 통해 다음값을 대체자료로 넣으니 참고하시면 좋을 것 같습니다!

시계열 분해

1. Trend (추세요인)

2. Seasonality (계절요인)

3. Cycle/Residual (불규칙 또는 순환 요인)

이 있습니다.

위에서 생성된 데이터프레임을 날짜를 인덱스로 다시 생성한 후 resample을 1day의 평균으로 생성합니다.

통계적모델을 import합니다.

아래와 같이 각각 추세, 계절성, 잔차등의 시계열 분해가 이루어집니다.

각각의 p, d, q라는 파라미터 중 어떤 모델의 성능이 가장 좋은지 알아보기 위해 파라미터를 생성하였습니다.

아래와 같이 이중 for문을 통해 SARIMAX라는 모델을 적용해 위에서 만들어낸 파라미터를 각각 대입하여 어떤 모델일때 성능이 가장 좋은지 확인하는 과정입니다.

아래는 위의 과정을 데이터프레임으로 바꾸고 AIC가 낮은 순으로 정렬한 모습입니다. 통계적으로 모델의 성능을 따질 때는 보통 AIC가 낮은 값이 성능이 좋다고 볼 수 있습니다.

아래는 모델의 결과를 요약한 내용입니다. 비전공자이신 분들은 각각이 무엇을 의미하는지 어려울 수 있기 때문에 설명을 드리도록 하겠습니다.

우선 z값은 분산에 대한 오차로 p값을 판별할 때의 검정 통계량을 활용할 수 있습니다.

위의 내용들을 이해하기 위해서는 간단하게 Likelihood(최대우도)라는 개념이 필요합니다.

– Likelihood (최대우도) : 특정 데이터가 모수로부터(모집단) 추출되었을 가능도

– 특정값에대한 분포의 확률을 추정합니다.(연속 확률 밀도 함수 pdf의 y값)

– 확률분포에서 y값을 계산하는것 입니다.

ex) 80점인 학생이 이 분포의 몇 %다.

– AIC (AKaike Information Criterion) : 데이터에 대한 모델의 상대적 품질

– AIC = -2 ln(L) + 2k(특정 파라미터 값)

– 값이 낮을수록 모형 적합도가 높은것을 의미 합니다.

– BIC (Bayes Information Criterion)

– BIC = -2 ln(L) + log(n)p

– 변수가 더 많은 경우. AIC에 더 많은 패널티를 부여해 계산된 값입니다.

– HQIC (Hannan Quinn Information Criterion)

– HQIC = -2 ln(L) + 2k ln(ln(n))

위의 모델에서 사용한 SARIMAX는

SARIMAX(seasonal arima 모델)

– 트렌드여부에대해 arima모델을 생성하고 계절성에 대해서도 arima모델을 추가적으로 수행한 모델입니다.

– order가 계절성이 없는 파라미터가 들어가고 + 계절성이 들어간 파라미터를 추가해서 만든 모델입니다.

– Order (p,d,q), Seasonal Order (P,D,Q,M)

– p : AR에서의 p값 (p 구간 내 데이터 사이의 상관관계)

– d : 차분

– q : q MA PACF 편상관계수 q 값

– P : 계절성주기에서의 패턴이 어떻게 되는가?

– D : 계절성여부

– Q : 주기의 패턴이 얼마나 반복되는지 계절성이 얼마나 반복되는지 횟수

– M : 계절성 주기가 어떻게 되느냐 주기의 값

– Ljung – Box Test : 일정 기간동안 관측치가 랜덤이고, 독립적인지 여부를 검정

– 귀무 : 데이터가 상관관계를 나타내지 않는다.

– 대립 : 데이터가 상관관계를 나타낸다.

– p.value(귀무가설이 참일 확률) < 0.05 (유의수준) - Jarque Bera Test : 왜도와 첨도가 정규분포와 일치하는지 가설검정 - SARIMAX : 잔차의 분포가 정규분포인가 - 귀무 가설 : 해당 잔차(residual)는 정규분포와 일치한다. - 대립 가설 : 해당 잔차(residual)는 정규분포와 일치하지 않는다. - p.value < 0.05 정규분포를 띄지 않는다. - Skew : 왜도 (얼마나 뾰족한가 얼마나 한쪽으로 쏠려있는가) - Kurtois : 첨도 여기까지 python을 이용한 시계열분석을 공부한 내용입니다. 데이터 분석에서 중요한, 시계열데이터분석을 하는데 조금이나마 도움이 되었으면 합니다. 긴글 읽어주셔서 감사합니다 🙂

[Python Data Analysis 분석 8] 데이터 분석 – 파이썬 시계열분석

차트의 x축 시간만큼을 토대로, 이후 어떤 수치로 변할지 예측합니다.

파이썬 라이브러리 중 대표적으로 쓰이는 ARIMA를 활용합니다. (상세 알고리즘은 생략합니다.)

ARIMA(Autoregressvie integrated MovingAverage)

AR(자기상관) : 이전의 값이 이후의 값에 영향을 미치고 있는 상황

MA(이동평균) : 랜덤 변수의 평균값이 지속적으로 증가하거나 감소하는 추세

차분은 비정상성을 정상성으로 만들기 위해, 관측값들의 차이를 계산하는 것.

(아래 그림처럼 비정상성에서 정상성으로)

[시계열 분석] 2. 최소 제곱법을 이용한 시계열 분석 with Python

이번 포스팅에서는 기존 최소 제곱법을 이용하여 시계열 데이터를 분석하는 방법과 파이썬(Python)으로 구현하는 방법에 대해서 알아보고자 한다.

여기서 다루는 내용은 다음과 같다.

1. 선형 추세 분석

2. 계절성을 가진 데이터 분석

1. 선형 추세 분석

시계열 데이터 $(Y_t : t=1, \ldots, n)$가 주어졌다고 하자. 이때 $y_t$에 대하여 다음과 같은 가정을 해보자. $$Y_t = \mu_t + X_t$$

여기서 $\mu_t$는 Deterministic Trend(시간 $t$에 대한 함수라고 생각하자)이고 $X_t$는 평균이 0이고 분산이 $\sigma^2$인 IID(Indepedent and Indentical Distributed) Process이다.

– 추정 방법 –

시계열 데이터에 선형 추세만 존재한다고 판단될 경우 $\mu_t = b_0 + b_1t$라 가정하고 최소 제곱법을 이용하여 $b_0와 b_1$을 추정한다. 즉, 다음과 같이 $Q$를 최소화하는 $b_0, b_1$을 찾는다.

$$Q(b_0, b_1) = \sum_{t=1}^N(Y_t – b_0 – b_1t)^2$$

미분을 이용하면 $Q$를 최소화하는 값은 아래와 같다.

$$\hat{b}_0 = \bar{Y} – \hat{b}_1\bar{t}, \;\;\; \hat{b}_1=\frac{\sum_{t=1}^n(Y_t-\bar{Y})(t-\bar{t})}{\sum_{t=1}^n(t-\bar{t})^2}$$

여기서 $\bar{Y} = \sum_{t=1}^nY_t/n, \;\; \bar{t} = (n+1)/2$이다.

– 예측 방법 –

시계열 데이터 분석에서는 미래 시점에 대한 예측값을 추정하는 것에 매우 큰 관심이 있다. $n+l$ 시점에서 예측값 $\hat{Y}_{n+l}$은 다음과 같다.

$$\hat{Y}_{n+l} = \hat{b}_0+\hat{b}_1(n+l)$$

$$X =

\begin{pmatrix}

1 & 1 \\

1 & 2 \\

\vdots & \vdots \\

1 & t

\end{pmatrix}, x_{n+l} = (1, n+l)^t$$

이고 $X_t$가 추가적으로 정규분포를 따른다고 가정하자. 예측값에 대한 (1-$\alpha$)% 예측 구간은 다음과 같이 구한다.

$$\hat{Y}_{n+l} \pm t_{\alpha/2}(n-2)s\sqrt{1+x_{n+l}^t(X^tX)^{-1}x_{n+l}}$$

여기서 $t_{\alpha/2}(n-2)$는 자유도가 $n-2$인 $t$분포에서 오른쪽 꼬리값이 $\alpha/2$가 되게 하는 값이고

$$s^2 = \frac{\sum_{t=1}^n(Y_t-\hat{b}_0-\hat{b}_1t)^2}{n-2}$$

이다.

– 실제 데이터 분석 –

이번엔 실제 데이터를 이용해서 선형 추세를 모델링해보자. 먼저 데이터를 다운받자. 이 데이터는 1980년부터 2015년까지 오스트레일리아 방문자 수를 나타낸 것이다.

australia_visitor.csv 0.00MB australia_visitor_description.txt 0.00MB

필요한 모듈을 임포트한다.

import pandas as pd import numpy as np import matplotlib.pyplot as plt import statsmodels.api as sm from scipy.stats import t

데이터를 불러온다.

df = pd.read_csv(‘./dataset/australia_visitor.csv’)

데이터를 보면 알겠지만 날짜 정보가 포함되어있지 않다. 시계열 데이터를 분석할 때에는 날짜 정보가 추가되어야 시각화할 때도 좋다. 따라서 아래와 같이 날짜를 추가해줘야 한다. date_range 사용 예제는 여기를 참고하자.

start_date = ‘1980-01-01’ end_date = ‘2015-12-31′ df.index = pd.date_range(start_date,end_date,freq=’y’)

날짜가 잘 추가된 것을 확인할 수 있다.

데이터가 어떤 모양인지 확인해보기 위하여 시각화해보자.

fig = plt.figure(figsize=(8,8)) fig.set_facecolor(‘white’) plt.plot(df[‘visitors’],marker=’o’,markerfacecolor=’none’) plt.ylabel(‘Number of Visitors (millons)’) plt.xlabel(‘Time (year)’) plt.show()

증가하는 추세가 뚜렷해보인다.

이제 선형 모형을 적합시켜보자. 먼저 기존의 선형 회귀 모형을 적합할 때처럼 종속변수 $y$와 설명변수로 이루어진 행렬 $X$를 정해준다. $X$에 1로 이루어진 열 벡터를 추가하는 것을 잊지 말자.

df[‘time’] = range(1,len(df)+1) ## time 변수 생성 y = df[‘visitors’] X = df[‘time’] X = sm.add_constant(X)

이제 파라미터들을 추정한다.

time = df[‘time’] mean_t = time.mean() mean_y = y.mean() b1 = np.sum((y-mean_y)*(time-mean_t))/np.sum(np.square(time-mean_t)) b0 = mean_y-b1*mean_t

위 값은 statsmodels의 OLS를 이용하여 구할 수도 있다.

ols_fit = sm.OLS(y,X).fit() b1 = ols_fit.params.time b0 = ols_fit.params.const

이제 예측값과 예측구간을 구해본다. 난 향후 5년까지의 예측값과 95% 예측 구간을 구할 것이다.

future = [1,2,3,4,5] n = len(df) alpha = 0.05 X_tX_inv = np.linalg.inv(X.T.dot(X)) t_val = t.ppf(1-alpha/2,df=n-2) predict_vals = [] upper_limit = [] lower_limit = [] for l in future: predict_val = b0+b1*(n+l) s2 = np.sum(np.square(y-b0-b1*time))/(n-2) x = np.array([[1],[n+l]]) variance_factor = np.sqrt(1+x.T.dot(X_tX_inv.dot(x))) limit = t_val*np.sqrt(s2)*variance_factor[0][0] predict_vals.append(predict_val) upper_limit.append(predict_val+limit) lower_limit.append(predict_val-limit)

결과를 시각화해보자. 이를 위해서는 5년까지에 대응하는 날짜를 만들어줘야 한다.

start_date = ‘2016-01-01’ pred_data = { ‘pred’:predict_vals, ‘ul’:upper_limit, ‘ll’:lower_limit } pred_df = pd.DataFrame(pred_data) pred_df.index = pd.date_range(start_date,periods=future[-1],freq=’Y’) fitted_val = b0+b1*time vals = pd.concat([fitted_val,pred_df[‘pred’]])

다음은 시각화 코드이다. fill_between을 사용하여 예측 구간 사이에 영역을 옅은 파란색으로 채웠다.

fig = plt.figure(figsize=(8,8)) fig.set_facecolor(‘white’) marker_config = dict() marker_config[‘marker’] = ‘o’ marker_config[‘markerfacecolor’] = ‘none’ plt.plot(df[‘visitors’],label=’data’,**marker_config) plt.plot(vals,label=’prediction’,linestyle=’–‘) plt.plot(pred_df[‘ll’],color=’green’,linestyle=’–‘,label=’limit’) plt.plot(pred_df[‘ul’],color=’green’,linestyle=’–‘) plt.fill_between(pred_df.index,pred_df[‘ll’],pred_df[‘ul’],alpha=0.2) plt.legend(loc=’upper left’) plt.ylabel(‘Number of Visitors (millons)’) plt.xlabel(‘Time (year)’) plt.show()

위 코드를 실행하면 아래와 같이 예측값과 예측 구간을 예쁘게 시각화할 수 있다.

2. 계절성을 가진 데이터 분석

이번엔 시계열 데이터에 계절성 패턴만 보인다고 했을 때 모형을 어떻게 적합하는지에 대하여 알아보자. 먼저 시계열 데이터 $(Y_t : t=1, \ldots, n)$에서 주기가 $s$인 계절성을 보인다고 하자. 예를 들어 데이터는 월 단위로 이루어져 있고 1년 주기의 계절성이 보인다고 한다면 $s=12$가 된다.

모형 적합 방법은 더미 변수를 이용한 방법과 삼각함수를 이용한 방법이 있다.

1) 더미 변수를 이용한 방법

– 추정 방법 –

시계열 데이터 $(Y_t : t=1, \ldots, n)$를 다음과 같이 모델링할 수 있다.

$$\mu_t = b_0 + b_1 + \cdots + b_{s-1}$$

여기서 $b_j = I(t = j (\text{mod } s)), \;j=0, 1, \ldots, s-1$이다. 즉, 계절성 패턴만 보이는 시계열 데이터의 경우 더미 변수를 이용하여 모델링할 수 있는 것이다. 참고로 나는 마지막 주기에 대한 파라미터 $b_s$를 제외하였다. 이에 제외하는 모수에 따라서 추정값이 달라질 수 있지만 적합값에는 변화가 없다.

각 모수는 최소 제곱법을 이용하여 추정할 수 있다. 먼저 $b = (b_0, b_1, \ldots, b_{s-1})$, $y=(Y_1, Y_2, \ldots, Y_n)$ 그리고 $n \times s$ 행렬 $X$의 $t$번째 행을 $x_t$라 하자. 또한 $j$를 아래 식을 만족한다고 하자.

$$t = j \;\;(\text{mod } s)$$

이때 앞서 가정한 모형으로 인하여 $x_t$의 첫 번째 원소와 $j$번째 원소는 1이고 나머지는 0이다. 따라서 최소 제곱 추정량 $\hat{b}$는 다음과 같이 구할 수 있다.

$$\hat{b} = (X^tX)^{-1}X^ty$$

– 예측 방법 –

시점 $t’$에 대해서 $Y_{t’}$의 예측값 $\hat{Y}_{t’}$은 다음과 같이 계산한다.

$$\hat{Y}_{t’} = \begin{cases} \hat{b}_0, & \text{if } t’ = 0\;\;(\text{mod }s) \\ \hat{b}_0+\hat{b}_j, & \text{if } t’ = j(

eq 0) \;\;(\text{mod }s)\end{cases}$$

($1-\alpha$)% 예측구간은 다음과 같이 구할 수 있다.

$$\hat{Y}_{t’} \pm t_{\alpha/2}(n-s)\hat{\sigma}\sqrt{1+\tilde{x}_j^t(X^tX)^{-1}\tilde{x}_j}$$

여기서 $t_{\alpha/2}(n-s)$는 자유도가 $n-s$인 $t$분포에서 오른쪽 꼬리값이 $\alpha/2$가 되게 하는 값이고 $\hat{\sigma}^2 = \sum_{t=1}^n(y_t-x_t^t\hat{b})^2/(n-s)$이며 $\tilde{x}_j$는 첫 번째 원소와 $j$번째 원소가 1이고 나머지는 0이며 길이가 $s$인 벡터이다(아래 첨자 $t$는 시간을 나타내며 위 첨자 $t$는 Transpose를 나타낸 것이며 $t = j \;\;\text{mod } s$이다).

– 장단점 –

더미 변수를 사용하는 방법은 해석이 좋다는 장점이 있지만 주기가 커질 경우, 즉 $s$가 커질 경우 추정해야 할 파라미터의 개수가 많아져 추정된 모형이 불안정할 수 있다.

2) 삼각함수를 이용한 방법

이번엔 삼각함수를 이용하여 계절성만을 갖는 시계열 데이터를 모델링하는 방법에 대해서 알아보자.

– 추정 방법 –

삼각함수를 이용하는 방법은 $\mu_t$를 다음과 같다고 가정하는 것에서 출발한다.

$$\mu_t = b_0+b\cos \left(\frac{2\pi t}{s}+\phi\right)\tag{1}$$

여기서 추정해야 할 파라미터는 $b$와 $\phi$이다. 하지만 식 (1)은 파라미터에 대해서 선형이 아니므로 적절하게 변형해줘야 한다. 삼각함수에 덧셈 정리를 이용하여 식 (1)을 변형해보자.

$$\begin{align}b\cos \left(\frac{2\pi t}{s}+\phi\right) &= b\left\{\cos \left(\frac{2\pi t}{s}\right)\cos \phi – \sin \left(\frac{2\pi t}{s}\right)\sin \phi\right\} \\ &= b_1\cos \left(\frac{2\pi t}{s}\right) + b_2 \sin \left(\frac{2\pi t}{s}\right)\end{align}$$

여기서 $b_1 = b\cos \phi, b_2 = -b \sin \phi$ 이다. 이제 추정해야 할 파라미터는 $b_1, b_2$이며 파라미터에 대하여 선형 식이 완성되었다. 참고로 $b_1, b_2$를 이용하여 식 (1)로 바꾸고 싶다면 $ b = \sqrt{b_1^2+b_2^2}$, $\phi = \tan ^{-1}(-b_2/b_1)$를 이용하자.

$n\times 3$ 행렬 $X$를 다음과 같이 설정하자.

$$X =

\begin{pmatrix}

1 & \sin \left(\frac{2\pi\cdot 1}{s}\right) & \cos \left(\frac{2\pi\cdot 1}{s}\right)\\

1 & \sin \left(\frac{2\pi\cdot 2}{s}\right) & \cos\left(\frac{2\pi\cdot 2}{s}\right)\\

\vdots & \vdots & \vdots \\

1 & \sin \left(\frac{2\pi\cdot n}{s}\right) & \cos\left(\frac{2\pi\cdot n}{s}\right)

\end{pmatrix}$$

여기서 $\mathbf{b} = (b_0, b_1, b_2)$, y = (Y_1, \ldots, Y_t) 최소 제곱 추정량 $\hat{\mathbf{b}}$는 다음과 같다.

$$\mathbf{b} = (X^tX)^{-1}X^ty$$

– 예측 방법 –

시점 $t’$에 대한 예측값 $\hat{Y}_{t’}$은 다음과 같이 구할 수 있다.

$$\hat{Y}_{t’} = x^t\mathbf{b}$$

여기서 $x = (1, \sin (2\pi t’/s), \cos (2\pi t’/s))^t$이다.

($1-\alpha$)% 예측구간은 다음과 같이 구할 수 있다.

$$\hat{Y}_{t’} \pm t_{\alpha/2}(n-s)\hat{\sigma}\sqrt{1+x^t(X^tX)^{-1}x}$$

– 장단점 –

앞서 살펴보았던 더미 변수를 사용하는 방법에 비해서 추정해야 할 파라미터의 수가 적다는 장점이 있다. 따라서 최종 모형이 안정적(stable)이다. 하지만 설명 변수에 삼각함수가 포함되어있어 모형의 해석이 어렵다는 단점이 있다.

반응형

3) 실제 데이터 분석

먼저 여기에서 사용할 데이터를 다운받자. 미국 아이오와주 더뷰크(Dubuque) 도시의 1964년 1월부터 1975년 12월까지 온도를 나타내는 데이터이다.

dubuque_temperature.csv 0.00MB dubuque_temperature_description.txt 0.00MB

필요한 모듈을 임포트하고 데이터를 불러온다.

import pandas as pd import numpy as np import matplotlib.pyplot as plt import statsmodels.api as sm from scipy.stats import t

df = pd.read_csv(‘./dataset/dubuque_temperature.csv’)

데이터를 보면 날짜 정보가 포함 안되어 있다.

따라서 날짜를 인덱스로 넣어준다.

start_date = pd.to_datetime(‘1964-01-01’) end_date = pd.to_datetime(‘1975-12-31′) df.index = pd.date_range(start_date,end_date,freq=’m’)

인덱스에 날짜가 잘 들어갔다.

데이터가 어떤 모양을 갖고 있는지 시각화해보자.

fig = plt.figure(figsize=(8,4)) fig.set_facecolor(‘white’) plt.plot(df[‘tempdub’],marker=’o’,markerfacecolor=’none’) plt.show()

계절성 패턴을 따르는 데이터의 표본이라 할 수 있다. 이제 앞서 살펴본 2가지 방법을 이용하여 모델링해보자. 먼저 더미 변수를 사용하여 모형을 만들어보자.

– 더미 변수를 사용한 모델링 –

난 time이라는 열을 만들고 1월부터 11월에 해당하는 더미 변수를 만들었다(선형 종속 문제로 인하여 12월은 제외하였다). 그리고 선형 회귀 모형에서처럼 종속 변수와 설명 변수 행렬을 지정해주었다. 설명 변수 행렬에는 1로 이루어진 열을 추가해줘야 한다.

df[‘time’] = range(1,len(df)+1) ## time 변수 생성 y = df[‘tempdub’] season = [‘Jan’, ‘Feb’, ‘Mar’, ‘Apr’, ‘May’, ‘Jun’, ‘Jul’, ‘Aug’, ‘Set’, ‘Oct’, ‘Nov’] temp_data = dict() period = 12 for i, s in enumerate(season): temp = [] for time in df[‘time’]: if time%period == i+1: temp_val = 1 else: temp_val = 0 temp.append(temp_val) temp_data[s] = temp temp_df = pd.DataFrame(temp_data) temp_df.index = pd.date_range(start_date,end_date,freq=’m’) X = temp_df X = sm.add_constant(X)

이제 파라미터를 추정한다. 추가적으로 1964년 1월부터 1975년 12월까지의 적합값도 추정하였다.

X_tX_inv = np.linalg.inv(X.T.dot(X)) bs = X_tX_inv.dot(X.T.dot(y.values)) ## estimated parameters fitted_val = X.dot(bs) ## fitted values

다음으로 1976년 1월부터 12월까지의 예측값과 예측구간을 구해보자.

future = list(range(1,13)) n = len(df) alpha = 0.05 t_val = t.ppf(1-alpha/2,df=n-len(bs)) predict_vals = [] upper_limit = [] lower_limit = [] s2 = np.sum(np.square(y-fitted_val))/(n-len(bs)) for l in future: if l%period == 0: predict_val = bs[0] else: predict_val = bs[l%period]+bs[0] x = np.zeros(period) x[0] = 1 if l%period != 0: x[l%period] = 1 x = np.expand_dims(x,axis=1) variance_factor = np.sqrt(1+x.T.dot(X_tX_inv.dot(x))) limit = t_val*np.sqrt(s2)*variance_factor[0][0] predict_vals.append(predict_val) upper_limit.append(predict_val+limit) lower_limit.append(predict_val-limit)

시각화를 위해 1976년 1월부터 12월에 해당하는 날짜를 인덱스로 하는 데이터 프레임을 만들었고 추가적으로 예측값과 적합값을 하나로 합쳤다.

strt_date = ‘1976-01-01’ pred_data = { ‘pred’:predict_vals, ‘ul’:upper_limit, ‘ll’:lower_limit } pred_df = pd.DataFrame(pred_data) pred_df.index = pd.date_range(strt_date,periods=future[-1],freq=’m’) vals = pd.concat([fitted_val,pred_df[‘pred’]])

이제 결과를 시각화해보자. 아래는 시각화 코드이다.

fig = plt.figure(figsize=(10,5)) fig.set_facecolor(‘white’) marker_config = dict() marker_config[‘marker’] = ‘o’ marker_config[‘markerfacecolor’] = ‘none’ plt.plot(df[‘tempdub’],label=’data’,**marker_config) plt.plot(vals,label=’prediction’,linestyle=’–‘) lineconfig = dict() lineconfig[‘linestyle’] = ‘–‘ lineconfig[‘linewidth’] = 1 plt.plot(pred_df[‘ll’],color=’green’,**lineconfig,label=’limit’) plt.plot(pred_df[‘ul’],color=’green’,**lineconfig) plt.fill_between(pred_df.index,pred_df[‘ll’],pred_df[‘ul’],alpha=0.2) plt.legend(loc=’upper left’) plt.ylabel(‘Number of Visitors (millons)’) plt.xlabel(‘Time (year)’) plt.show()

모형 적합이 꽤나 준수한 것 같다.

– 삼각함수를 사용한 모델링 –

이제 삼각함수를 이용하여 모델링해보자. 과정은 더미 변수를 사용한 모델링과 비슷하다. 먼저 time 열과 설명변수 행렬 $X$를 만들어준다. 이때 사인값과 코사인값이 정확히 0이 안되는 문제가 있어서 round 함수를 이용하여 소수 5째 자리만 구했다.

df[‘time’] = range(1,len(df)+1) ## time 변수 생성 f = 12 sin = [] cos = [] for time in df[‘time’]: angle = 2*np.pi*time/f sin.append(round(np.sin(angle),5)) cos.append(round(np.cos(angle),5)) temp_data = { ‘sin’ : sin, ‘cos’ : cos } temp_df = pd.DataFrame(temp_data) temp_df.index = pd.date_range(start_date,end_date,freq=’m’) X = sm.add_constant(temp_df)

최소 제곱 추정량과 적합값을 구한다.

X_tX_inv = np.linalg.inv(X.T.dot(X)) bs = X_tX_inv.dot(X.T.dot(y.values)) ## estimated parameters fitted_val = X.dot(bs) ## fitted values

다음으로 1976년 1월부터 12월까지의 예측값과 예측구간을 구하고 시각화한다. 앞서 더미 변수를 이용한 모델링에서 했던 것과 거의 비슷하다.

future = list(range(1,13)) n = len(df) alpha = 0.05 t_val = t.ppf(1-alpha/2,df=n-len(bs)) predict_vals = [] upper_limit = [] lower_limit = [] s2 = np.sum(np.square(y-fitted_val))/(n-len(bs)) for l in future: sin_val = round(np.sin(2*np.pi*l/f),5) cos_val = round(np.cos(2*np.pi*l/f),5) x = np.array([1,sin_val,cos_val]) x = np.expand_dims(x,axis=1) variance_factor = np.sqrt(1+x.T.dot(X_tX_inv.dot(x))) limit = t_val*np.sqrt(s2)*variance_factor[0][0] predict_val = x.T.dot(bs)[0] predict_vals.append(predict_val) upper_limit.append(predict_val+limit) lower_limit.append(predict_val-limit)

strt_date = ‘1976-01-01’ pred_data = { ‘pred’:predict_vals, ‘ul’:upper_limit, ‘ll’:lower_limit } pred_df = pd.DataFrame(pred_data) pred_df.index = pd.date_range(strt_date,periods=future[-1],freq=’m’) vals = pd.concat([fitted_val,pred_df[‘pred’]])

fig = plt.figure(figsize=(10,5)) fig.set_facecolor(‘white’) marker_config = dict() marker_config[‘marker’] = ‘o’ marker_config[‘markerfacecolor’] = ‘none’ plt.plot(df[‘tempdub’],label=’data’,**marker_config) plt.plot(vals,label=’prediction’,linestyle=’–‘) lineconfig = dict() lineconfig[‘linestyle’] = ‘–‘ lineconfig[‘linewidth’] = 1 plt.plot(pred_df[‘ll’],color=’green’,**lineconfig,label=’limit’) plt.plot(pred_df[‘ul’],color=’green’,**lineconfig) plt.fill_between(pred_df.index,pred_df[‘ll’],pred_df[‘ul’],alpha=0.2) plt.legend(loc=’upper left’) plt.ylabel(‘Number of Visitors (millons)’) plt.xlabel(‘Time (year)’) plt.show()

삼각함수를 이용한 모델링도 적합이 잘된 것 같다.

지금까지 최소 제곱법을 이용한 시계열 모델링 방법을 알아보았다. 시계열 데이터가 $Y_t = \mu_t + X_t$ 와 같은 구조를 따른다고 할 때 주의해야 할 점은 오차항에 해당하는 $X_t$가 반드시 독립이어야 한다는 것이다. 따라서 오차항이 독립성을 만족하지 않는다면 지금까지 살펴보았던 모델링 방법에 문제가 생길 소지가 있다. 따라서 모형을 적합한후 오차항이 독립인지 아닌지 확인해야한다. 특히 시계열 데이터에서는 오차항이 종속인 경우가 많은데 그러한 종속성 중에서 특히 자기 상관(Autocorrelation)성을 보이는 경우가 많이 있다. 다음 포스팅에서는 오차항이 자기 상관성을 보이는지 아닌지 검정하는 방법에 대해서 알아보고자 한다.

키워드에 대한 정보 시계열 분석 python

다음은 Bing에서 시계열 분석 python 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 시계열 데이터 분석 기초 Part.1 #Python #파이썬

  • 데이터 분석
  • 데이터분석
  • 주피터
  • 주피터노트북
  • jupyter
  • jupyter notebook
  • python
  • 파이썬
  • 파이선
  • data
  • 데이터
  • 인공지능
  • 분식이
  • 분석
  • 데이터 투데이
  • 매일 10분 데이터
  • 데이터 전처리
  • 데이터전처리
  • 데이터가공
  • 데이터 가공
  • 엑셀
  • 파이썬 데이터
  • 파이썬 데이터 불러오기
  • 파이썬 설치
  • 아나콘다 설치
  • 아나콘다3
  • 아나콘다
  • python 아나콘다
  • 빅데이터
  • 데이터 교육
  • ainbd
  • 텐서
  • 판다스
  • pandas
  • 넘피
  • numpy
  • sklearn
  • 사이킷 런
  • 라이브러리
  • 패키지
  • 자료 구조
  • 데이터 시각화
  • 시각화
  • 그래프 출력
  • 시각화 분석
  • seaborn
  • 데이터 스테이션
  • 파이썬 데이터분석
  • 파이썬 판다스
  • python pandas
  • pandas 강좌
  • 파이썬 엑셀
  • pandas 데이터 분석
  • 판다스 데이터 분석
  • 파이썬 머신러닝
  • python pandas tutorial
  • 시계열
  • time series
  • ARIMA
  • prophet

시계열 #데이터 #분석 #기초 #Part.1 ##Python ##파이썬


YouTube에서 시계열 분석 python 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 시계열 데이터 분석 기초 Part.1 #Python #파이썬 | 시계열 분석 python, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  슬픈 로맨스 영화 | 눈물을 참을 수 없는 3개의 슬픈 이별 장면 (국내 영화 편) 상위 242개 베스트 답변

Leave a Reply

Your email address will not be published. Required fields are marked *