library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'ggplot2' was built under R version 4.3.3
## Warning: package 'tidyr' was built under R version 4.3.2
## Warning: package 'readr' was built under R version 4.3.2
## Warning: package 'purrr' was built under R version 4.3.2
## Warning: package 'dplyr' was built under R version 4.3.2
## Warning: package 'stringr' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(fpp3)
## Warning: package 'fpp3' was built under R version 4.3.3
## Registered S3 method overwritten by 'tsibble':
## method from
## as_tibble.grouped_df dplyr
## ── Attaching packages ──────────────────────────────────────────── fpp3 1.0.0 ──
## ✔ tsibble 1.1.5 ✔ fable 0.3.4
## ✔ tsibbledata 0.4.1 ✔ fabletools 0.4.2
## ✔ feasts 0.3.2
## Warning: package 'tsibble' was built under R version 4.3.3
## Warning: package 'tsibbledata' was built under R version 4.3.3
## Warning: package 'feasts' was built under R version 4.3.3
## Warning: package 'fabletools' was built under R version 4.3.3
## Warning: package 'fable' was built under R version 4.3.3
## ── Conflicts ───────────────────────────────────────────────── fpp3_conflicts ──
## ✖ lubridate::date() masks base::date()
## ✖ dplyr::filter() masks stats::filter()
## ✖ tsibble::intersect() masks base::intersect()
## ✖ tsibble::interval() masks lubridate::interval()
## ✖ dplyr::lag() masks stats::lag()
## ✖ tsibble::setdiff() masks base::setdiff()
## ✖ tsibble::union() masks base::union()
library(readxl)
#2.1:
?aus_production # quarterly time interval
## starting httpd help server ... done
?pelt # annual time interval
?gafa_stock # irregular trading days from 2014-2018
?vic_elec # every 30 min daily
aus_production %>%
autoplot(Bricks) +
labs( y = "million units",
title = "Australian clay brick production")
## Warning: Removed 20 rows containing missing values or values outside the scale range
## (`geom_line()`).
pelt %>%
autoplot(Lynx)+
labs( y = "Number of trades",
title = "Annual Canadian Lynx Tradings")
gafa_stock %>%
autoplot(Close) +
labs( y = "$US",
title = "Closing stock price")
vic_elec %>%
autoplot(Demand)+
labs( y = "total electricity demand in MWh",
title = "Half-hourly electricity demand for Victoria, Australia")
#2.2:
gafa_stock %>%
group_by(Symbol) %>%
filter(Close == max(Close)) %>%
select(Symbol, Date, Close) %>%
arrange(desc(Close))
#2.3:
#a.
tute1 <- read.csv("C:/Users/Chafiaa/Downloads/tute1.csv")
tute1
#b.
mytimeseries <- tute1 %>%
mutate(Quarter = yearquarter(Quarter)) %>%
as_tsibble(index = Quarter)
mytimeseries %>%
pivot_longer(-Quarter) %>%
ggplot(aes(x = Quarter, y = value, colour = name)) +
geom_line() +
facet_grid(name ~ ., scales = 'free_y')
#2.4
library(USgas)
## Warning: package 'USgas' was built under R version 4.3.3
# create tsibble
#index = time, key = categorical information
us_total <-us_total %>%
as_tsibble(key = state,
index = year)
# filter for particular states
us_total %>%
filter(state %in% c("Maine", "Vermont", "New Hampshire", "Massachusetts", "Connecticut", "Rhode Island")) %>%
autoplot(y) +
labs( y = "gas consumption",
title = "Annual Natural gas consumption by state")
#2.5:
#A.
tourst <- read_excel("C:/Users/Chafiaa/Downloads/tourism.xlsx")
tourst
#B.
tour1 <- tourst %>%
mutate(Quarter = yearquarter(Quarter)) %>%
as_tsibble(key = c(Region, State, Purpose),
index = Quarter)
#C.
purpose_region <- tour1 %>%
group_by(Purpose, Region) %>%
summarise(avg_trips = mean(Trips)) %>%
arrange(desc(avg_trips))
## Warning: Current temporal ordering may yield unexpected results.
## ℹ Suggest to sort by `Purpose`, `Region`, `Quarter` first.
purpose_region
## Warning: Current temporal ordering may yield unexpected results.
## ℹ Suggest to sort by `Purpose`, `Region`, `Quarter` first.
## Current temporal ordering may yield unexpected results.
## ℹ Suggest to sort by `Purpose`, `Region`, `Quarter` first.
#d.
tour2 <- tourst %>%
mutate(Quarter = yearquarter(Quarter)) %>%
as_tsibble(key = c(Region, Purpose),
index = Quarter) %>%
group_by(Purpose, Region, State) %>%
summarise(sum_trips = sum(Trips)) %>%
arrange(desc(sum_trips))
## Warning: Current temporal ordering may yield unexpected results.
## ℹ Suggest to sort by `Purpose`, `Region`, `State`, `Quarter` first.
tour2
## Warning: Current temporal ordering may yield unexpected results.
## ℹ Suggest to sort by `Purpose`, `Region`, `State`, `Quarter` first.
## Current temporal ordering may yield unexpected results.
## ℹ Suggest to sort by `Purpose`, `Region`, `State`, `Quarter` first.
ts_state_tourism <- tourst %>%
mutate(state_trips = sum(Trips),
Quarter = yearquarter(Quarter),
.by = c(Quarter, State), .keep = 'none') %>%
distinct() %>%
as_tsibble(index = Quarter, key = State)
ts_state_tourism %>%
autoplot(.vars = state_trips) +
labs(title = 'Australian domestic overnight trips',
x = 'Quarter',
y = 'Trips (Thousands)')
#2.8:
us_employment %>%
filter(Title == "Total Private") %>%
autoplot(Employed) +
ggtitle("Total Private Employed")
us_employment %>%
filter(Title == "Total Private") %>%
gg_season(Employed) +
ggtitle("Total Private Employed")
us_employment %>%
filter(Title == "Total Private") %>%
gg_subseries(Employed) +
ggtitle("Total Private Employed")
us_employment %>%
filter(Title == "Total Private") %>%
gg_lag(Employed) +
ggtitle("Total Private Employed")
us_employment %>%
filter(Title == "Total Private") %>%
ACF(Employed) %>%
autoplot() +
ggtitle("Total Private Employed")
``` ## The graphs of employment data show an annual seasonality with peaks in the summer months. There is an overall trend that is increasing over time. There are a few years with decreases in employment which are against the long term trend, with 2008 having the most significant decrease.