Vous êtes sur la page 1sur 8

TSF – Practical 5

Aliasger Karachiwala
75252019107
S056

QUESTION 1

> library(forecast)
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
This is forecast 8.18
Crossvalidated is a great place to get help on forecasting issues:
http://stats.stackexchange.com/tags/forecasting.
Warning message:
package ‘forecast’ was built under R version 4.1.2
> library(ggplot2)
> data1=read.csv('/Users/aashnagandhi/Desktop/Occupancy.csv')
> head(data1)
X Occupancy
11 59
22 54
33 54
44 61
55 58
66 55

> data1_ts=ts(data1$Occupancy,start =2006,frequency = 4 )


> data1_ts
Qtr1 Qtr2 Qtr3 Qtr4
2006 59.0 54.0 54.0 61.0
2007 58.0 55.0 55.0 58.0
2008 58.0 56.4 53.5 56.8
2009 58.4 54.1 53.5 57.2
2010 59.8 54.3 54.9 61.1
2011 55.3 52.4 55.3 59.2
2012 58.9 53.5 56.0 61.4
2013 60.6 56.0 57.8 61.6
2014 64.2 59.6 61.8 64.4
2015 66.3 62.5 62.9 65.4
2016 65.7 61.0 61.1 64.4
2017 62.5 59.6 61.3 62.3
2018 65.0 61.1 61.1 64.4
2019 63.2 62.4 60.6 64.8
2020 65.4 59.8 62.1 64.2
2021 62.3 57.2 59.1 63.5
2022 63.4 59.0 59.9 64.4
2023 62.8 59.4 59.0 64.3
2024 63.4 60.9

> MA3=ma(data1_ts,order=3)
> MA5=ma(data1_ts,order = 5)
> MA4=ma(data1_ts,order = 4)

> MA3
Qtr1 Qtr2 Qtr3 Qtr4
2006 NA 55.66667 56.33333 57.66667
2007 58.00000 56.00000 56.00000 57.00000
2008 57.46667 55.96667 55.56667 56.23333
2009 56.43333 55.33333 54.93333 56.83333
2010 57.10000 56.33333 56.76667 57.10000
2011 56.26667 54.33333 55.63333 57.80000
2012 57.20000 56.13333 56.96667 59.33333
2013 59.33333 58.13333 58.46667 61.20000
2014 61.80000 61.86667 61.93333 64.16667
2015 64.40000 63.90000 63.60000 64.66667
2016 64.03333 62.60000 62.16667 62.66667
2017 62.16667 61.13333 61.06667 62.86667
2018 62.80000 62.40000 62.20000 62.90000
2019 63.33333 62.06667 62.60000 63.60000
2020 63.33333 62.43333 62.03333 62.86667
2021 61.23333 59.53333 59.93333 62.00000
2022 61.96667 60.76667 61.10000 62.36667
2023 62.20000 60.40000 60.90000 62.23333
2024 62.86667 NA

> MA5
Qtr1 Qtr2 Qtr3 Qtr4
2006 NA NA 57.20 56.40
2007 56.60 57.40 56.80 56.48
2008 56.18 56.54 56.62 55.84
2009 55.26 56.00 56.60 55.78
2010 55.94 57.46 57.08 55.60
2011 55.80 56.66 56.22 55.86
2012 56.58 57.80 58.08 57.50
2013 58.36 59.48 60.04 59.84
2014 61.00 62.32 63.26 62.92
2015 63.58 64.30 64.56 63.50
2016 63.22 63.52 62.94 61.72
2017 61.78 62.02 62.14 61.86
2018 62.16 62.78 62.96 62.44
2019 62.34 63.08 63.28 62.60
2020 62.54 63.26 62.76 61.12
2021 60.98 61.26 61.10 60.44
2022 60.98 62.04 61.90 61.10
2023 61.10 61.98 61.78 61.40
2024 NA NA

> MA4
Qtr1 Qtr2 Qtr3 Qtr4
2006 NA NA 56.8750 56.8750
2007 57.1250 56.8750 56.5000 56.6750
2008 56.6625 56.3250 56.2250 55.9875
2009 55.7000 55.7500 55.9750 56.1750
2010 56.3750 57.0375 56.9625 56.1625
2011 55.9750 55.7875 56.0000 56.5875
2012 56.8125 57.1750 57.6625 58.1875
2013 58.7250 58.9750 59.4500 60.3500
2014 61.3000 62.1500 62.7625 63.3875
2015 63.8875 64.1500 64.2000 63.9375
2016 63.5250 63.1750 62.6500 62.0750
2017 61.9250 61.6875 61.7375 62.2375
2018 62.4000 62.6375 62.6750 62.6125
2019 62.7125 62.7000 63.0250 62.9750
2020 62.8375 62.9500 62.4875 61.7750
2021 61.0750 60.6125 60.6625 61.0250
2022 61.3500 61.5625 61.6000 61.5750
2023 61.5125 61.3875 61.4500 61.7125
2024 NA NA

