Simple
Posted on January 1, 2015
install.packages("fpp3")
library ("fpp3" )
library ("readr" ) #for loading csv
library ("jsonlite" ) #for loading json
ββ [1mAttaching packages[22m ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ fpp3 0.4.0 ββ
[32mβ[39m [34mtibble [39m 3.1.6 [32mβ[39m [34mtsibble [39m 1.1.1
[32mβ[39m [34mdplyr [39m 1.0.7 [32mβ[39m [34mtsibbledata[39m 0.3.0
[32mβ[39m [34mtidyr [39m 1.1.4 [32mβ[39m [34mfeasts [39m 0.2.2
[32mβ[39m [34mlubridate [39m 1.8.0 [32mβ[39m [34mfable [39m 0.3.1
[32mβ[39m [34mggplot2 [39m 3.3.5
ββ [1mConflicts[22m βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ fpp3_conflicts ββ
[31mβ[39m [34mlubridate[39m::[32mdate()[39m masks [34mbase[39m::date()
[31mβ[39m [34mdplyr[39m::[32mfilter()[39m masks [34mstats[39m::filter()
[31mβ[39m [34mtsibble[39m::[32mintersect()[39m masks [34mbase[39m::intersect()
[31mβ[39m [34mtsibble[39m::[32minterval()[39m masks [34mlubridate[39m::interval()
[31mβ[39m [34mdplyr[39m::[32mlag()[39m masks [34mstats[39m::lag()
[31mβ[39m [34mtsibble[39m::[32msetdiff()[39m masks [34mbase[39m::setdiff()
[31mβ[39m [34mtsibble[39m::[32munion()[39m masks [34mbase[39m::union()
Load Data
prison <- readr:: read_csv ("https://OTexts.com/fpp3/extrafiles/prison_population.csv" )
[1mRows: [22m[34m3072[39m [1mColumns: [22m[34m6[39m
[36mββ[39m [1mColumn specification[22m [36mββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ[39m
[1mDelimiter:[22m ","
[31mchr[39m (4): State, Gender, Legal, Indigenous
[32mdbl[39m (1): Count
[34mdate[39m (1): Date
[36mβΉ[39m Use [30m[47m[30m[47m`spec()`[47m[30m[49m[39m to retrieve the full column specification for this data.
[36mβΉ[39m Specify the column types or set [30m[47m[30m[47m`show_col_types = FALSE`[47m[30m[49m[39m to quiet this message.
Timeseries are tsibble
2015:2019
means inclusive [2015,2019]
y <- tsibble (
Year = 2015 : 2019 ,
Observation = c (1 ,2 ,3 ,4 ,5 ),
index = Year,
)
A tbl_ts: 5 Γ 2
<tr><th scope=col>Year</th><th scope=col>Observation</th></tr>
<tr><th scope=col><int></th><th scope=col><dbl></th></tr>
<tr><td>2015</td><td>1</td></tr>
<tr><td>2016</td><td>2</td></tr>
<tr><td>2017</td><td>3</td></tr>
<tr><td>2018</td><td>4</td></tr>
<tr><td>2019</td><td>5</td></tr>
Convert Dataframe to tsibble
Pipes %>%
y %>%
mutate (Year = Year+ 10 ) %>%
mutate (Observation = Observation+ 2 )
A tbl_ts: 5 Γ 2
<tr><th scope=col>Year</th><th scope=col>Observation</th></tr>
<tr><th scope=col><dbl></th><th scope=col><dbl></th></tr>
<tr><td>2025</td><td>3</td></tr>
<tr><td>2026</td><td>4</td></tr>
<tr><td>2027</td><td>5</td></tr>
<tr><td>2028</td><td>6</td></tr>
<tr><td>2029</td><td>7</td></tr>
Select Filter Mutate
A tbl_ts: 6 Γ 9
<tr><th scope=col>Month</th><th scope=col>Concession</th><th scope=col>Type</th><th scope=col>ATC1</th><th scope=col>ATC1_desc</th><th scope=col>ATC2</th><th scope=col>ATC2_desc</th><th scope=col>Scripts</th><th scope=col>Cost</th></tr>
<tr><th scope=col><mth></th><th scope=col><chr></th><th scope=col><chr></th><th scope=col><chr></th><th scope=col><chr></th><th scope=col><chr></th><th scope=col><chr></th><th scope=col><dbl></th><th scope=col><dbl></th></tr>
<tr><td>1991 Jul</td><td>Concessional</td><td>Co-payments</td><td>A</td><td>Alimentary tract and metabolism</td><td>A01</td><td>STOMATOLOGICAL PREPARATIONS</td><td>18228</td><td>67877</td></tr>
<tr><td>1991 Aug</td><td>Concessional</td><td>Co-payments</td><td>A</td><td>Alimentary tract and metabolism</td><td>A01</td><td>STOMATOLOGICAL PREPARATIONS</td><td>15327</td><td>57011</td></tr>
<tr><td>1991 Sep</td><td>Concessional</td><td>Co-payments</td><td>A</td><td>Alimentary tract and metabolism</td><td>A01</td><td>STOMATOLOGICAL PREPARATIONS</td><td>14775</td><td>55020</td></tr>
<tr><td>1991 Oct</td><td>Concessional</td><td>Co-payments</td><td>A</td><td>Alimentary tract and metabolism</td><td>A01</td><td>STOMATOLOGICAL PREPARATIONS</td><td>15380</td><td>57222</td></tr>
<tr><td>1991 Nov</td><td>Concessional</td><td>Co-payments</td><td>A</td><td>Alimentary tract and metabolism</td><td>A01</td><td>STOMATOLOGICAL PREPARATIONS</td><td>14371</td><td>52120</td></tr>
<tr><td>1991 Dec</td><td>Concessional</td><td>Co-payments</td><td>A</td><td>Alimentary tract and metabolism</td><td>A01</td><td>STOMATOLOGICAL PREPARATIONS</td><td>15028</td><td>54299</td></tr>
PBS %>%
filter (ATC2 == "A10" ) %>%
select (Month, Concession, ATC2, Cost) %>%
head
A tbl_ts: 6 Γ 6
<tr><th scope=col>Month</th><th scope=col>Concession</th><th scope=col>ATC2</th><th scope=col>Cost</th><th scope=col>Type</th><th scope=col>ATC1</th></tr>
<tr><th scope=col><mth></th><th scope=col><chr></th><th scope=col><chr></th><th scope=col><dbl></th><th scope=col><chr></th><th scope=col><chr></th></tr>
<tr><td>1991 Jul</td><td>Concessional</td><td>A10</td><td>2092878</td><td>Co-payments</td><td>A</td></tr>
<tr><td>1991 Aug</td><td>Concessional</td><td>A10</td><td>1795733</td><td>Co-payments</td><td>A</td></tr>
<tr><td>1991 Sep</td><td>Concessional</td><td>A10</td><td>1777231</td><td>Co-payments</td><td>A</td></tr>
<tr><td>1991 Oct</td><td>Concessional</td><td>A10</td><td>1848507</td><td>Co-payments</td><td>A</td></tr>
<tr><td>1991 Nov</td><td>Concessional</td><td>A10</td><td>1686458</td><td>Co-payments</td><td>A</td></tr>
<tr><td>1991 Dec</td><td>Concessional</td><td>A10</td><td>1843079</td><td>Co-payments</td><td>A</td></tr>
autoplot
Scatter
ggplot(aes(x = Temperature, y = Demand)) +geom_point()
A tbl_ts: 6 Γ 5
<tr><th scope=col>Time</th><th scope=col>Demand</th><th scope=col>Temperature</th><th scope=col>Date</th><th scope=col>Holiday</th></tr>
<tr><th scope=col><dttm></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><date></th><th scope=col><lgl></th></tr>
<tr><td>2012-01-01 00:00:00</td><td>4382.825</td><td>21.40</td><td>2012-01-01</td><td>TRUE</td></tr>
<tr><td>2012-01-01 00:30:00</td><td>4263.366</td><td>21.05</td><td>2012-01-01</td><td>TRUE</td></tr>
<tr><td>2012-01-01 01:00:00</td><td>4048.966</td><td>20.70</td><td>2012-01-01</td><td>TRUE</td></tr>
<tr><td>2012-01-01 01:30:00</td><td>3877.563</td><td>20.55</td><td>2012-01-01</td><td>TRUE</td></tr>
<tr><td>2012-01-01 02:00:00</td><td>4036.230</td><td>20.40</td><td>2012-01-01</td><td>TRUE</td></tr>
<tr><td>2012-01-01 02:30:00</td><td>3865.597</td><td>20.25</td><td>2012-01-01</td><td>TRUE</td></tr>
vic_elec %>%
filter (year (Time)== 2014 ) %>%
autoplot (Demand)
png
A tbl_ts: 6 Γ 5
<tr><th scope=col>Time</th><th scope=col>Demand</th><th scope=col>Temperature</th><th scope=col>Date</th><th scope=col>Holiday</th></tr>
<tr><th scope=col><dttm></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><date></th><th scope=col><lgl></th></tr>
<tr><td>2012-01-01 00:00:00</td><td>4382.825</td><td>21.40</td><td>2012-01-01</td><td>TRUE</td></tr>
<tr><td>2012-01-01 00:30:00</td><td>4263.366</td><td>21.05</td><td>2012-01-01</td><td>TRUE</td></tr>
<tr><td>2012-01-01 01:00:00</td><td>4048.966</td><td>20.70</td><td>2012-01-01</td><td>TRUE</td></tr>
<tr><td>2012-01-01 01:30:00</td><td>3877.563</td><td>20.55</td><td>2012-01-01</td><td>TRUE</td></tr>
<tr><td>2012-01-01 02:00:00</td><td>4036.230</td><td>20.40</td><td>2012-01-01</td><td>TRUE</td></tr>
<tr><td>2012-01-01 02:30:00</td><td>3865.597</td><td>20.25</td><td>2012-01-01</td><td>TRUE</td></tr>
Seasonal Plot
Plots a single year on the x-axis to see patterns by months/seasons.
Correlation
\[r = \frac{\sum (x_{t} - \bar{x})(y_{t}-\bar{y})}{\sqrt{\sum(x_{t}-\bar{x})^2}\sqrt{\sum(y_{t}-\bar{y})^2}}\]
\(r\) lies [-1,1]
recent_production <- aus_production %>%
filter (year (Quarter) >= 2000 )
recent_production %>%
gg_lag (Beer, geom = "point" ) +
labs (x = "lag(Beer, k)" )
png
vic_elec %>% gg_season (Demand, period = "day" ) +
theme (legend.position = "none" ) +
labs (y= "MWh" , title= "Electricity demand: Victoria" )
png
Attaching package: βzooβ
The following object is masked from βpackage:tsibbleβ:
index
The following objects are masked from βpackage:baseβ:
as.Date, as.Date.numeric
gafa_stock %>%
autoplot ()
Plot variable not specified, automatically selected `.vars = Open`
png
A tbl_ts: 6 Γ 8
<tr><th scope=col>Symbol</th><th scope=col>Date</th><th scope=col>Open</th><th scope=col>High</th><th scope=col>Low</th><th scope=col>Close</th><th scope=col>Adj_Close</th><th scope=col>Volume</th></tr>
<tr><th scope=col><chr></th><th scope=col><date></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th></tr>
<tr><td>AAPL</td><td>2014-01-02</td><td>79.38286</td><td>79.57571</td><td>78.86000</td><td>79.01857</td><td>66.96433</td><td> 58671200</td></tr>
<tr><td>AAPL</td><td>2014-01-03</td><td>78.98000</td><td>79.10000</td><td>77.20428</td><td>77.28286</td><td>65.49342</td><td> 98116900</td></tr>
<tr><td>AAPL</td><td>2014-01-06</td><td>76.77857</td><td>78.11429</td><td>76.22857</td><td>77.70428</td><td>65.85053</td><td>103152700</td></tr>
<tr><td>AAPL</td><td>2014-01-07</td><td>77.76000</td><td>77.99429</td><td>76.84571</td><td>77.14857</td><td>65.37959</td><td> 79302300</td></tr>
<tr><td>AAPL</td><td>2014-01-08</td><td>76.97285</td><td>77.93714</td><td>76.95571</td><td>77.63715</td><td>65.79363</td><td> 64632400</td></tr>
<tr><td>AAPL</td><td>2014-01-09</td><td>78.11429</td><td>78.12286</td><td>76.47857</td><td>76.64571</td><td>64.95345</td><td> 69787200</td></tr>
dgoog <- gafa_stock %>%
filter (Symbol == "GOOG" , year (Date) >= 2018 ) %>%
mutate (trading_day = row_number ()) %>%
update_tsibble (index = trading_day, regular = TRUE ) %>%
mutate (diff = difference (Close))
dgoog %>%
difference (close, differences = 2 )
Error in lag < 1: comparison (3) is possible only for atomic and list types
Traceback:
1. dgoog %>% difference(close, differences = 2)
2. difference(., close, differences = 2)