R ts 함수 frequency 365 - R ts hamsu frequency 365

시계열이란 각 숫자가 기록된 시간에 관한 정보가 있는 숫자들의 목록으로 생각할 수 있습니다. R에서는 이러한 정보를 ts 객체로 저장할 수 있습니다.

여러분이 과거 몇 년 동안의 연간 관측값을 가지고 있는 상황을 생각해봅시다:

연도관측값
2012 123
2013 39
2014 78
2015 52
2016 110

ts() 함수로 이것을 ts 객체로 바꾸겠습니다:

y <- ts(c(123,39,78,52,110), start=2012)

1년에 한 관측값이 있는 연간 데이터를 가지고 있다고 가정했으니, 시작 연도만(또는 마지막 연도만) 있으면 됩니다.

1년에 한 번 이상으로 자주 관측된 값의 경우에는, 단순하게 frequency 입력값만 추가하면 됩니다. 예를 들면, 다음과 같이 월별 데이터가 수치 벡터 z에 저장되어있을 때, 이것을 다음과 같이 ts 객체로 바꿀 수 있습니다:

y <- ts(z, start=2003, frequency=12)

이 책에서 사용하는 거의 모든 데이터는 이미 ts 객체로 바뀌어있습니다. 하지만 여러분만의 데이터로 작업하고 싶다면, 분석하기에 앞서 ts() 함수를 사용해야 합니다.

시계열의 빈도

“빈도(frequency)”는 계절성 패턴이 반복되기 전까지의 관측값의 수입니다.1 R에서 ts() 함수를 사용할 때는, 다음과 같은 옵션을 사용해야합니다.

데이터빈도
1
분기 4
12
52

실제로 1년은 \(52\)주가 아니라, 4년마다의 윤년을 고려하여 평균적으로 \(365.25/7 = 52.18\) 입니다. 하지만 ts 객체를 이용하는 대부분의 함수는 정수 빈도를 필요로 합니다.

관측값의 빈도가 1주일에 한 번보다 클 때는, 빈도(frequency)를 다루는 한 가지 이상의 방법이 있습니다. 예를 들면, 일별 관측값으로 구성된 데이터에는 주별 계절성(빈도=7)이나 연간 계절성(빈도=365.25)이 있을 것입니다. 비슷하게, 1분마다 관측된 데이터에는 시간별 계절성(빈도=60), 일별 계절성(빈도=24x60=1440), 주별 계절성(빈도=24x60x7=10080), 연간 계절성(24x60x365.25=525960) 등이 있을 것입니다. ts 객체를 사용하고 싶다면, 이 중에서 어떤 것이 가장 중요한지 결정해야합니다.

11 장에서는 이러한 빈도 목록에서 하나를 고르지 않고 다중 계절성(multiple seasonality)을 다루는 방법을 살펴볼 것입니다.

보통 시간 데이터에는 seasonality가 존재하는데 seasonality는 불안정한 데이터를 만드는 중요한 원인이 된다.
따라서 트렌드가 있거나 seasonality가 데이터에 존재한다면 이는 불안정한 데이터라 할 수 있다. 불안정한 데이터로는 시계열 분석 자체가 불가능하며, 플롯을 통해 안정성을 확인한 뒤에 이를 안정적인 데이터로 가공해야 한다.

> tsp(UKNonDurables)
[1] 1955.00 1988.75    4.00
<--- 시계열 데이터 요약 함수 시작 연도, 끝 연도, frequency
>tsp(timeseries)
[1] 2000.00 2008.25   12.00
> summary(UKNonDurables)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    
<----분위수를 확인할 수 있다.
  24030   31650   38690   38390   43930   61980
> time(UKNonDurables)
        Qtr1    Qtr2    Qtr3    Qtr4
