FEI Propane

## 
## Call:
## lm(formula = sqrt_fei ~ Brent, data = sqrt_fei.train.df)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.13703 -0.04239 -0.01040  0.03662  0.16623 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.5426638  0.0195997   27.69   <2e-16 ***
## Brent       0.0070378  0.0002403   29.29   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.06559 on 107 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.8891, Adjusted R-squared:  0.8881 
## F-statistic: 857.8 on 1 and 107 DF,  p-value: < 2.2e-16
## [1] 0.9086685
## Fitting the auto.arima model
## Fitting the nnetar model
## Fitting the auto.arima model
## Fitting the nnetar model
fcast<-autoplot(ts.union('FEI Historical'=fei_propane_new,'Predicted Forward Curve'=fei_propane_forwardcurve,FEI_Propane_Forecast),
                    facets=FALSE,size=1)+guides(color=guide_legend(title = "Forecast Models"))+
  labs(y="Price",x="Date")+ggtitle("FEI Propane Forecast")+
  scale_color_manual(values = c(1,2,3,4))

autoplotly(fcast)
## Warning: `group_by_()` is deprecated as of dplyr 0.7.0.
## Please use `group_by()` instead.
## See vignette('programming') for more help
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.

#FEI Butane

## 
## Call:
## lm(formula = sqrt_fei ~ Brent, data = sqrt_fei.train.df)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.153509 -0.035863 -0.006233  0.041491  0.184546 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.6028573  0.0203258   29.66   <2e-16 ***
## Brent       0.0075037  0.0002492   30.11   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.06802 on 107 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.8944, Adjusted R-squared:  0.8935 
## F-statistic: 906.7 on 1 and 107 DF,  p-value: < 2.2e-16
## [1] 0.9302591
## Fitting the auto.arima model
## Fitting the nnetar model
## Fitting the auto.arima model
## Fitting the nnetar model

Propane Differentials

## 
## Attaching package: 'MASS'
## The following object is masked from 'package:plotly':
## 
##     select
## The following object is masked from 'package:dplyr':
## 
##     select
## 
## Call:
## lm(formula = propane_diff ~ Brent + WTI, data = propane_diff_df)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.67326 -0.12301 -0.01376  0.13316  0.59725 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  0.001192   0.061898   0.019  0.98466   
## Brent        0.010115   0.003677   2.751  0.00681 **
## WTI         -0.005801   0.004313  -1.345  0.18109   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2161 on 127 degrees of freedom
## Multiple R-squared:  0.3127, Adjusted R-squared:  0.3019 
## F-statistic: 28.89 on 2 and 127 DF,  p-value: 4.563e-11

## Loading required package: splines
## Loading required package: foreach
## 
## Attaching package: 'foreach'
## The following objects are masked from 'package:purrr':
## 
##     accumulate, when
## Loaded gam 1.20
## Call:
## gam(formula = propane_diff ~ poly(Brent, 3) + poly(WTI, 2), data = propane.diff.train.df)
## 
## Degrees of Freedom: 109 total; 104 Residual
## Residual Deviance: 5.00146
## 
## Call: gam(formula = propane_diff ~ poly(Brent, 3) + poly(WTI, 2), data = propane.diff.train.df)
## Deviance Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.55766 -0.10821 -0.02561  0.11240  0.63460 
## 
## (Dispersion Parameter for gaussian family taken to be 0.0481)
## 
##     Null Deviance: 7.2786 on 109 degrees of freedom
## Residual Deviance: 5.0015 on 104 degrees of freedom
## AIC: -13.816 
## 
## Number of Local Scoring Iterations: 2 
## 
## Anova for Parametric Effects
##                 Df Sum Sq Mean Sq F value    Pr(>F)    
## poly(Brent, 3)   3 2.0964 0.69881 14.5311 5.656e-08 ***
## poly(WTI, 2)     2 0.1807 0.09034  1.8786     0.158    
## Residuals      104 5.0015 0.04809                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## [1] 0.5292114
FEI_butane_Forecast<-hybrid.fun(fei_butane) %>% forecast(h=60)
## Fitting the auto.arima model
## Fitting the nnetar model
FEI_butane_Forecast<-FEI_butane_Forecast$mean %>% ts(frequency = 12,start = c(2021,1))