MINI MINI MANI MO
%
% Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
%
\name{ore.esm}
\alias{ore.esm}
\alias{fitted.ore.esm}
\alias{forecast.ore.esm}
\alias{predict.ore.esm}
\alias{fitted}
\alias{predict}
\title{
Oracle R Enterprise 시계열 지수 평활 모델
}
\description{
순서 지정된 \code{ore.vector} 데이터에서 지수 평활 모델을
생성합니다.
}
\usage{
ore.esm(x,
interval = NULL,
model = "simple",
accumulate = "NONE",
setmissing = "PREV",
optim.start = c(alpha=0.3, beta=0.1),
optim.control = list())
\S3method{fitted}{ore.esm}(object, start = NULL, end = NULL, ...)
\S3method{predict}{ore.esm}(object, n.ahead = 12L, ...)
forecast.ore.esm(object, h = 12L, ...)
}
\arguments{
\item{x}{
시계열 데이터 또는 트랜잭션 데이터의 순서 지정된
\code{ore.vector}입니다. 순서 지정 열은 1부터 시계열 길이에 해당하는
정수 또는 \code{ore.datetime} 유형의 정수일 수 있습니다.
}
\item{interval}{
시계열의 간격 또는 트랜잭션
데이터를 누적할 시간 간격입니다. \code{x} 인수의
순서 지정 열이 \code{ore.datetime} 유형이면,
\code{interval}을(를) 지정해야 합니다.
가능한 값: \code{"YEAR"}, \code{"QTR"}, \code{"MONTH"},
\code{"WEEK"}, \code{"DAY"}, \code{"HOUR"}, \code{"MINUTE"},
\code{"SECOND"}
}
\item{model}{
지수 평활 모델 이름입니다. 가능한 값: \code{"simple"}, \code{"double"}
}
\item{accumulate}{
누적 방법입니다.
가능한 값은 다음과 같습니다.
\tabular{ll}{
\code{"NONE" } \tab 누적이 수행되지 않습니다. 이 경우
\code{x} 인수는 간격이 동일하게 배치된 시계열 관측이어야
합니다.\cr
\code{"TOTAL" } \tab 관측된 값의 합계를 기반으로 하는 누적입니다. \cr
\code{"AVERAGE" } \tab 관측된 값의 평균을 기반으로 하는
누적입니다. 값은 \code{"AVG"}(으)로 축약될 수 있습니다. \cr
\code{"MINIMUM" } \tab 관측된 값의 최소값을 기반으로 하는
누적입니다. 값은 \code{"MIN"}(으)로 축약될 수 있습니다. \cr
\code{"MAXIMUM" } \tab 관측된 값의 최대값을 기반으로 하는
누적입니다. 값은 \code{"MAX"}(으)로 축약될 수 있습니다. \cr
\code{"MEDIAN" } \tab 관측된 값의 중간값을 기반으로 하는
누적입니다. 값은 \code{"MED"}(으)로 축약될 수 있습니다. \cr
\code{"STDDEV" } \tab 관측된 값의 표준 편차를 기반으로
하는 누적입니다. 값은 \code{"STD"}(으)로 축약될 수
있습니다. \cr
\code{"N" } \tab 비누락 관측 개수를 기반으로 하는 누적입니다. \cr
\code{"NOBS" } \tab 관측 개수를 기반으로 하는 누적입니다. \cr
\code{"NMISS" } \tab 누락 관측 개수를 기반으로 하는 누적입니다.
}
}
\item{setmissing}{
누락 값 취급 방법입니다.
가능한 값은 다음과 같습니다.
\tabular{ll}{
\code{"AVERAGE" } \tab 누락 값이 누적 값의 평균으로 설정됩니다.
값은 \code{"AVG"}(으)로 축약될 수 있습니다. \cr
\code{"MINIMUM" } \tab 누락 값이 누적 값의 최소값으로 설정됩니다.
값은 \code{"MIN"}(으)로 축약될 수 있습니다. \cr
\code{"MAXIMUM" } \tab 누락 값이 누적 값의 최대값으로 설정됩니다.
값은 \code{"MAX"}(으)로 축약될 수 있습니다. \cr
\code{"MEDIAN" } \tab 누락 값이 누적 값의 중간값으로 설정됩니다.
값은 \code{"MED"}(으)로 축약될 수 있습니다. \cr
\code{"FIRST" } \tab 누락 값이 첫번째 누적 비누락 값으로 설정됩니다. \cr
\code{"LAST" } \tab 누락 값이 마지막 누적 비누락 값으로 설정됩니다. \cr
\code{"PREVIOUS" } \tab 누락 값이 이전 누적 비누락 값으로 설정됩니다.
값은 \code{"PREV"}(으)로 축약될 수
있습니다. \cr
\code{"NEXT" } \tab 누락 값이 다음 누적 비누락 값으로 설정됩니다.
}
}
\item{optim.start}{
최적기의 시작 값을 포함하는 이름이 지정된
\code{alpha} 및 \code{beta} 구성요소가 포함된 벡터입니다.
시작 값은 0 -1 범위에 있어야 합니다.
\code{simple} 모델 사례에서는 무시됩니다.
}
\item{optim.control}{
\code{optim} 모델 사례에서 \code{double}에 전달된 추가 제어
매개변수를 포함하는 선택적 목록입니다.
\code{simple} 모델 사례에서는 무시됩니다.
}
\item{object}{
\code{ore.esm} 유형의 객체입니다.
}
\item{start}{
맞춘 값 출력의 시작 인덱스를 지정하는 양의 정수입니다.
값이 지정된 경우 \code{end} 인수보다 작거나 같아야
합니다. 기본값은 \code{NULL}입니다.
이는 \code{start=1}을(를) 나타냅니다.
}
\item{end}{
맞춘 값 출력의 끝 인덱스를 지정하는 양의 정수입니다.
값이 지정된 경우 \code{start} 인수보다 크거나 같아야
합니다. 기본값은 \code{NULL}입니다. 이는 값이 학습 데이터 집합의
길이와 같음을 나타냅니다.
}
\item{n.ahead}{
예측할 기간 수입니다.
}
\item{h}{
예측할 기간 수입니다.
}
\item{...}{
추가 인수입니다.
}
}
\value{
\code{ore.esm}의 경우, \code{"ore.esm"} 클래스의 객체를 반환합니다. 일부 구성요소는 다음과 같습니다.
\item{smoothing.param}{ 예측된 평활 매개변수입니다. }
\item{model}{ 모델 유형입니다. }
\item{model.param }{ 입력 인수입니다. }
\code{fitted.ore.esm}의 경우, \code{ore.vector} 및 \code{start} 인수로 지정된
범위에 있는 모델의 맞춘 값 \code{end}을(를)
반환합니다.
\code{predict.ore.esm} 또는 \code{forecast.ore.esm}의 경우, 예측된 시계열
\code{data.frame}을(를) 반환합니다.
}
\details{
\code{ore.esm} 함수는 데이터베이스 내 시계열 관측에 대한 지수
평활 모델을 구현합니다. 이 함수는 고정된 간격에 따라
관측 간격이 고르게 배치된 시계열 데이터 또는 관측 간격이
고르게 배치되지 않은 트랜잭션 데이터에 사용할 수
있습니다. 트랜잭션 데이터의 경우 \code{accumulate} 인수를 사용하여 집계 방식을
지정하고, \code{interval} 인수를 사용하여 시간 간격을 지정하십시오.
누락 값을 처리하려면 \code{setmissing} 인수를 사용하여 값을 지정하십시오.
이 함수는 지정된 집계 방식, 시간 간격 및 누락 값 처리를 사용하여
값을 선행 처리합니다.
\code{fitted} 메소드는 학습 데이터 집합과 일치하는 적정 시계열 값을
제공합니다. \code{start} 및 \code{end} 인수는 출력 맞춘 값의
인덱스 범위를 지정합니다. 이 함수는 현재 지정된 누적 메소드로
작성된 모델을 지원하지 않습니다.
\code{predict} 메소드는 \code{ore.esm}(으)로 작성된 지수 평활 모델을 사용하여
시계열을 예측합니다. \code{forecast} 패키지가 로드되면 제네릭을
통해 \code{forecast} 메소드를 호출할 수 있습니다.
}
\references{
Exponential Smoothing method
\url{http://en.wikipedia.org/wiki/Exponential_smoothing}
\href{http://www.oracle.com/technetwork/database/database-technologies/r/r-enterprise/documentation/index.html}{Oracle R Enterprise}
}
\author{
Oracle \email{oracle-r-enterprise@oracle.com}
}
\examples{
# case 1
N <- 5000
ts0 <- ore.push(data.frame(ID=1:N,
VAL=seq(1,5,length.out=N)^2+rnorm(N,sd=0.5)))
rownames(ts0) <- ts0$ID
x <- ts0$VAL
esm.mod <- ore.esm(x, model = "double")
esm.predict <- predict(esm.mod, 30)
esm.fitted <- fitted(esm.mod, start=4000, end=5000)
plot(ts0[4000:5000,], pch='.')
lines(ts0[4000:5000, 1], esm.fitted, col="blue")
lines(esm.predict, col="red", lwd=2)
#case 2
ts01 <- data.frame(ID=seq(as.POSIXct("2008/6/13"), as.POSIXct("2011/6/16"),
length.out=4000), VAL=rnorm(4000, 10))
ts02 <- data.frame(ID=seq(as.POSIXct("2011/7/19"), as.POSIXct("2012/11/20"),
length.out=1500), VAL=rnorm(1500, 10))
ts03 <- data.frame(ID=seq(as.POSIXct("2012/12/09"), as.POSIXct("2013/9/25"),
length.out=1000), VAL=rnorm(1000, 10))
ts1 = ore.push(rbind(ts01, ts02, ts03))
rownames(ts1) <- ts1$ID
x <- ts1$VAL
esm.mod <- ore.esm(x, "DAY", accumulate = "AVG", model="simple",
setmissing="PREV")
esm.predict <- predict(esm.mod)
#case 3
x <- ore.push(BJsales)
esm.mod <- ore.esm(x, model="double")
esm.predict <- predict(esm.mod)
esm.fitted <- fitted(esm.mod)
library(OREgraphics)
plot(x)
lines(esm.fitted, col="blue")
lines(esm.predict, col="red", lwd=4)
}
OHA YOOOO