No video

통계데이터분석 - 시계열분석 - 시계열 데이터 - ts 🔑 time series analysis | freqeuncy | 주기 | 지수예측모델 | ARIMA

  Рет қаралды 13,576

곽기영

곽기영

Күн бұрын

[R을 이용한 통계데이터분석]
시계열분석(time series analysis)은 시간의 흐름에 따라 일정한 간격으로 사건을 관찰하여 기록한 데이터(시계열 데이터)를 바탕으로 미래의 관측값을 예측(forecasting)하는 분석 기법입니다. 시계열은 어떠한 사건에 관한 시간적 변화를 나타내므로 어느 한 시점에서의 관측값은 그 이전까지의 관측값에 의존하게 됩니다. 따라서 시계열분석에서는 과거의 일련의 관측값을 분석하여 이를 모델링하고, 이 예측모델을 바탕으로 미래의 관측값을 예측합니다. 다음과 같은 함수에 대한 설명이 포함되어 있습니다: ts(), plot(), start(), end(), frequency(), deltat(), time(), cycle(), window().
📢 R과 RStudio 설치는 'R 프로그래밍 / R 기초 - 설치' 강좌를 참고하세요( • R 프로그래밍 / R 기초 - 설치 🔑 ... ).
📚 『곽기영』 채널의 동영상 강의는 다음 도서를 바탕으로 하고 있습니다. 책의 목차를 포함한 책자에 대한 소개는 도서명 옆의 링크를 참고해주세요. 💕
『R 기초와 활용』 (product.kyobob...)
『R을 이용한 통계데이터분석』 (product.kyobob...)
『R을 이용한 머신러닝과 텍스트마이닝』 (product.kyobob...)
『R을 이용한 웹스크레이핑과 데이터분석』 (product.kyobob...)
『SPSS를 이용한 통계데이터분석』 (product.kyobob...)
『소셜네트워크분석』 (product.kyobob...)
#R프로그래밍 #데이터분석 #통계 #머신러닝 #데이터애널리틱스 #데이터사이언스