> MA2X4=ma(data1_ts,order = 4,centre=TRUE)


> MA2X4
Qtr1 Qtr2 Qtr3 Qtr4
2006 NA NA 56.8750 56.8750
2007 57.1250 56.8750 56.5000 56.6750
2008 56.6625 56.3250 56.2250 55.9875
2009 55.7000 55.7500 55.9750 56.1750
2010 56.3750 57.0375 56.9625 56.1625
2011 55.9750 55.7875 56.0000 56.5875
2012 56.8125 57.1750 57.6625 58.1875
2013 58.7250 58.9750 59.4500 60.3500
2014 61.3000 62.1500 62.7625 63.3875
2015 63.8875 64.1500 64.2000 63.9375
2016 63.5250 63.1750 62.6500 62.0750
2017 61.9250 61.6875 61.7375 62.2375
2018 62.4000 62.6375 62.6750 62.6125
2019 62.7125 62.7000 63.0250 62.9750
2020 62.8375 62.9500 62.4875 61.7750
2021 61.0750 60.6125 60.6625 61.0250
2022 61.3500 61.5625 61.6000 61.5750
2023 61.5125 61.3875 61.4500 61.7125
2024 NA NA

>MSE3=mean((data1_ts-MA3)^2,na.rm = TRUE) # na.rm = TRUE used for removing missing


value
> MSE3
[1] 2.536836

> MAD3=mean(abs(data1_ts-MA3),na.rm = TRUE)


> MAD3
[1] 1.369907

> MSE5=mean((data1_ts-MA5)^2,na.rm = TRUE)


> MSE5
[1] 6.582143

> MAD5=mean(abs(data1_ts-MA5),na.rm = TRUE)


> MAD5
[1] 2.334571
> MSE2X4=mean((data1_ts-MA2X4)^2,na.rm = TRUE)
> MSE2X4
[1] 4.789196

> MAD2X4=mean(abs(data1_ts-MA2X4),na.rm = TRUE)


> MAD2X4
[1] 1.958929

> c(MSE3,MSE5,MSE2X4)
[1] 2.536836 6.582143 4.789196

> c(MAD3,MAD5,MAD2X4)
[1] 1.369907 2.334571 1.958929
> autoplot(data1_ts, series="Data")+
+ autolayer(MA3, series="4MA")+
+ autolayer(MA5, series="5MA")+
+ autolayer(MA2X4, series="2X4MA")
QUESTION 2

> ##MSE and MAD are minimum for 3 moving average is the best model for the data.
> data2=read.table('/Users/aashnagandhi/Desktop/SOI.txt')
> SOI_ts=ts(data2,start = 1866,frequency = 12)

> MA2X4=ma(SOI_ts,order=4,centre=TRUE)
> MA2X12=ma(SOI_ts,order=12,centre=TRUE)
> MSE2X4=mean((SOI_ts-MA2X4)^2,na.rm = TRUE) # na.rm = TRUE used for removing
missing value
> MSE2X4
[1] 7408.961
> MAD2X4=mean(abs(SOI_ts-MA2X4),na.rm = TRUE)
> MAD2X4
[1] 68.17439
> MSE2X12=mean((SOI_ts-MA2X12)^2,na.rm = TRUE) # na.rm = TRUE used for removing
missing value
> MSE2X12
[1] 10942.38
> MAD2X12=mean(abs(SOI_ts-MA2X12),na.rm = TRUE)
> MAD2X12
[1] 86.44077
> c(MSE2X4,MSE2X12)
[1] 7408.961 10942.385
> c(MAD2X4,MAD2X12)
[1] 68.17439 86.44077
> ##MSE and MAD are minimum for 2X4, hence that moving average is the best model for
the data.
> autoplot(SOI_ts, series="Data")+
+ autolayer(MA2X4, series="2X4MA")+
+ autolayer(MA2X12, series="2X12MA")

QUESTION 3

> data3=read.csv('/Users/aashnagandhi/Desktop/Manf.csv')
> data3_ts=ts(data3[,2],start=2000,frequency = 4)
> DA=decompose(data3_ts,type="additive")
> DP=decompose(data3_ts,type="multiplicative")
> plot(DA)

> plot(DP)
>

########Q4#####
> data4=read.csv('/Users/aashnagandhi/Desktop/elec.csv')
> data4_ts=ts(data4[,2],start=1958,frequency = 12)
> DA=decompose(data4_ts,type="additive")
> DP=decompose(data4_ts,type="multiplicative")
> plot(DA)

> plot(DP)

Vous aimerez peut-être aussi