1955 1955.00 1955.25 1955.50 1955.75
1956 1956.00 1956.25 1956.50 1956.75
1957 1957.00 1957.25 1957.50 1957.75
1958 1958.00 1958.25 1958.50 1958.75
1959 1959.00 1959.25 1959.50 1959.75
1960 1960.00 1960.25 1960.50 1960.75
1961 1961.00 1961.25 1961.50 1961.75
1962 1962.00 1962.25 1962.50 1962.75
1963 1963.00 1963.25 1963.50 1963.75
1964 1964.00 1964.25 1964.50 1964.75
1965 1965.00 1965.25 1965.50 1965.75
1966 1966.00 1966.25 1966.50 1966.75
1967 1967.00 1967.25 1967.50 1967.75
1968 1968.00 1968.25 1968.50 1968.75
1969 1969.00 1969.25 1969.50 1969.75
1970 1970.00 1970.25 1970.50 1970.75
1971 1971.00 1971.25 1971.50 1971.75
1972 1972.00 1972.25 1972.50 1972.75
1973 1973.00 1973.25 1973.50 1973.75
1974 1974.00 1974.25 1974.50 1974.75
1975 1975.00 1975.25 1975.50 1975.75
1976 1976.00 1976.25 1976.50 1976.75
1977 1977.00 1977.25 1977.50 1977.75
1978 1978.00 1978.25 1978.50 1978.75
1979 1979.00 1979.25 1979.50 1979.75
1980 1980.00 1980.25 1980.50 1980.75
1981 1981.00 1981.25 1981.50 1981.75
1982 1982.00 1982.25 1982.50 1982.75
1983 1983.00 1983.25 1983.50 1983.75
1984 1984.00 1984.25 1984.50 1984.75
1985 1985.00 1985.25 1985.50 1985.75
1986 1986.00 1986.25 1986.50 1986.75
1987 1987.00 1987.25 1987.50 1987.75
1988 1988.00 1988.25 1988.50 1988.75
시계열 데이터의 x축을 확인할 수 있다.

> window(UKNonDurables,star=c(1960,1),end=c(1970,4))
      Qtr1  Qtr2  Qtr3  Qtr4
1960 27346 29174 29375 30603
1961 28168 29884 30165 31260
1962 28629 30614 30717 32054
1963 29364 31783 32532 33392
1964 30599 32528 33200 34258
1965 31111 32946 33846 34845
1966 32013 34055 34244 35084
1967 32227 34343 35301 36546
1968 33902 34838 35874 37315
1969 33742 35401 36147 38067
1970 34149 36176 37485 39047   
<----- window 함수 = 일정 기간의 데이터를 추출해주는 함수

> window(UKNonDurables,star=c(1960,1))
      Qtr1  Qtr2  Qtr3  Qtr4
1960 27346 29174 29375 30603
1961 28168 29884 30165 31260
1962 28629 30614 30717 32054
1963 29364 31783 32532 33392
1964 30599 32528 33200 34258
1965 31111 32946 33846 34845
1966 32013 34055 34244 35084
1967 32227 34343 35301 36546
1968 33902 34838 35874 37315
1969 33742 35401 36147 38067
1970 34149 36176 37485 39047
1971 34783 37042 38008 40132
1972 36466 38680 39976 42273
1973 39131 40780 41852 43684
1974 38729 40427 41576 43886
1975 39131 40394 40956 42959
1976 38714 40062 41152 43460
1977 38695 39780 40923 44093
1978 40777 41778 43160 45897
1979 41947 44061 44378 47237
1980 43315 43396 44843 46835
1981 42833 43548 44637 47107
1982 42552 43526 45039 47940
1983 43740 45007 46667 49325
1984 44878 46234 47055 50318
1985 46354 47260 48883 52605
1986 48527 50237 51592 55152
1987 50451 52294 54633 58802
1988 53990 55477 57850 61978
<-- 1960년 데이터 이후 모든 것

ts 함수로 강제적으로 시계열 데이터로 만들 수 있지만, 데이터 내의 문자를 전혀 인식하지 못한다는 단점이 있다. 바이너리 변수나 지역 이름이 데이터에 포함된 경우 ts 함수를 적용하기엔 안 좋을 수 있다. 
그리고 만약 결측치가 시계열 데이터에 존재하는 경우엔 그 안에 평균을 입력하는 방식으로 해결할 수 있다.