Пікірлер: 20
@kykwahk
@kykwahk Жыл бұрын
3:51 예제 데이터 및 데이터 구조 설명 URL jse.amstat.org/datasets/utility.dat.txt jse.amstat.org/datasets/utility.txt
@byung-kwonjung9379
@byung-kwonjung9379 3 жыл бұрын
시계열자료에 대하여 전반적인 개요를 간단명료하게 개념을 알려주어 감사합니다.
@user-gx9hk8gt3k
@user-gx9hk8gt3k 2 жыл бұрын
고맙습니다. ^^
@user-gv6yx3oi3j
@user-gv6yx3oi3j 3 жыл бұрын
좋은 영상 감사합니다.
@user-ll1gc8pw6x
@user-ll1gc8pw6x 3 жыл бұрын
유익한 강의 감사합니다.
@runner4414
@runner4414 3 жыл бұрын
영상감사합니다. 파이썬으로 강의되신 내용이 있다면 좋겠네요
@jang.c.g9552
@jang.c.g9552 2 жыл бұрын
교수님 강의 잘 들었습니다.. 질문이 있습니다. 교수님께서 설명하시면서 쓰시는 프로그램이 어떤 것인지 알고 싶습니다. 전공은 다르지만 저도 그 프로그램을 배워보고 싶습니다...
@kykwahk
@kykwahk 2 жыл бұрын
R이라는 언어입니다. 데이터분석 언어로서 많이 사용되고 있습니다. 아래 동영상부터 시작하시면 됩니다. R 프로그래밍 / R 기초 - 설치(kzfaq.info/get/bejne/qbKPfsZknJ_Wj2g.html) 위 강의를 포함한 R 언어와 관련된 동영상은 아래 재생목록에서 볼 수 있습니다. R 프로그래밍 / R 기초
@user-jx2tt8ze5w
@user-jx2tt8ze5w 2 жыл бұрын
교수님 영상 잘 봤습니다! 저는 국내 코로나19 누적 감염자수를 월단위 시계열로 나타내 해당 곡선을 곰페르츠 모델을 적용한 곡선에 나타내 비교해 보려고 합니다. 곰페르츠 모델을 r에서 구현 한다면 한계점 k의 값을 적용시켜야 하는데 이 과정이 잘 이해가 안가네요.. 혹시 설명이 가능 할까요?
@kykwahk
@kykwahk 2 жыл бұрын
Gompertz 성장곡선모델을 직접 적용해본 적은 없어서 자세한 답변을 드리기는 어렵습니다만 성장곡선을 도출하기 위한 패러미터 추정 방식을 그대로 적용하면 되지 않을까 싶네요. Gompertz 성장곡선모델에 대해 잘 아시는 분들은 댓글 부탁드려요.
@user-kf8tx7rg7u
@user-kf8tx7rg7u 2 жыл бұрын
영상 잘 봤습니다. 혹시 시계열데이터로 회귀분석을 할 수는 없나요?? 시계열분석을 통해 미래값을 예측하는 것이 아니라 시계열데이터안에서 어떤 종속변수가 독립변수에 영향을 주는지 알 수 있는 일반적인 회귀분석이요!
@kykwahk
@kykwahk 2 жыл бұрын
네~ 예측변수에 해당되는 다른 시계열 데이터가 있다면 가능합니다.
@user-kf8tx7rg7u
@user-kf8tx7rg7u 2 жыл бұрын
@@kykwahk 그러니까 종속변수도 시계열 데이터라면 가능하다는 말씀이시죠? 제가 계속 이 부분에 대해서 찾아보는데 도저히 나오지가 않고 미래값 예측만 나와서요ㅠㅠ
@wendeenergie8355
@wendeenergie8355 2 жыл бұрын
혹시 특정 시간 및 분단위에서 시작하게 만들려면 어떻게 해야하나요? 예를 들어 2012-01-01 04:05:00으로요
@kykwahk
@kykwahk 2 жыл бұрын
먼저 frequency에 대해 정확히 이해할 필요가 있습니다. frequency는 "cycle"당, 즉 기준이 되는 단위 시간당 관측값의 개수를 나타냅니다. 지금처럼 분 단위의 관측값을 가지고 있다면 그 관측된 분 단위의 데이터가 먼저 어떤 주기(seasonality라고도 합니다)를 갖고 있는지 결정해야 합니다. 만약 시간을 주기로 갖는다면(hourly data, 즉 hourly seasonality)면 frequency=60, 일간 주기를 갖는다면(daily) frequency=24*60=1440, 주간 주기를 갖는다면(weekly) frequency=24*60*7=10080, 연간 주기를 갖는다면 frequency=24*60*365.25=525960이 됩니다. 시계열 데이터의 시작 시점이 "2012-01-01 04:05:00"이라면 이는 관측된 데이터가 분 단위로 측정되었으면서 연간 주기를 갖고 있는 것으로 가정하는 것처럼 보입니다. 연도부터 분까지 모두 표현되어 있으니까요(사실 분 데이터라면 시간 단위, 일 단위 정도가 적절할 것 같습니다만... 아무튼...). 그러면 시작 시점을 분 단위로 환산해서 지정해줘야 합니다. 물론 frequency도 그에 맞춰 연간 주기를 갖는 것으로 지정해야 하고요. 예를 들면, 다음과 같이 시계열 데이터를 생성할 수 있습니다. > tsdata str(tsdata) Time-Series [1:5259600] from 2012 to 2022: -0.5667 1.8975 -0.259 0.0367 0.8304 ... > print(tsdata, max=10) Time Series: Start = c(2012, 245) End = c(2022, 244) Frequency = 525960 [1] -0.56674935 1.89754132 -0.25904980 0.03666246 0.83037269 -0.09636472 [7] 1.80443389 0.63836134 0.97531930 -1.42490889 [ reached getOption("max.print") -- omitted 5259590 entries ] 여기에서 rnorm(24*60*365.25*10)은 10년치 데이터를 임의로 생성한 것입니다. 시작 시점 "2012-01-01 04:05:00"은 분 단위로 환산했을 때 2012년의 245분째에 해당합니다.
@wendeenergie8355
@wendeenergie8355 2 жыл бұрын
@@kykwahk 답장 감사드립니다! 정말 자세하게 달아주셨습니다! 저는 그래서 형성할 때 TS_Frame % as.tibble 이렇게 생성하였는데 nsdiffs 함수에 적용하려고 하니 frequency가 0.003333으로 나와서 ㅜㅜ 이게 계속 stack overflow도 뒤져보니 xts의 경우 분/초단위까지 index로 변환시켜주는 대신 1미만으로만 표현되서 반영이 불가하더라고요 ㅜㅜ 통계학 지식없이... 수리모델 세우는 일만 하다가 무식하게 덤볐더니.. .어렵네요 ㅜㅜ
@user-uu3ej8hd3r
@user-uu3ej8hd3r 2 жыл бұрын
안녕하세요 최근 빅데이터 모델링 관련해서 공부를 많이 하고 있는 학생입니다. 다름이 아니라 시계열 데이터는 전처리를 처음해봐서 어떻게 해야할지 몰라 질문 드립니다. 예를 들어 100개의 기업의 지출내역 데이터가 2011년부터 2020년까지 연간 단위로 있다고 가정을 합니다. 이 때 총 소비비용이 반응변수이고, 여러 자잘한 소비내역들을 설명변수로 하여 2021년 각 기업별 총 소비비용을 예측 한다고 할 때, 전처리를 어떻게 해야할까요? 각 데이터들은 하나의 csv파일로 구성되어 있고 총 2011년부터 2020년까지 10개의 csv 파일을 현재 보유중인 상황입니다. 이 때, 이 10개의 데이터를 하나의 데이터로 조인하여 모델링을 할 수 있을까요? 만약에 조인을 한다면 year 변수를 만들어서 2011년부터 2020년까지 줄세우기 식으로 만들어야 할까요 아니면 다른 방법이 있을까요? 결국 목적은 각 기업별로 예측값을 추출해내야되는데요.
@kjy1665
@kjy1665 3 жыл бұрын
시계열 그래프를 그리고싶습니다. 일별 데이터로 주가그래프를 그리고싶은데 이럴땐 frequency를 어떻게 설정해야하나요?? 1년 365일 중에 거래일이 약 250일정도인데... 그래프 그릴 때 x축에 시간이 안맞습니다ㅠ
@kykwahk
@kykwahk 3 жыл бұрын
예를 위해 테슬라의 2020년 주가 데이터를 다음과 같이 다운로드했습니다. > library(quantmod) > start end getSymbols("TSLA", src="yahoo", from=start, to=end) [1] "TSLA" > head(TSLA, 3) TSLA.Open TSLA.High TSLA.Low TSLA.Close TSLA.Volume TSLA.Adjusted 2020-01-02 84.900 86.140 84.342 86.052 47660500 86.052 2020-01-03 88.100 90.800 87.384 88.602 88892500 88.602 2020-01-06 88.094 90.312 88.000 90.308 50665000 90.308 > tsla tsla head(tsla) [1] 86.052 88.602 90.308 93.812 98.428 96.268 > length(tsla) [1] 252 이를 다음과 같이 일간 시계열 데이터로 변환해서 그래프로 표현할 수는 있습니다. 하지만 질문자께서 원하는 것처럼 X축에 주가에 대응되는 시간이 나타나게 할 수는 없습니다. 왜냐하면 ts() 함수는 시작 시점과 종료 시점 사이에 일정한 주기를 갖는 연속된 시계열 데이터만을 생성할 수 있기 때문입니다. 시계열 데이터는 시작 시점과 종료 시점 사이에서 균등한 간격으로 표현됩니다. 금요일의 주가 데이터 다음에는 월요일의 주가 데이터가 나타나지만 그 사이에 토요일과 일요일의 이틀의 간격이 있다는 것을 표현할 수 없습니다. > tsla.ts tsla.ts Time Series: Start = 1 End = 252 Frequency = 1 [1] 86.052 88.602 90.308 93.812 98.428 96.268 95.630 104.972 107.584 ...(중략) [244] 655.900 695.000 649.860 640.340 645.980 661.770 663.690 665.990 694.780 > plot(tsla.ts) 그래도 ts 객체를 이용하여 날짜가 포함된 일별 시계열 그래프를 그리고 싶으면 다음과 같이 해볼 수는 있습니다. 252개의 주가 데이터를 1년 365일 12개월의 기간에 균등하게 배치합니다. 얼핏 보면 잘 그려진 것 같지만 이는 정확한 그래프는 아닙니다. 왜냐하면 주가 데이터와 X축의 날짜가 정확히 대응되지 않기 때문입니다. > plot(tsla.ts, xaxt="n") > axis(side=1, at=seq(from=1, to=length(tsla), length.out=12), + labels=seq(from=as.Date("2020-01-01"), to=as.Date("2020-12-31"), by="months")) 따라서 ts() 함수가 생성하는 ts 객체를 가지고는 주가 데이터를 그래프로 표현하는 데 한계가 있습니다. 하지만 다음과 같이 xts() 함수를 사용하면 질문자께서 원하는 시계열 그래프를 그릴 수 있습니다. > library(timetk) > time head(time) [1] "2020-01-02" "2020-01-03" "2020-01-06" "2020-01-07" "2020-01-08" "2020-01-09" > library(xts) > tsla.xts head(tsla.xts); tail(tsla.xts) [,1] 2020-01-02 86.052 2020-01-03 88.602 2020-01-06 90.308 2020-01-07 93.812 2020-01-08 98.428 2020-01-09 96.268 [,1] 2020-12-22 640.34 2020-12-23 645.98 2020-12-24 661.77 2020-12-28 663.69 2020-12-29 665.99 2020-12-30 694.78 > Sys.setlocale("LC_ALL", "English") [1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252" > plot(tsla.xts) > plot(tsla.xts, major.ticks="quarters") > Sys.setlocale() [1] "LC_COLLATE=Korean_Korea.949;LC_CTYPE=Korean_Korea.949;LC_MONETARY=Korean_Korea.949;LC_NUMERIC=C;LC_TIME=Korean_Korea.949" 시간을 추출합니다(여기에서는 tk_index() 함수를 이용하여 getSymbols() 함수를 통해 다운로드한 주가 데이터로부터 추출하였으나, 갖고 있는 주가 데이터가 있을 경우 그로부터 추출하면 됩니다). 그리고 xts() 함수를 이용하여 xts 시계열 객체를 생성한 후 그래프를 그립니다. Sys.setlocale() 함수를 이용하여 영어권 로케일로 잠시 변경한 것은 X축에 날짜를 표시할 때 영문으로 월이름(Jan, Feb, ...)을 나타내기 위해서입니다. 여기서는 예를 위해 xts 객체를 별도로 생성했지만 사실 getSymbols() 함수를 통해 다운로드한 주가 데이터는 이미 xts 시계열 객체이기 때문에 다음과 같이 plot() 함수를 바로 적용해서 동일한 그래프를 생성할 수 있습니다. > plot(TSLA[, "TSLA.Close"]) 📈 quantmod 패키지를 이용하여 보다 쉽게 주식 차트를 그릴 수 있습니다. 다음 동영상을 참고하세요: '[R] 주식 차트를 그려봐요 - quantmod'(kzfaq.infoSazwAuPW9V8). ⏳xts 시계열 객체에 대해서는 다음 동영상을 참고하세요: '통계데이터분석 - 시계열분석 - 시계열 데이터 - xts'(kzfaq.info/get/bejne/fK6CZK6D3L-lg40.html).
@kundol
@kundol 3 жыл бұрын
@@kykwahk 와....
Schoolboy Runaway в реальной жизни🤣@onLI_gAmeS
00:31
МишАня
Рет қаралды 1,7 МЛН
Box jumping challenge, who stepped on the trap? #FunnyFamily #PartyGames
00:31
Family Games Media
Рет қаралды 31 МЛН
Harley Quinn's revenge plan!!!#Harley Quinn #joker
00:59
Harley Quinn with the Joker
Рет қаралды 14 МЛН
Logo Matching Challenge with Alfredo Larin Family! 👍
00:36
BigSchool
Рет қаралды 16 МЛН
Are you Bayesian or Frequentist?
7:03
Cassie Kozyrkov
Рет қаралды 245 М.
Time Series Forecasting with Machine Learning
13:52
CodeEmporium
Рет қаралды 149 М.
12-1 시계열 분석 (Time Series) [도시빅데이터와 머신러닝]
30:21
Schoolboy Runaway в реальной жизни🤣@onLI_gAmeS
00:31
МишАня
Рет қаралды 1,7 МЛН