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.