변수가 여러 개인 시계열 데이터 다루기

> births=scan("http://robjhyndman.com/tsdldata/data/nybirths.dat")
Read 168 items
> birthstimeseries <- ts(births, frequency=12, start=c(1946,1))
> birthstimeseries
        Jan    Feb    Mar    Apr    May    Jun    Jul    Aug    Sep
1946 26.663 23.598 26.931 24.740 25.806 24.364 24.477 23.901 23.175
1947 21.439 21.089 23.709 21.669 21.752 20.761 23.479 23.824 23.105
1948 21.937 20.035 23.590 21.672 22.222 22.123 23.950 23.504 22.238
1949 21.548 20.000 22.424 20.615 21.761 22.874 24.104 23.748 23.262
1950 22.604 20.894 24.677 23.673 25.320 23.583 24.671 24.454 24.122
1951 23.287 23.049 25.076 24.037 24.430 24.667 26.451 25.618 25.014
1952 23.798 22.270 24.775 22.646 23.988 24.737 26.276 25.816 25.210
1953 24.364 22.644 25.565 24.062 25.431 24.635 27.009 26.606 26.268
1954 24.657 23.304 26.982 26.199 27.210 26.122 26.706 26.878 26.152
1955 24.990 24.239 26.721 23.475 24.767 26.219 28.361 28.599 27.914
1956 26.217 24.218 27.914 26.975 28.527 27.139 28.982 28.169 28.056
1957 26.589 24.848 27.543 26.896 28.878 27.390 28.065 28.141 29.048
1958 27.132 24.924 28.963 26.589 27.931 28.009 29.229 28.759 28.405
1959 26.076 25.286 27.660 25.951 26.398 25.565 28.865 30.000 29.261
        Oct    Nov    Dec
1946 23.227 21.672 21.870
1947 23.110 21.759 22.073
1948 23.142 21.059 21.573
1949 22.907 21.519 22.025
1950 24.252 22.084 22.991
1951 25.110 22.964 23.981
1952 25.199 23.162 24.707
1953 26.462 25.246 25.180
1954 26.379 24.712 25.688
1955 27.784 25.693 26.881
1956 29.136 26.291 26.987
1957 28.484 26.634 27.735
1958 27.945 25.912 26.619
1959 29.012 26.992 27.897
time – series data 완성

> install.packages("tseries")
> library("tseries", lib.loc="C:/Program Files/R/R-3.3.3/library")
> data(ice.river)
> ice.river
Time Series:
Start = c(1972, 1)
End = c(1975, 1)
Frequency = 365
         flow.vat flow.jok prec  temp
