Professional Documents
Culture Documents
20BCE1205 Lab5
20BCE1205 Lab5
Shubham Ojha
20BCE1205
2023-02-06
# Simple Moving Average
years<-c(1:12)
years
## [1] 1 2 3 4 5 6 7 8 9 10 11 12
sales<-c(5.2,4.9,5.5,4.9,5.2,5.7,5.4,5.8,5.9,6,5.2,4.8)
df<-data.frame(years,sales)
df
## years sales
## 1 1 5.2
## 2 2 4.9
## 3 3 5.5
## 4 4 4.9
## 5 5 5.2
## 6 6 5.7
## 7 7 5.4
## 8 8 5.8
## 9 9 5.9
## 10 10 6.0
## 11 11 5.2
## 12 12 4.8
r<-nrow(df)
n=3
ma<-rep(0,r)
e<-rep(0,r)
abe<-rep(0,r)
e2<-rep(0,r)
pe<-rep(0,r)
ma
## [1] 0 0 0 0 0 0 0 0 0 0 0 0
for (i in 4:12) {
a<-((df$sales[i-3]+df$sales[i-2]+df$sales[i-1])/3)
ma[i]=a
}
ma
for (i in 4:12) {
b<-(df$sales[i]-ma[i])
e[i]=b
}
e
for (i in 4:12) {
abe[i]=abs(e[i])
e2[i]=e[i]*e[i]
pe[i]=(abe[i]/sales[i])*100
}
abe
e2
pe
df<-cbind(df,e)
df<-cbind(df,abe)
df<-cbind(df,e2)
df<-cbind(df,pe)
df
## years sales e abe e2 pe
## 1 1 5.2 0.0000000 0.0000000 0.00000000 0.000000
## 2 2 4.9 0.0000000 0.0000000 0.00000000 0.000000
## 3 3 5.5 0.0000000 0.0000000 0.00000000 0.000000
## 4 4 4.9 -0.3000000 0.3000000 0.09000000 6.122449
## 5 5 5.2 0.1000000 0.1000000 0.01000000 1.923077
## 6 6 5.7 0.5000000 0.5000000 0.25000000 8.771930
## 7 7 5.4 0.1333333 0.1333333 0.01777778 2.469136
## 8 8 5.8 0.3666667 0.3666667 0.13444444 6.321839
## 9 9 5.9 0.2666667 0.2666667 0.07111111 4.519774
## 10 10 6.0 0.3000000 0.3000000 0.09000000 5.000000
## 11 11 5.2 -0.7000000 0.7000000 0.49000000 13.461538
## 12 12 4.8 -0.9000000 0.9000000 0.81000000 18.750000
mae<-sum(df$abe)/(r-n)
mae
## [1] 0.3962963
mse<-sum(df$e2)/(r-n)
mse
## [1] 0.2181481
rmse<-sqrt(mse)
rmse
## [1] 0.4670633
mape<-sum(df$pe)/(r-n)
mape
## [1] 7.482194
## [1] 1 2 3 4 5 6 7 8 9 10 11 12
sales<-c(5.2,4.9,5.5,4.9,5.2,5.7,5.4,5.8,5.9,6,5.2,4.8)
df<-data.frame(years,sales)
df
## years sales
## 1 1 5.2
## 2 2 4.9
## 3 3 5.5
## 4 4 4.9
## 5 5 5.2
## 6 6 5.7
## 7 7 5.4
## 8 8 5.8
## 9 9 5.9
## 10 10 6.0
## 11 11 5.2
## 12 12 4.8
r<-nrow(df)
n=3
w=c(1,2,1)
ma<-rep(0,r)
e<-rep(0,r)
abe<-rep(0,r)
e2<-rep(0,r)
pe<-rep(0,r)
s=sum(w)
for (i in 4:12) {
a<-(((df$sales[i-3]*w[1])+(df$sales[i-2]*w[2])+(df$sales[i-1]*w[3]))/s)
ma[i]=a
}
ma
## [1] 0.000 0.000 0.000 5.125 5.200 5.125 5.250 5.500 5.575 5.725 5.900
5.775
for (i in 4:12) {
b<-(df$sales[i]-ma[i])
e[i]=b
}
e
## [1] 0.000 0.000 0.000 -0.225 0.000 0.575 0.150 0.300 0.325 0.275
## [11] -0.700 -0.975
for (i in 4:12) {
abe[i]=abs(e[i])
e2[i]=e[i]*e[i]
pe[i]=(abe[i]/sales[i])*100
}
abe
## [1] 0.000 0.000 0.000 0.225 0.000 0.575 0.150 0.300 0.325 0.275 0.700
0.975
e2
pe
## [1] 0.000000 0.000000 0.000000 4.591837 0.000000 10.087719 2.777778
## [8] 5.172414 5.508475 4.583333 13.461538 20.312500
df<-cbind(df,e)
df<-cbind(df,abe)
df<-cbind(df,e2)
df<-cbind(df,pe)
df
mae<-sum(df$abe)/(r-n)
mae
## [1] 0.3916667
mse<-sum(df$e2)/(r-n)
mse
## [1] 0.2350694
rmse<-sqrt(mse)
rmse
## [1] 0.4848396
mape<-sum(df$pe)/(r-n)
mape
## [1] 7.388399
## [1] 1 2 3 4 5 6 7 8 9 10
sales<-c(30,25,35,25,20,30,35,40,30,45)
df<-data.frame(years,sales)
df
## years sales
## 1 1 30
## 2 2 25
## 3 3 35
## 4 4 25
## 5 5 20
## 6 6 30
## 7 7 35
## 8 8 40
## 9 9 30
## 10 10 45
r<-nrow(df)
n=3
alpha=0.3
ma<-rep(0,r+1)
e<-rep(0,r+1)
abe<-rep(0,r+1)
e2<-rep(0,r+1)
pe<-rep(0,r+1)
for (i in 1:(r+1)) {
if(i==1){
ma[i]=df$sales[i]
}else{
a<-((alpha*df$sales[i-1])+((1-alpha)*ma[i-1]))
ma[i]=a
}
}
ma<-ma[1:r]
ma
for (i in (n+1):r) {
b<-(df$sales[i]-ma[i])
e[i]=b
}
for (i in (n+1):r) {
abe[i]=abs(e[i])
e2[i]=e[i]*e[i]
pe[i]=(abe[i]/sales[i])*100
}
e<-e[1:r]
abe<-abe[1:r]
e2<-e2[1:r]
pe<-pe[1:r]
df<-cbind(df,e)
df<-cbind(df,abe)
df<-cbind(df,e2)
df<-cbind(df,pe)
df
mae<-sum(df$abe)/(r-n)
mae
## [1] 7.42465
mse<-sum(df$e2)/(r-n)
mse
## [1] 66.77521
rmse<-sqrt(mse)
rmse
## [1] 8.17161
mape<-sum(df$pe)/(r-n)
mape
## [1] 23.53201
# Auto Correlation
yt<-c(2,3,5,7,9,10)
df<-data.frame(yt)
df
## yt
## 1 2
## 2 3
## 3 5
## 4 7
## 5 9
## 6 10
r<-nrow(df)
yt1<-rep(0,r)
for (i in 2:r) {
yt1[i]<-yt[i-1]
}
yt1
## [1] 0 2 3 5 7 9
df<-cbind(df,yt1)
df
## yt yt1
## 1 2 0
## 2 3 2
## 3 5 3
## 4 7 5
## 5 9 7
## 6 10 9
my<-mean(df$yt)
num<-sum((df$yt[2:r]-my)*(df$yt1[2:r]-my))
dem<-sum((df$yt[1:r]-my)*(df$yt[1:r]-my))
num
## [1] 29
dem
## [1] 52
autocorrelation=num/dem
autocorrelation
## [1] 0.5576923