R - Zaman Serisi Analizi
Zaman serisi, her veri noktasının bir zaman damgasıyla ilişkilendirildiği bir dizi veri noktasıdır. Basit bir örnek, borsadaki bir hisse senedinin belirli bir günde farklı zaman noktalarında fiyatıdır. Diğer bir örnek, bir bölgedeki yılın farklı aylarında yağış miktarıdır. R dili, zaman serisi verilerini oluşturmak, işlemek ve çizmek için birçok işlev kullanır. Zaman serileri için veriler, adı verilen bir R nesnesinde saklanırtime-series object. Aynı zamanda bir vektör veya veri çerçevesi gibi bir R veri nesnesidir.
Zaman serisi nesnesi, ts() işlevi.
Sözdizimi
İçin temel sözdizimi ts() zaman serisi analizinde fonksiyon -
timeseries.object.name <- ts(data, start, end, frequency)
Kullanılan parametrelerin açıklaması aşağıdadır -
data zaman serilerinde kullanılan değerleri içeren bir vektör veya matristir.
start zaman serisindeki ilk gözlem için başlangıç zamanını belirtir.
end zaman serisindeki son gözlemin bitiş zamanını belirtir.
frequency birim zamandaki gözlem sayısını belirtir.
"Veri" parametresi dışında diğer tüm parametreler isteğe bağlıdır.
Misal
Ocak 2012'den itibaren bir yerde yıllık yağış ayrıntılarını düşünün. 12 aylık bir süre için bir R zaman serisi nesnesi oluşturup grafiğini çiziyoruz.
# Get the data points in form of a R vector.
rainfall <- c(799,1174.8,865.1,1334.6,635.4,918.5,685.5,998.6,784.2,985,882.8,1071)
# Convert it to a time series object.
rainfall.timeseries <- ts(rainfall,start = c(2012,1),frequency = 12)
# Print the timeseries data.
print(rainfall.timeseries)
# Give the chart file a name.
png(file = "rainfall.png")
# Plot a graph of the time series.
plot(rainfall.timeseries)
# Save the file.
dev.off()
Yukarıdaki kodu çalıştırdığımızda, aşağıdaki sonucu ve grafiği üretir -
Jan Feb Mar Apr May Jun Jul Aug Sep
2012 799.0 1174.8 865.1 1334.6 635.4 918.5 685.5 998.6 784.2
Oct Nov Dec
2012 985.0 882.8 1071.0
Zaman serisi grafiği -
Farklı Zaman Aralıkları
Değeri frequencyts () fonksiyonundaki parametre, veri noktalarının ölçüldüğü zaman aralıklarına karar verir. 12 değeri, zaman serisinin 12 aylık olduğunu gösterir. Diğer değerler ve anlamları aşağıdaki gibidir -
frequency = 12 Veri noktalarını yılın her ayı için sabitler.
frequency = 4 Veri noktalarını yılın her çeyreği için sabitler.
frequency = 6 Veri noktalarını bir saatin her 10 dakikası için sabitler.
frequency = 24*6 veri noktalarını günün her 10 dakikası için sabitler.
Çoklu Zaman Serileri
Her iki seriyi bir matris halinde birleştirerek birden fazla zaman serisini tek bir grafikte çizebiliriz.
# Get the data points in form of a R vector.
rainfall1 <- c(799,1174.8,865.1,1334.6,635.4,918.5,685.5,998.6,784.2,985,882.8,1071)
rainfall2 <-
c(655,1306.9,1323.4,1172.2,562.2,824,822.4,1265.5,799.6,1105.6,1106.7,1337.8)
# Convert them to a matrix.
combined.rainfall <- matrix(c(rainfall1,rainfall2),nrow = 12)
# Convert it to a time series object.
rainfall.timeseries <- ts(combined.rainfall,start = c(2012,1),frequency = 12)
# Print the timeseries data.
print(rainfall.timeseries)
# Give the chart file a name.
png(file = "rainfall_combined.png")
# Plot a graph of the time series.
plot(rainfall.timeseries, main = "Multiple Time Series")
# Save the file.
dev.off()
Yukarıdaki kodu çalıştırdığımızda, aşağıdaki sonucu ve grafiği üretir -
Series 1 Series 2
Jan 2012 799.0 655.0
Feb 2012 1174.8 1306.9
Mar 2012 865.1 1323.4
Apr 2012 1334.6 1172.2
May 2012 635.4 562.2
Jun 2012 918.5 824.0
Jul 2012 685.5 822.4
Aug 2012 998.6 1265.5
Sep 2012 784.2 799.6
Oct 2012 985.0 1105.6
Nov 2012 882.8 1106.7
Dec 2012 1071.0 1337.8
Çoklu Zaman serisi grafiği -