R - การวิเคราะห์อนุกรมเวลา
อนุกรมเวลาคือชุดของจุดข้อมูลที่จุดข้อมูลแต่ละจุดเชื่อมโยงกับการประทับเวลา ตัวอย่างง่ายๆคือราคาของหุ้นในตลาดหุ้น ณ ช่วงเวลาต่างๆในวันหนึ่ง ๆ อีกตัวอย่างหนึ่งคือปริมาณน้ำฝนในภูมิภาคในเดือนต่างๆของปี ภาษา R ใช้ฟังก์ชันมากมายในการสร้างจัดการและลงจุดข้อมูลอนุกรมเวลา ข้อมูลสำหรับอนุกรมเวลาจะถูกเก็บไว้ในวัตถุ R ที่เรียกว่าtime-series object. นอกจากนี้ยังเป็นวัตถุข้อมูล R เช่นเวกเตอร์หรือกรอบข้อมูล
วัตถุอนุกรมเวลาถูกสร้างขึ้นโดยใช้ ts() ฟังก์ชัน
ไวยากรณ์
ไวยากรณ์พื้นฐานสำหรับ ts() ฟังก์ชันในการวิเคราะห์อนุกรมเวลาคือ -
timeseries.object.name <- ts(data, start, end, frequency)
ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -
data คือเวกเตอร์หรือเมทริกซ์ที่มีค่าที่ใช้ในอนุกรมเวลา
start ระบุเวลาเริ่มต้นสำหรับการสังเกตครั้งแรกในอนุกรมเวลา
end ระบุเวลาสิ้นสุดสำหรับการสังเกตครั้งสุดท้ายในอนุกรมเวลา
frequency ระบุจำนวนการสังเกตต่อหน่วยเวลา
ยกเว้นพารามิเตอร์ "data" พารามิเตอร์อื่น ๆ ทั้งหมดเป็นทางเลือก
ตัวอย่าง
พิจารณารายละเอียดปริมาณน้ำฝนประจำปี ณ สถานที่ที่เริ่มตั้งแต่เดือนมกราคม 2555 เราสร้างออบเจ็กต์อนุกรมเวลา R เป็นระยะเวลา 12 เดือนและวางพล็อต
# 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()
เมื่อเรารันโค้ดด้านบนจะสร้างผลลัพธ์และแผนภูมิต่อไปนี้ -
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
แผนภูมิอนุกรมเวลา -
ช่วงเวลาที่แตกต่างกัน
ค่าของ frequencyพารามิเตอร์ในฟังก์ชัน ts () กำหนดช่วงเวลาที่จุดข้อมูลถูกวัด ค่า 12 แสดงว่าอนุกรมเวลาเป็นเวลา 12 เดือน ค่าอื่น ๆ และความหมายมีดังต่อไปนี้ -
frequency = 12 ตรึงจุดข้อมูลสำหรับทุกเดือนของปี
frequency = 4 ตรึงจุดข้อมูลทุกไตรมาสของปี
frequency = 6 ตรึงจุดข้อมูลทุกๆ 10 นาทีของหนึ่งชั่วโมง
frequency = 24*6 ตรึงจุดข้อมูลทุกๆ 10 นาทีของวัน
อนุกรมเวลาหลาย
เราสามารถพล็อตอนุกรมเวลาหลาย ๆ ชุดในแผนภูมิเดียวโดยการรวมอนุกรมทั้งสองเป็นเมทริกซ์
# 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()
เมื่อเรารันโค้ดด้านบนจะสร้างผลลัพธ์และแผนภูมิต่อไปนี้ -
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
แผนภูมิอนุกรมหลายเวลา -