1972.000    16.10     30.2  8.1   0.9
1972.003    19.20     29.0  4.4   1.6
1972.005    14.50     28.4  7.0   0.1
1972.008    11.00     27.8  0.0   0.6
1972.011    13.60     27.8  0.0   2.0
1972.014    12.50     27.8  0.0   0.8
1972.016    10.50     27.8  1.9   1.4
1972.019    10.10     27.8  1.2   1.3
1972.022     9.68     27.8  0.0   2.2
1972.025     9.02     27.3  0.1   0.1
1972.027     8.80     27.3  0.0   3.0
1972.030     8.58     27.3  0.2  -0.2
1972.033     8.14     26.2  1.8  -2.6
1972.036     7.50     25.2  0.2  -3.8
1972.038     7.92     26.7  0.2   0.9
1972.041     7.92     26.7  0.2   1.9
1972.044     7.71     26.7  1.5  -0.4
1972.047     7.10     26.7  9.2  -6.0
1972.049     6.70     26.7  1.0  -5.0
1972.052     3.98     25.2  0.2  -4.6
1972.055     5.16     25.7  0.4  -5.3
1972.058     6.10     26.2  2.5  -7.3
1972.060     6.90     26.2  3.3  -8.5
1972.063     6.90     26.2  0.2  -9.9
1972.066     7.10     26.2  0.1 -13.1
1972.068     7.30     25.7  0.0 -10.2
1972.071     7.30     26.2  0.0  -8.7
1972.074     5.71     26.7  4.8   0.4
1972.077     6.90     28.4 19.4   1.9
1972.079     8.14     29.0  0.9   0.8
1972.082     7.50     27.8  0.1  -1.6
1972.085     7.10     27.3  0.0  -0.9
1972.088     6.90     26.7  0.0   0.5
1972.090     6.70     26.2  0.0  -4.1
1972.093     6.70     25.7  0.0  -2.8
1972.096     6.90     26.2  0.2  -2.6
1972.099     6.90     26.2  0.1  -3.3
1972.101     6.70     25.7  0.1  -2.8
1972.104     6.50     25.7  0.0  -7.6
1972.107     6.50     25.7  3.8  -5.8
1972.110     6.70     25.7  0.0  -6.4
1972.112     6.90     25.7  0.1  -5.9
1972.115     7.10     25.7  0.1  -5.3
1972.118     6.70     25.7  0.1  -8.6
1972.121     6.70     25.2  0.2 -12.6
1972.123     6.70     25.2  0.0 -15.3
1972.126     6.90     25.2  0.0  -7.4
1972.129     5.34     24.6  2.9   0.5
1972.132     5.34     25.2  2.1   1.1
1972.134     5.90     25.7  6.7  -2.4
1972.137     6.30     26.7 11.2  -0.7
1972.140     6.90     26.2  6.1  -4.5
1972.142     7.92     25.7  2.1  -0.6
1972.145    21.00     26.7 42.2   0.3
1972.148    14.20     26.7 12.5   0.2
1972.151    11.60     26.7  0.1   0.7
1972.153    10.10     26.2  0.3   0.8
1972.156     9.24     25.7  0.3   2.3
1972.159     8.58     25.7  0.2   0.1
1972.162     8.14     25.2  0.0   1.1
1972.164     7.92     25.2  1.2  -1.4
1972.167     7.71     25.2  0.1  -0.6
1972.170     7.71     24.6  0.5   0.3
1972.173     7.50     24.6  0.0  -1.1
1972.175     7.10     24.6  0.0  -3.6
1972.178     6.90     24.6  0.0  -1.9
1972.181     6.90     24.6  1.7   0.1
1972.184     6.90     24.6  0.5  -0.4
1972.186     6.50     23.6  1.8  -3.9
1972.189     7.71     24.1  2.1  -1.2
1972.192     4.65     24.1 16.1  -4.0
1972.195     3.98     24.6  0.6  -4.8
1972.197     5.16     24.1  0.2  -7.8
1972.200     6.10     24.6  4.0  -3.1
1972.203     6.10     24.6  4.0  -4.6
1972.205     8.14     25.7  1.3   2.2
1972.208    13.60     28.4 22.4   1.0
1972.211     9.68     31.4 35.7  -1.6
1972.214     8.36     30.2  8.7  -3.2
1972.216     9.24     29.0  1.2   0.1
1972.219     8.58     28.4  0.3  -5.2
1972.222     8.36     27.8  0.1  -6.5
1972.225     7.92     26.7  1.1  -5.3
1972.227     9.02     26.7  6.5   0.0
1972.230     9.02     27.8  7.0  -6.8
1972.233     8.15     26.7  0.6  -6.9
1972.236     7.92     26.2  0.2  -5.0
1972.238     7.50     25.2  0.2  -9.4
1972.241     7.30     25.2  0.1  -9.4
1972.244     6.90     25.2  0.0 -10.4
1972.247     6.90     24.6  0.0  -8.4
1972.249     7.50     25.2  0.0   0.9
1972.252     6.70     25.2  3.3  -7.0
1972.255     6.70     24.1  0.3 -11.7
1972.258     6.90     24.1  0.1  -9.0
1972.260     6.70     24.6  0.1  -7.9
1972.263     6.50     24.1  0.0  -8.4
1972.266     6.30     24.1  1.6  -9.8
1972.268     6.30     24.1  0.3 -13.4
1972.271     6.30     24.1  1.9  -2.8
1972.274     6.30     23.6  0.0  -1.2
1972.277     6.10     23.6  0.0  -1.6
1972.279     5.90     23.6  0.3  -0.2
1972.282     6.50     23.6  1.3  -2.6
1972.285     6.30     23.6  0.1  -3.6
1972.288     6.10     23.6  0.0  -2.1
1972.290     7.10     23.6  1.7   0.1
1972.293     8.14     24.1  0.1   0.1
1972.296     9.90     24.1  0.1   0.5
1972.299    14.20     24.1  0.1   0.9
1972.301    16.50     25.2  0.2   1.0
1972.304    19.20     25.2  0.0   0.7
1972.307    23.50     26.7  0.1   2.4
1972.310    25.20     30.2  0.1   3.0
1972.312    35.90     41.7  0.2   2.7
1972.315    31.50     51.7  0.1   0.0
1972.318    19.20     44.0  0.1  -0.2
1972.321    16.90     41.0  0.2  -0.3
1972.323    13.60     35.7  3.7  -3.2
1972.326    11.00     30.8  0.1  -6.8
1972.329    10.10     27.8  0.0  -6.8
1972.332     9.90     29.0  0.0  -6.4
1972.334    10.10     29.0  0.0  -3.1
1972.337    10.30     28.4  0.0  -0.5
1972.340    13.00     27.8  1.8   0.8
1972.342    20.10     34.4 20.7   2.2
1972.345    24.10     47.0  0.1   3.0
1972.348    36.70     59.1  0.1   4.7
1972.351    32.90    101.0  0.0   4.0
1972.353    28.70    103.0  0.0   3.5
1972.356    31.50     90.0  0.1   4.4
1972.359    33.70    113.0  0.0   4.3
1972.362    30.80    121.0  0.0   4.0
1972.364    26.30    104.0  0.0   2.9
1972.367    21.50     94.8  0.2   1.8
1972.370    17.30     77.4  0.2   1.8
1972.373    19.20     83.0  5.6   1.6
1972.375    16.90     81.6  1.8   1.6
1972.378    16.10     80.2  7.0   1.8
1972.381    15.60     81.6  0.3   3.4
1972.384    18.00     90.0  0.1   4.5
1972.386    19.70    103.0  0.2   5.8
1972.389    17.70    111.0  0.0   3.3
1972.392    16.90    109.0  0.0   4.8
1972.395    19.70    103.0  0.0   4.1
1972.397    16.90     99.6  0.0   4.2
1972.400    14.80     91.6  0.1   1.6
1972.403    11.30     66.6  0.2   1.1
1972.405    11.30     59.1  0.8   1.6
1972.408    10.10     52.5  0.0   2.4
1972.411    10.10     51.7  0.0   2.5
1972.414     9.90     53.3  0.2   1.7
1972.416     9.24     52.5  0.2   2.2
1972.419     9.02     52.5  2.6   4.1
1972.422     9.46     58.3  3.8   3.1
1972.425    10.10     64.3  1.8   3.4
1972.427     9.90     67.8  0.1   5.5
1972.430    10.80     78.8  0.6   2.2
1972.433     9.68     66.6  0.4   3.3
1972.436     9.24     55.7  0.0   5.6
1972.438     9.02     57.4  0.5   6.3
1972.441     8.80     63.4  0.0   6.1
1972.444     8.80     67.8  0.0   6.2
1972.447     8.58     69.0  1.3   8.5
1972.449     8.58     70.2  0.0   5.5
1972.452     9.90     84.4  4.4   7.0
1972.455     9.90     90.0  1.2   4.7
1972.458    11.30     78.8 13.8   2.3
1972.460     9.90     60.0  0.0   1.3
1972.463     9.24     48.5  0.9  -0.2
1972.466     9.24     42.4  0.3   1.3
1972.468     9.02     41.7  0.3   2.9
1972.471     8.36     40.2  0.6   4.5
1972.474     8.14     45.4  0.3   5.9
1972.477     8.36     50.9  2.4   4.4
1972.479    10.10     54.1  8.4   2.2
1972.482    11.60     50.1  6.3   4.4
1972.485     9.90     50.9  2.2   4.4
1972.488     9.90     52.5  4.4   3.4
1972.490     9.68     54.9  1.6   5.2
1972.493     9.46     59.1  7.0   6.2
1972.496     9.02     61.7  2.2   6.5
1972.499     8.36     63.4  1.7   7.0
1972.501     8.36     63.4  0.6   6.1
1972.504    10.50     65.5 13.6   1.9
1972.507    10.50     58.3  2.2   3.5
1972.510    10.10     58.3  1.1   6.9
1972.512    10.10     60.9  0.1   6.2
1972.515     9.68     66.6  2.6   6.4
1972.518     9.90     74.8 11.4   6.5
1972.521    11.00     73.7  0.7   6.7
1972.523    10.50     70.2  5.1   6.7
1972.526     9.46     65.5  0.1   7.6
1972.529     9.02     61.7  0.4   6.1
1972.532     9.24     61.7  3.2   5.1
1972.534     9.90     67.8 10.2   3.6
1972.537     9.24     60.0  4.2   4.8
1972.540     9.46     62.6  8.4   7.5
1972.542     8.80     61.7  0.0   6.1
1972.545     8.80     61.7  2.8   6.8
1972.548     9.46     63.4  0.0   6.7
1972.551     9.46     60.9  7.2   7.9
1972.553     9.02     60.0  2.5   7.0
1972.556     8.80     58.3  4.8   5.8
1972.559     8.58     54.9  0.0   6.0
1972.562     8.36     53.3  0.0   6.1
1972.564     8.36     63.4  0.0   7.5
1972.567     8.36     64.3  1.4   7.8
1972.570     8.58     77.4  2.9   9.1
1972.573     8.36     85.8  5.5   7.1
1972.575     7.92     67.8  0.0   6.4
1972.578     7.92     57.4  0.0   6.8
1972.581     7.92     54.1  0.0   7.4
1972.584     7.71     52.5  0.0   6.7
1972.586     7.50     51.7  0.2   3.7
1972.589     7.50     46.2  0.0   4.7
1972.592     7.30     43.2  0.0   3.4
1972.595     7.50     41.0  1.9   1.4
1972.597     7.71     39.6  1.3   2.6
1972.600     7.50     37.0  0.1   2.5
1972.603     7.30     36.4  0.1   3.2
1972.605     7.30     35.7  0.0   5.8
1972.608     7.10     35.7  0.0   7.2
1972.611     7.10     36.4  0.0   6.2
1972.614     7.10     38.9  0.4   8.9
1972.616     7.50     53.3  8.0   7.2
1972.619     7.30     58.3 10.8   5.5
1972.622     7.50     57.4  3.6   4.4
1972.625     7.10     50.1  0.1   4.9
1972.627     7.30     45.4  0.1   4.7
1972.630     7.30     41.0  0.1   4.4
1972.633     7.71     41.0 14.8   3.5
1972.636     8.14     40.2  5.4   4.2
1972.638     7.50     37.6  0.1   5.0
1972.641     7.71     46.2  5.3   5.2
1972.644     7.71     45.4  0.2   5.5
1972.647     7.71     45.4  0.3   3.6
1972.649     7.71     39.6  0.2   3.4
1972.652     8.14     40.2  5.0   6.5
1972.655     9.02     46.2  4.9   6.4
1972.658     9.02     47.7  2.1   8.8
1972.660     9.02     59.1  6.0   6.1
1972.663     9.24     58.3  3.9   4.3
1972.666     8.58     48.5  0.2   4.5
1972.668     9.02     56.6  7.5   6.9
1972.671     8.58     56.6  0.6   4.8
1972.674     7.50     44.7  0.0   5.8
1972.677     8.80     50.9  0.4   6.0
1972.679     9.46     58.3  1.8   2.6
1972.682     8.14     44.7  0.1  -1.7
 [ reached getOption("max.print") -- omitted 846 rows ]
일일 데이터에 multiple 시계열 데이터이다.

> win.graph()
> plot(ice.river)