library("forecast")
## Warning: package 'forecast' was built under R version 4.2.3
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library("graphics")
library("TTR")
## Warning: package 'TTR' was built under R version 4.2.3
library("TSA")
## Warning: package 'TSA' was built under R version 4.3.1
## Registered S3 methods overwritten by 'TSA':
## method from
## fitted.Arima forecast
## plot.Arima forecast
##
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
##
## acf, arima
## The following object is masked from 'package:utils':
##
## tar
library(rio)
## Warning: package 'rio' was built under R version 4.3.1
data_air <- import("https://raw.githubusercontent.com/lutfi-reza/mpdw-lutfi-reza/main/data/data_air.csv")
The dataset used on this occasion pertains to the sea surface elevation data in DKI Jakarta, specifically in P.A. Marina Ancol. The sea level data was measured in 2020 at 5 a.m. This daily dataset contains a one full year data, starting from January untill December.
Data set yang digunakan berkaitan dengan tinggi permukaan air laut di DKI Jakarta, P.A. Marina Ancol. Data ini diambil pada tahun 2020 pukul 5 pagi. Data set harian ini berisikan data satu tahun penuh, mulai bulan Januari hingga Desember.
View(data_air)
str(data_air)
## 'data.frame': 334 obs. of 2 variables:
## $ periode : int 1 2 3 4 5 6 7 8 9 10 ...
## $ tinggi_air: int 1900 1870 1750 1390 1850 1760 2010 1880 1680 1560 ...
dim(data_air)
## [1] 334 2
These function: View, str, dim are used to show the dataset, type, and the dimension of the dataset, sequentially.
Fungsi-fungsi ini bertujuan untuk menampilkan data, menunjukkan jenis dan ukuran data.
ts() .data_air.ts <- ts(data_air$tinggi_air)
The ts function is used to read the dataset as time
series data
summary(data_air.ts)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1210 1640 1760 1754 1878 2310
par(mar = c(1, 1, 1, 1))
ts.plot(data_air.ts, xlab="Time Period ", ylab="Reading",
main = "Time Series Plot")
points(data_air.ts)
The plot above indicates that the time series data exhibits a constant pattern.
Plot di atas menunjukkan bahwa data time series memiliki pola konstan.
januari <- data_air[1:29,]
februari <- data_air[30:53,]
maret <- data_air[54:84,]
april <- data_air[85:101,]
mei <- data_air[102:128,]
juni <- data_air[129:158,]
juli <- data_air[159:189,]
agustus <- data_air[190:220,]
september <- data_air[221:250,]
oktober <- data_air[251:280,]
november <- data_air[281:304,]
desember <- data_air[305:334,]
To read the dataset as time series data Membuat data menjadi time series
januari.ts <- ts((data_air[1:29,])$tinggi_air)
februari.ts <- ts((data_air[30:53,])$tinggi_air)
maret.ts <- ts((data_air[54:84,])$tinggi_air)
april.ts <-ts(( data_air[85:101,])$tinggi_air)
mei.ts <- ts((data_air[102:128,])$tinggi_air)
juni.ts <- ts((data_air[129:158,])$tinggi_air)
juli.ts <- ts((data_air[159:189,])$tinggi_air)
agustus.ts <- ts((data_air[190:220,])$tinggi_air)
september.ts <- ts((data_air[221:250,])$tinggi_air)
oktober.ts <- ts((data_air[251:280,])$tinggi_air)
november.ts <- ts((data_air[281:304,])$tinggi_air)
desember.ts <- ts((data_air[305:334,])$tinggi_air)
#Eksplorasi dengan GGPLOT per bulan
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
ggplot() +
geom_line(data = januari, aes(x = periode, y = tinggi_air, col = "Data Januari")) +
geom_line(data = februari, aes(x = periode, y = tinggi_air, col = "Data Februari")) +
geom_line(data = maret, aes(x = periode, y = tinggi_air, col = "Data Maret")) +
geom_line(data = april, aes(x = periode, y = tinggi_air, col = "Data April")) +
geom_line(data = mei, aes(x = periode, y = tinggi_air, col = "Data Mei")) +
geom_line(data = juni, aes(x = periode, y = tinggi_air, col = "Data Juni")) +
geom_line(data = juli, aes(x = periode, y = tinggi_air, col = "Data Juli")) +
geom_line(data = agustus, aes(x = periode, y = tinggi_air, col = "Data Agustus")) +
geom_line(data = september, aes(x = periode, y = tinggi_air, col = "Data September")) +
geom_line(data = oktober, aes(x = periode, y = tinggi_air, col = "Data Oktober")) +
geom_line(data = november, aes(x = periode, y = tinggi_air, col = "Data November")) +
geom_line(data = desember, aes(x = periode, y = tinggi_air, col = "Data Desember")) +
labs(x = "Periode Waktu", y = "Tinggi Air", color = "Legend") +
scale_colour_manual(name="Keterangan:", breaks = c("Data Januari", "Data Februari","Data Maret","Data April", "Data Mei", "Data Juni", "Data Juli", "Data Agustus", "Data September","Data Oktober", "Data November", "Data Desember"),
values = rainbow(12)) +
theme_bw() + theme(legend.position = "bottom",
plot.caption = element_text(hjust=0.5, size=12))
The plot above doesn’t indicate any trend.
Plot data di atas menunjukkan bahwa data per bulan menyebar secara konstan, tidak terlihat adanya tren atau musim pada data.
Dividing the dataset into a 80 percent of training data and 20 percent of testing data.
Pembagian data latih dan data uji dilakukan dengan perbandingan 80% data latih dan 20% data uji.
#Membagi data training dan testing
data_training <- data_air[1:267,]
data_testing <- data_air[268:334,]
#Membuat plot deret waktu data dari data training dan testing
training.ts <- ts(data_training$tinggi_air)
testing.ts <- ts(data_testing$tinggi_air)
Exploratory analysis on the dataset thoroughly, training data, and testing data.
Eksplorasi dilakukan pada seluruh data, data training, dan data testing.
#Eksplorasi keseluruhan data
plot(data_air.ts, col="red",main="Plot Semua Data")
points(data_air.ts)
#Eksplorasi data latih (training)
plot(training.ts, col="blue",main="Plot Data Training")
points(training.ts)
#Eksplorasi data uji (test)
plot(testing.ts, col="blue",main="Plot Data Testing")
points(testing.ts)
#Eksplorasi dengan GGPLOT
library(ggplot2)
ggplot() +
geom_line(data = data_training, aes(x = periode, y = tinggi_air, col = "Data Training")) +
geom_line(data = data_testing, aes(x = periode, y = tinggi_air, col = "Data Testing")) +
labs(x = "Periode Waktu", y = "Tinggi Air", color = "Legend") +
scale_colour_manual(name="Keterangan:", breaks = c("Data Training", "Data Testing"),
values = c("blue", "red")) +
theme_bw() + theme(legend.position = "bottom",
plot.caption = element_text(hjust=0.5, size=12))
The SMA methods is suitable for constant pattern of time series data.
Metode SMA cocok digunakan untuk data konstan.
data.sma <- SMA(training.ts)
data.sma
## Time Series:
## Start = 1
## End = 267
## Frequency = 1
## [1] NA NA NA NA NA NA NA NA NA 1765 1740 1711 1702 1737 1733
## [16] 1753 1754 1773 1805 1852 1886 1926 1944 1950 1958 1941 1921 1894 1871 1864
## [31] 1862 1863 1881 1905 1918 1938 1950 1949 1949 1902 1871 1808 1806 1791 1772
## [46] 1765 1764 1767 1786 1800 1804 1846 1822 1813 1819 1829 1835 1846 1839 1867
## [61] 1879 1876 1860 1856 1804 1737 1676 1618 1564 1513 1475 1456 1462 1462 1511
## [76] 1561 1599 1645 1687 1717 1751 1771 1792 1805 1817 1830 1858 1875 1892 1905
## [91] 1895 1885 1841 1830 1808 1792 1786 1790 1801 1814 1839 1857 1882 1865 1860
## [106] 1882 1856 1882 1879 1894 1910 1937 1966 2002 2018 1992 1999 1936 1900 1848
## [121] 1811 1773 1728 1722 1750 1776 1812 1866 1899 1927 1937 1950 1974 1987 1958
## [136] 1946 1936 1948 1947 1955 1963 1956 1961 1939 1932 1915 1898 1839 1828 1826
## [151] 1828 1840 1854 1868 1887 1905 1894 1901 1874 1854 1818 1801 1791 1791 1774
## [166] 1781 1802 1814 1841 1849 1875 1900 1888 1856 1841 1807 1766 1767 1744 1739
## [181] 1737 1722 1741 1760 1777 1779 1776 1727 1684 1633 1582 1547 1513 1495 1474
## [196] 1486 1502 1533 1577 1621 1644 1657 1640 1627 1603 1564 1544 1520 1517 1523
## [211] 1554 1576 1608 1631 1659 1669 1658 1646 1632 1611 1589 1564 1558 1552 1562
## [226] 1583 1619 1655 1698 1713 1711 1703 1683 1656 1624 1598 1571 1561 1534 1538
## [241] 1562 1567 1560 1553 1541 1532 1518 1502 1486 1473 1458 1477 1515 1550 1604
## [256] 1636 1687 1709 1718 1724 1716 1698 1679 1680 1658 1649 1637
data.ramal <- c(NA,data.sma)
data.ramal #forecast 1 periode ke depan
## [1] NA NA NA NA NA NA NA NA NA NA 1765 1740 1711 1702 1737
## [16] 1733 1753 1754 1773 1805 1852 1886 1926 1944 1950 1958 1941 1921 1894 1871
## [31] 1864 1862 1863 1881 1905 1918 1938 1950 1949 1949 1902 1871 1808 1806 1791
## [46] 1772 1765 1764 1767 1786 1800 1804 1846 1822 1813 1819 1829 1835 1846 1839
## [61] 1867 1879 1876 1860 1856 1804 1737 1676 1618 1564 1513 1475 1456 1462 1462
## [76] 1511 1561 1599 1645 1687 1717 1751 1771 1792 1805 1817 1830 1858 1875 1892
## [91] 1905 1895 1885 1841 1830 1808 1792 1786 1790 1801 1814 1839 1857 1882 1865
## [106] 1860 1882 1856 1882 1879 1894 1910 1937 1966 2002 2018 1992 1999 1936 1900
## [121] 1848 1811 1773 1728 1722 1750 1776 1812 1866 1899 1927 1937 1950 1974 1987
## [136] 1958 1946 1936 1948 1947 1955 1963 1956 1961 1939 1932 1915 1898 1839 1828
## [151] 1826 1828 1840 1854 1868 1887 1905 1894 1901 1874 1854 1818 1801 1791 1791
## [166] 1774 1781 1802 1814 1841 1849 1875 1900 1888 1856 1841 1807 1766 1767 1744
## [181] 1739 1737 1722 1741 1760 1777 1779 1776 1727 1684 1633 1582 1547 1513 1495
## [196] 1474 1486 1502 1533 1577 1621 1644 1657 1640 1627 1603 1564 1544 1520 1517
## [211] 1523 1554 1576 1608 1631 1659 1669 1658 1646 1632 1611 1589 1564 1558 1552
## [226] 1562 1583 1619 1655 1698 1713 1711 1703 1683 1656 1624 1598 1571 1561 1534
## [241] 1538 1562 1567 1560 1553 1541 1532 1518 1502 1486 1473 1458 1477 1515 1550
## [256] 1604 1636 1687 1709 1718 1724 1716 1698 1679 1680 1658 1649 1637
data.gab<-cbind(aktual=c(training.ts,rep(NA,67)),pemulusan=c(data.sma,rep(NA,67)),ramalan=c(data.ramal,rep(data.ramal[length(data.ramal)],66)))
data.gab #forecast 67 periode ke depan
## aktual pemulusan ramalan
## [1,] 1900 NA NA
## [2,] 1870 NA NA
## [3,] 1750 NA NA
## [4,] 1390 NA NA
## [5,] 1850 NA NA
## [6,] 1760 NA NA
## [7,] 2010 NA NA
## [8,] 1880 NA NA
## [9,] 1680 NA NA
## [10,] 1560 1765 NA
## [11,] 1650 1740 1765
## [12,] 1580 1711 1740
## [13,] 1660 1702 1711
## [14,] 1740 1737 1702
## [15,] 1810 1733 1737
## [16,] 1960 1753 1733
## [17,] 2020 1754 1753
## [18,] 2070 1773 1754
## [19,] 2000 1805 1773
## [20,] 2030 1852 1805
## [21,] 1990 1886 1852
## [22,] 1980 1926 1886
## [23,] 1840 1944 1926
## [24,] 1800 1950 1944
## [25,] 1890 1958 1950
## [26,] 1790 1941 1958
## [27,] 1820 1921 1941
## [28,] 1800 1894 1921
## [29,] 1770 1871 1894
## [30,] 1960 1864 1871
## [31,] 1970 1862 1864
## [32,] 1990 1863 1862
## [33,] 2020 1881 1863
## [34,] 2040 1905 1881
## [35,] 2020 1918 1905
## [36,] 1990 1938 1918
## [37,] 1940 1950 1938
## [38,] 1790 1949 1950
## [39,] 1770 1949 1949
## [40,] 1490 1902 1949
## [41,] 1660 1871 1902
## [42,] 1360 1808 1871
## [43,] 2000 1806 1808
## [44,] 1890 1791 1806
## [45,] 1830 1772 1791
## [46,] 1920 1765 1772
## [47,] 1930 1764 1765
## [48,] 1820 1767 1764
## [49,] 1960 1786 1767
## [50,] 1630 1800 1786
## [51,] 1700 1804 1800
## [52,] 1780 1846 1804
## [53,] 1760 1822 1846
## [54,] 1800 1813 1822
## [55,] 1890 1819 1813
## [56,] 2020 1829 1819
## [57,] 1990 1835 1829
## [58,] 1930 1846 1835
## [59,] 1890 1839 1846
## [60,] 1910 1867 1839
## [61,] 1820 1879 1867
## [62,] 1750 1876 1879
## [63,] 1600 1860 1876
## [64,] 1760 1856 1860
## [65,] 1370 1804 1856
## [66,] 1350 1737 1804
## [67,] 1380 1676 1737
## [68,] 1350 1618 1676
## [69,] 1350 1564 1618
## [70,] 1400 1513 1564
## [71,] 1440 1475 1513
## [72,] 1560 1456 1475
## [73,] 1660 1462 1456
## [74,] 1760 1462 1462
## [75,] 1860 1511 1462
## [76,] 1850 1561 1511
## [77,] 1760 1599 1561
## [78,] 1810 1645 1599
## [79,] 1770 1687 1645
## [80,] 1700 1717 1687
## [81,] 1780 1751 1717
## [82,] 1760 1771 1751
## [83,] 1870 1792 1771
## [84,] 1890 1805 1792
## [85,] 1980 1817 1805
## [86,] 1980 1830 1817
## [87,] 2040 1858 1830
## [88,] 1980 1875 1858
## [89,] 1940 1892 1875
## [90,] 1830 1905 1892
## [91,] 1680 1895 1905
## [92,] 1660 1885 1895
## [93,] 1430 1841 1885
## [94,] 1780 1830 1841
## [95,] 1760 1808 1830
## [96,] 1820 1792 1808
## [97,] 1980 1786 1792
## [98,] 2020 1790 1786
## [99,] 2050 1801 1790
## [100,] 1960 1814 1801
## [101,] 1930 1839 1814
## [102,] 1840 1857 1839
## [103,] 1680 1882 1857
## [104,] 1610 1865 1882
## [105,] 1710 1860 1865
## [106,] 2040 1882 1860
## [107,] 1720 1856 1882
## [108,] 2280 1882 1856
## [109,] 2020 1879 1882
## [110,] 2110 1894 1879
## [111,] 2090 1910 1894
## [112,] 2110 1937 1910
## [113,] 1970 1966 1937
## [114,] 1970 2002 1966
## [115,] 1870 2018 2002
## [116,] 1780 1992 2018
## [117,] 1790 1999 1992
## [118,] 1650 1936 1999
## [119,] 1660 1900 1936
## [120,] 1590 1848 1900
## [121,] 1720 1811 1848
## [122,] 1730 1773 1811
## [123,] 1520 1728 1773
## [124,] 1910 1722 1728
## [125,] 2150 1750 1722
## [126,] 2040 1776 1750
## [127,] 2150 1812 1776
## [128,] 2190 1866 1812
## [129,] 1990 1899 1866
## [130,] 1870 1927 1899
## [131,] 1820 1937 1927
## [132,] 1860 1950 1937
## [133,] 1760 1974 1950
## [134,] 2040 1987 1974
## [135,] 1860 1958 1987
## [136,] 1920 1946 1958
## [137,] 2050 1936 1946
## [138,] 2310 1948 1936
## [139,] 1980 1947 1948
## [140,] 1950 1955 1947
## [141,] 1900 1963 1955
## [142,] 1790 1956 1963
## [143,] 1810 1961 1956
## [144,] 1820 1939 1961
## [145,] 1790 1932 1939
## [146,] 1750 1915 1932
## [147,] 1880 1898 1915
## [148,] 1720 1839 1898
## [149,] 1870 1828 1839
## [150,] 1930 1826 1828
## [151,] 1920 1828 1826
## [152,] 1910 1840 1828
## [153,] 1950 1854 1840
## [154,] 1960 1868 1854
## [155,] 1980 1887 1868
## [156,] 1930 1905 1887
## [157,] 1770 1894 1905
## [158,] 1790 1901 1894
## [159,] 1600 1874 1901
## [160,] 1730 1854 1874
## [161,] 1560 1818 1854
## [162,] 1740 1801 1818
## [163,] 1850 1791 1801
## [164,] 1960 1791 1791
## [165,] 1810 1774 1791
## [166,] 2000 1781 1774
## [167,] 1980 1802 1781
## [168,] 1910 1814 1802
## [169,] 1870 1841 1814
## [170,] 1810 1849 1841
## [171,] 1820 1875 1849
## [172,] 1990 1900 1875
## [173,] 1730 1888 1900
## [174,] 1640 1856 1888
## [175,] 1660 1841 1856
## [176,] 1660 1807 1841
## [177,] 1570 1766 1807
## [178,] 1920 1767 1766
## [179,] 1640 1744 1767
## [180,] 1760 1739 1744
## [181,] 1800 1737 1739
## [182,] 1840 1722 1737
## [183,] 1920 1741 1722
## [184,] 1830 1760 1741
## [185,] 1830 1777 1760
## [186,] 1680 1779 1777
## [187,] 1540 1776 1779
## [188,] 1430 1727 1776
## [189,] 1210 1684 1727
## [190,] 1250 1633 1684
## [191,] 1290 1582 1633
## [192,] 1490 1547 1582
## [193,] 1580 1513 1547
## [194,] 1650 1495 1513
## [195,] 1620 1474 1495
## [196,] 1800 1486 1474
## [197,] 1700 1502 1486
## [198,] 1740 1533 1502
## [199,] 1650 1577 1533
## [200,] 1690 1621 1577
## [201,] 1520 1644 1621
## [202,] 1620 1657 1644
## [203,] 1410 1640 1657
## [204,] 1520 1627 1640
## [205,] 1380 1603 1627
## [206,] 1410 1564 1603
## [207,] 1500 1544 1564
## [208,] 1500 1520 1544
## [209,] 1620 1517 1520
## [210,] 1750 1523 1517
## [211,] 1830 1554 1523
## [212,] 1840 1576 1554
## [213,] 1730 1608 1576
## [214,] 1750 1631 1608
## [215,] 1660 1659 1631
## [216,] 1510 1669 1659
## [217,] 1390 1658 1669
## [218,] 1380 1646 1658
## [219,] 1480 1632 1646
## [220,] 1540 1611 1632
## [221,] 1610 1589 1611
## [222,] 1590 1564 1589
## [223,] 1670 1558 1564
## [224,] 1690 1552 1558
## [225,] 1760 1562 1552
## [226,] 1720 1583 1562
## [227,] 1750 1619 1583
## [228,] 1740 1655 1619
## [229,] 1910 1698 1655
## [230,] 1690 1713 1698
## [231,] 1590 1711 1713
## [232,] 1510 1703 1711
## [233,] 1470 1683 1703
## [234,] 1420 1656 1683
## [235,] 1440 1624 1656
## [236,] 1460 1598 1624
## [237,] 1480 1571 1598
## [238,] 1640 1561 1571
## [239,] 1640 1534 1561
## [240,] 1730 1538 1534
## [241,] 1830 1562 1538
## [242,] 1560 1567 1562
## [243,] 1400 1560 1567
## [244,] 1350 1553 1560
## [245,] 1320 1541 1553
## [246,] 1370 1532 1541
## [247,] 1340 1518 1532
## [248,] 1480 1502 1518
## [249,] 1480 1486 1502
## [250,] 1600 1473 1486
## [251,] 1680 1458 1473
## [252,] 1750 1477 1458
## [253,] 1780 1515 1477
## [254,] 1700 1550 1515
## [255,] 1860 1604 1550
## [256,] 1690 1636 1604
## [257,] 1850 1687 1636
## [258,] 1700 1709 1687
## [259,] 1570 1718 1709
## [260,] 1660 1724 1718
## [261,] 1600 1716 1724
## [262,] 1570 1698 1716
## [263,] 1590 1679 1698
## [264,] 1710 1680 1679
## [265,] 1640 1658 1680
## [266,] 1600 1649 1658
## [267,] 1730 1637 1649
## [268,] NA NA 1637
## [269,] NA NA 1637
## [270,] NA NA 1637
## [271,] NA NA 1637
## [272,] NA NA 1637
## [273,] NA NA 1637
## [274,] NA NA 1637
## [275,] NA NA 1637
## [276,] NA NA 1637
## [277,] NA NA 1637
## [278,] NA NA 1637
## [279,] NA NA 1637
## [280,] NA NA 1637
## [281,] NA NA 1637
## [282,] NA NA 1637
## [283,] NA NA 1637
## [284,] NA NA 1637
## [285,] NA NA 1637
## [286,] NA NA 1637
## [287,] NA NA 1637
## [288,] NA NA 1637
## [289,] NA NA 1637
## [290,] NA NA 1637
## [291,] NA NA 1637
## [292,] NA NA 1637
## [293,] NA NA 1637
## [294,] NA NA 1637
## [295,] NA NA 1637
## [296,] NA NA 1637
## [297,] NA NA 1637
## [298,] NA NA 1637
## [299,] NA NA 1637
## [300,] NA NA 1637
## [301,] NA NA 1637
## [302,] NA NA 1637
## [303,] NA NA 1637
## [304,] NA NA 1637
## [305,] NA NA 1637
## [306,] NA NA 1637
## [307,] NA NA 1637
## [308,] NA NA 1637
## [309,] NA NA 1637
## [310,] NA NA 1637
## [311,] NA NA 1637
## [312,] NA NA 1637
## [313,] NA NA 1637
## [314,] NA NA 1637
## [315,] NA NA 1637
## [316,] NA NA 1637
## [317,] NA NA 1637
## [318,] NA NA 1637
## [319,] NA NA 1637
## [320,] NA NA 1637
## [321,] NA NA 1637
## [322,] NA NA 1637
## [323,] NA NA 1637
## [324,] NA NA 1637
## [325,] NA NA 1637
## [326,] NA NA 1637
## [327,] NA NA 1637
## [328,] NA NA 1637
## [329,] NA NA 1637
## [330,] NA NA 1637
## [331,] NA NA 1637
## [332,] NA NA 1637
## [333,] NA NA 1637
## [334,] NA NA 1637
ts.plot(data_air.ts, xlab="Time Period ", ylab="Tinggi Air", main= "SMA N = 11 Data Tinggi Air")
points(data_air.ts)
lines(data.gab[,2],col="green",lwd=2)
lines(data.gab[,3],col="red",lwd=2)
legend("topleft",c("data aktual","data pemulusan","data peramalan"), lty=8, col=c("black","green","red"), cex=0.5)
The following syntaxes are used to measure the accuracy using SSE, MSE, and MAPE on both traning and testing data.
Selanjutnya perhitungan akurasi dilakukan dengan ukuran akurasi Sum Squares Error (SSE), Mean Square Error (MSE) dan Mean Absolute Percentage Error (MAPE). Perhitungan akurasi dilakukan baik pada data latih maupun pada data uji.
#Menghitung nilai keakuratan data traning
error_train.sma = training.ts-data.ramal[1:length(training.ts)]
SSE_train.sma = sum(error_train.sma[12:length(training.ts)]^2)
MSE_train.sma = mean(error_train.sma[12:length(training.ts)]^2)
MAPE_train.sma = mean(abs((error_train.sma[12:length(training.ts)]/training.ts[12:length(training.ts)])*100))
akurasi_train.sma <- matrix(c(SSE_train.sma, MSE_train.sma, MAPE_train.sma))
row.names(akurasi_train.sma)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_train.sma) <- c("Akurasi m = 11")
akurasi_train.sma
## Akurasi m = 11
## SSE 9.317678e+06
## MSE 3.639718e+04
## MAPE 9.348629e+00
#Menghitung nilai keakuratan data uji
error_test.sma = testing.ts-data.gab[268:334,3]
SSE_test.sma = sum(error_test.sma^2)
MSE_test.sma = mean(error_test.sma^2)
MAPE_test.sma = mean(abs((error_test.sma/testing.ts*100)))
akurasi_test.sma <- matrix(c(SSE_test.sma, MSE_test.sma, MAPE_test.sma))
row.names(akurasi_test.sma)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_test.sma) <- c("Akurasi m = 11")
akurasi_test.sma
## Akurasi m = 11
## SSE 1.737403e+06
## MSE 2.593139e+04
## MAPE 6.468447e+00
#Cara 1 (fungsi ses)
ses1 <- ses(training.ts, h=67, alpha = NULL)
plot(ses1)
ses1
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 268 1702.414 1531.7680 1873.060 1441.43345 1963.395
## 269 1702.414 1487.3456 1917.483 1373.49527 2031.333
## 270 1702.414 1450.6428 1954.185 1317.36308 2087.465
## 271 1702.414 1418.6481 1986.180 1268.43140 2136.397
## 272 1702.414 1389.9121 2014.916 1224.48348 2180.345
## 273 1702.414 1363.6046 2041.224 1184.24968 2220.579
## 274 1702.414 1339.1976 2065.631 1146.92237 2257.906
## 275 1702.414 1316.3304 2088.498 1111.95009 2292.878
## 276 1702.414 1294.7439 2110.084 1078.93640 2325.892
## 277 1702.414 1274.2444 2130.584 1047.58501 2357.243
## 278 1702.414 1254.6824 2150.146 1017.66756 2387.161
## 279 1702.414 1235.9401 2168.888 989.00361 2415.825
## 280 1702.414 1217.9222 2186.906 961.44769 2443.381
## 281 1702.414 1200.5508 2204.277 934.88045 2469.948
## 282 1702.414 1183.7609 2221.067 909.20253 2495.626
## 283 1702.414 1167.4978 2237.330 884.33018 2520.498
## 284 1702.414 1151.7147 2253.114 860.19205 2544.636
## 285 1702.414 1136.3715 2268.457 836.72670 2568.102
## 286 1702.414 1121.4334 2283.395 813.88083 2590.947
## 287 1702.414 1106.8699 2297.958 791.60783 2613.220
## 288 1702.414 1092.6541 2312.174 769.86664 2634.962
## 289 1702.414 1078.7623 2326.066 748.62091 2656.207
## 290 1702.414 1065.1732 2339.655 727.83822 2676.990
## 291 1702.414 1051.8679 2352.960 707.48956 2697.339
## 292 1702.414 1038.8294 2365.999 687.54882 2717.279
## 293 1702.414 1026.0421 2378.786 667.99242 2736.836
## 294 1702.414 1013.4922 2391.336 648.79894 2756.029
## 295 1702.414 1001.1668 2403.661 629.94890 2774.879
## 296 1702.414 989.0543 2415.774 611.42450 2793.404
## 297 1702.414 977.1442 2427.684 593.20943 2811.619
## 298 1702.414 965.4264 2439.402 575.28869 2829.540
## 299 1702.414 953.8921 2450.936 557.64846 2847.180
## 300 1702.414 942.5328 2462.295 540.27595 2864.552
## 301 1702.414 931.3409 2473.487 523.15935 2881.669
## 302 1702.414 920.3091 2484.519 506.28766 2898.541
## 303 1702.414 909.4307 2495.397 489.65066 2915.178
## 304 1702.414 898.6996 2506.129 473.23883 2931.589
## 305 1702.414 888.1099 2516.718 457.04326 2947.785
## 306 1702.414 877.6561 2527.172 441.05561 2963.773
## 307 1702.414 867.3332 2537.495 425.26809 2979.560
## 308 1702.414 857.1364 2547.692 409.67336 2995.155
## 309 1702.414 847.0611 2557.767 394.26453 3010.564
## 310 1702.414 837.1031 2567.725 379.03509 3025.793
## 311 1702.414 827.2584 2577.570 363.97893 3040.849
## 312 1702.414 817.5232 2587.305 349.09027 3055.738
## 313 1702.414 807.8940 2596.934 334.36363 3070.465
## 314 1702.414 798.3673 2606.461 319.79384 3085.034
## 315 1702.414 788.9400 2615.888 305.37600 3099.452
## 316 1702.414 779.6090 2625.219 291.10543 3113.723
## 317 1702.414 770.3714 2634.457 276.97773 3127.850
## 318 1702.414 761.2244 2643.604 262.98868 3141.840
## 319 1702.414 752.1655 2652.663 249.13428 3155.694
## 320 1702.414 743.1921 2661.636 235.41072 3169.417
## 321 1702.414 734.3020 2670.526 221.81435 3183.014
## 322 1702.414 725.4927 2679.336 208.34171 3196.486
## 323 1702.414 716.7621 2688.066 194.98947 3209.839
## 324 1702.414 708.1082 2696.720 181.75447 3223.074
## 325 1702.414 699.5290 2705.299 168.63367 3236.195
## 326 1702.414 691.0225 2713.806 155.62417 3249.204
## 327 1702.414 682.5870 2722.241 142.72318 3262.105
## 328 1702.414 674.2207 2730.607 129.92802 3274.900
## 329 1702.414 665.9219 2738.906 117.23614 3287.592
## 330 1702.414 657.6891 2747.139 104.64508 3300.183
## 331 1702.414 649.5206 2755.308 92.15246 3312.676
## 332 1702.414 641.4150 2763.413 79.75602 3325.072
## 333 1702.414 633.3709 2771.457 67.45357 3337.375
## 334 1702.414 625.3868 2779.441 55.24300 3349.585
autoplot(ses1) +
autolayer(fitted(ses1), series="Fitted") +
ylab("Tinggi Air") + xlab("Periode")
#Cara 2 (fungsi Holtwinter)
ses2 <- HoltWinters(training.ts, gamma = FALSE, beta = FALSE, alpha = NULL)
plot(ses2)
#ramalan
ramalan2<- forecast(ses1, h=67)
ramalan2
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 268 1702.414 1531.7680 1873.060 1441.43345 1963.395
## 269 1702.414 1487.3456 1917.483 1373.49527 2031.333
## 270 1702.414 1450.6428 1954.185 1317.36308 2087.465
## 271 1702.414 1418.6481 1986.180 1268.43140 2136.397
## 272 1702.414 1389.9121 2014.916 1224.48348 2180.345
## 273 1702.414 1363.6046 2041.224 1184.24968 2220.579
## 274 1702.414 1339.1976 2065.631 1146.92237 2257.906
## 275 1702.414 1316.3304 2088.498 1111.95009 2292.878
## 276 1702.414 1294.7439 2110.084 1078.93640 2325.892
## 277 1702.414 1274.2444 2130.584 1047.58501 2357.243
## 278 1702.414 1254.6824 2150.146 1017.66756 2387.161
## 279 1702.414 1235.9401 2168.888 989.00361 2415.825
## 280 1702.414 1217.9222 2186.906 961.44769 2443.381
## 281 1702.414 1200.5508 2204.277 934.88045 2469.948
## 282 1702.414 1183.7609 2221.067 909.20253 2495.626
## 283 1702.414 1167.4978 2237.330 884.33018 2520.498
## 284 1702.414 1151.7147 2253.114 860.19205 2544.636
## 285 1702.414 1136.3715 2268.457 836.72670 2568.102
## 286 1702.414 1121.4334 2283.395 813.88083 2590.947
## 287 1702.414 1106.8699 2297.958 791.60783 2613.220
## 288 1702.414 1092.6541 2312.174 769.86664 2634.962
## 289 1702.414 1078.7623 2326.066 748.62091 2656.207
## 290 1702.414 1065.1732 2339.655 727.83822 2676.990
## 291 1702.414 1051.8679 2352.960 707.48956 2697.339
## 292 1702.414 1038.8294 2365.999 687.54882 2717.279
## 293 1702.414 1026.0421 2378.786 667.99242 2736.836
## 294 1702.414 1013.4922 2391.336 648.79894 2756.029
## 295 1702.414 1001.1668 2403.661 629.94890 2774.879
## 296 1702.414 989.0543 2415.774 611.42450 2793.404
## 297 1702.414 977.1442 2427.684 593.20943 2811.619
## 298 1702.414 965.4264 2439.402 575.28869 2829.540
## 299 1702.414 953.8921 2450.936 557.64846 2847.180
## 300 1702.414 942.5328 2462.295 540.27595 2864.552
## 301 1702.414 931.3409 2473.487 523.15935 2881.669
## 302 1702.414 920.3091 2484.519 506.28766 2898.541
## 303 1702.414 909.4307 2495.397 489.65066 2915.178
## 304 1702.414 898.6996 2506.129 473.23883 2931.589
## 305 1702.414 888.1099 2516.718 457.04326 2947.785
## 306 1702.414 877.6561 2527.172 441.05561 2963.773
## 307 1702.414 867.3332 2537.495 425.26809 2979.560
## 308 1702.414 857.1364 2547.692 409.67336 2995.155
## 309 1702.414 847.0611 2557.767 394.26453 3010.564
## 310 1702.414 837.1031 2567.725 379.03509 3025.793
## 311 1702.414 827.2584 2577.570 363.97893 3040.849
## 312 1702.414 817.5232 2587.305 349.09027 3055.738
## 313 1702.414 807.8940 2596.934 334.36363 3070.465
## 314 1702.414 798.3673 2606.461 319.79384 3085.034
## 315 1702.414 788.9400 2615.888 305.37600 3099.452
## 316 1702.414 779.6090 2625.219 291.10543 3113.723
## 317 1702.414 770.3714 2634.457 276.97773 3127.850
## 318 1702.414 761.2244 2643.604 262.98868 3141.840
## 319 1702.414 752.1655 2652.663 249.13428 3155.694
## 320 1702.414 743.1921 2661.636 235.41072 3169.417
## 321 1702.414 734.3020 2670.526 221.81435 3183.014
## 322 1702.414 725.4927 2679.336 208.34171 3196.486
## 323 1702.414 716.7621 2688.066 194.98947 3209.839
## 324 1702.414 708.1082 2696.720 181.75447 3223.074
## 325 1702.414 699.5290 2705.299 168.63367 3236.195
## 326 1702.414 691.0225 2713.806 155.62417 3249.204
## 327 1702.414 682.5870 2722.241 142.72318 3262.105
## 328 1702.414 674.2207 2730.607 129.92802 3274.900
## 329 1702.414 665.9219 2738.906 117.23614 3287.592
## 330 1702.414 657.6891 2747.139 104.64508 3300.183
## 331 1702.414 649.5206 2755.308 92.15246 3312.676
## 332 1702.414 641.4150 2763.413 79.75602 3325.072
## 333 1702.414 633.3709 2771.457 67.45357 3337.375
## 334 1702.414 625.3868 2779.441 55.24300 3349.585
#Keakuratan Metode
#Pada data training
SSE2<-ses2$SSE
MSE2<-ses2$SSE/length(training.ts)
RMSE2<-sqrt(MSE2)
akurasi2 <- matrix(c(SSE2,MSE2,RMSE2))
row.names(akurasi2)<- c("SSE", "MSE", "RMSE")
colnames(akurasi2) <- c("Akurasi lamda = NULL")
akurasi2
## Akurasi lamda = NULL
## SSE 4698871.6870
## MSE 17598.7704
## RMSE 132.6604
selisih2<-ramalan2$mean-data_testing$tinggi_air
SSEtesting2<-sum(selisih2^2)
MSEtesting2<-SSEtesting2/length(data_testing)
akurasitesting2 <- matrix(c(MSEtesting2))
row.names(akurasitesting2)<- c("MSE2")
akurasitesting2
## [,1]
## MSE2 514835.6
#Menggunakan fungsi `accuracy`
accuracy(ramalan2, data_testing$tinggi_air)
## ME RMSE MAE MPE MAPE MASE
## Training set -0.8823167 132.6562 100.0806 -0.4139928 5.793112 0.9922269
## Test set 48.0336601 123.9686 89.3926 2.3647730 4.900716 0.8862628
## ACF1
## Training set -0.04459385
## Test set NA
According to the smoothing technique using SMA, the resulting MAPE stands at 9.348629 for the training dataset and 6.46844 for the testing dataset. Conversely, the SES method yields MAPE values of 5.793112 for the training dataset and 4.900716 for the testing dataset. Consequently, the SES smoothing method demonstrates superior optimality compared to SMA for the provided dataset.
Berdasarkan metode pemulusan menggunakan SMA dihasilkan nilai MAPE sebesar 9.348629 untuk data training dan 6.46844 untuk data testing. Sedangkan, metode pemulusan SES menghasilkan nilai MAPE sebesar 5.793112 untuk data training dan 4.900716 data testing. Oleh karena itu, metode pemulusan SES lebih optimal dibandingkan SMA untuk data yang digunakan.