Created
February 21, 2022 12:33
-
-
Save MJacobs1985/dba2239e1f33e7b0e2732fda9e8ef455 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| dfnew%>%filter(!is.na(comp3_provided))%>% | |
| dplyr::select(ogn_id,curve_day, | |
| feed_provided, | |
| comp1_provided, | |
| comp2_provided,comp3_provided) | |
| ### Forecast summed feed curves over time | |
| testdata2<-dfnew%>% | |
| group_by(date_interval, lcn_id, newField) %>% | |
| mutate(comp2_provided = ifelse(is.na(comp2_provided),0,comp2_provided), | |
| comp1_provided_2 = ifelse(curve_day<30, comp1_provided, NA), | |
| comp2_provided_2 = ifelse(curve_day<30, comp2_provided, NA))%>% | |
| dplyr::select(ogn_id, | |
| lcn_id, | |
| curve_day, | |
| feed_provided, | |
| comp1_provided, | |
| comp1_provided_2, | |
| comp2_provided, | |
| comp2_provided_2, | |
| newField, | |
| date_interval, | |
| animals_actual, | |
| feed_provided_cum) | |
| testdata2$pred1<-predict(m1_gam_comp1$gam, | |
| newdata=testdata2) | |
| testdata2$pred2<-predict(m1_gam_comp2$gam, | |
| newdata=testdata2) | |
| g1<-testdata2%>% | |
| group_by(ogn_id, curve_day)%>% | |
| summarize(prov1 = sum(comp1_provided_2), | |
| pred1 = sum(pred1))%>% | |
| ggplot(., aes(x=curve_day))+ | |
| geom_point(aes(y=prov1), col="black")+ | |
| geom_line(aes(y=prov1), col="black")+ | |
| geom_point(aes(y=pred1), col="red", alpha=0.5)+ | |
| geom_line(aes(y=pred1), col="red", alpha=0.5)+ | |
| theme_bw()+ | |
| labs(x="Day in Curve", | |
| y="Feed", | |
| fill="Farm", | |
| title="Forecasting for Component 1 per Farm ", | |
| subtitle ="Black is actual provided - Red is forecasted")+ | |
| facet_wrap(~ogn_id) | |
| g2<-testdata2%>% | |
| group_by(ogn_id, curve_day)%>% | |
| summarize(prov2 = sum(comp2_provided_2), | |
| pred2 = sum(pred2))%>% | |
| ggplot(., aes(x=curve_day))+ | |
| geom_point(aes(y=prov2), col="black")+ | |
| geom_line(aes(y=prov2), col="black")+ | |
| geom_point(aes(y=pred2), col="seagreen", alpha=0.5)+ | |
| geom_line(aes(y=pred2), col="seagreen", alpha=0.5)+ | |
| theme_bw()+ | |
| labs(x="Day in Curve", | |
| y="Feed", | |
| fill="Farm", | |
| title="Forecasting for Component 2 per Farm ", | |
| subtitle ="Black is actual provided - Green is forecasted")+ | |
| facet_wrap(~ogn_id) | |
| ### CUMULATIVE OVER TIME IS NOT CORRECT!! | |
| g3<-testdata2%>% | |
| arrange(ogn_id, lcn_id, newField, curve_day)%>% | |
| group_by(ogn_id,curve_day)%>% | |
| summarize(prov1 = comp1_provided_2, | |
| prov1_sum = sum(comp1_provided_2), | |
| pred1 = pred1, | |
| pred1_sum = sum(pred1), | |
| prov2 = comp2_provided_2, | |
| prov2_sum = sum(comp2_provided_2), | |
| pred2 = pred2, | |
| pred2_sum = sum(pred2))%>% | |
| filter(row_number()==1)%>% | |
| group_by(ogn_id)%>% | |
| summarize(curve_day = curve_day, | |
| prov1_cumsum = cumsum(prov1_sum), | |
| pred1_cumsum = cumsum(pred1_sum), | |
| prov2_cumsum = cumsum(prov2_sum), | |
| pred2_cumsum = cumsum(pred2_sum))%>% | |
| distinct()%>% | |
| ggplot(., aes(x=curve_day))+ | |
| geom_point(aes(y=prov1_cumsum ),col="black", alpha=0.5)+ | |
| geom_line(aes(y=prov1_cumsum ), col="black", alpha=0.5)+ | |
| geom_point(aes(y=pred1_cumsum), col="red", alpha=0.5)+ | |
| geom_line(aes(y=pred1_cumsum), col="red", alpha=0.5)+ | |
| geom_point(aes(y=prov2_cumsum ),col="black", alpha=0.5)+ | |
| geom_line(aes(y=prov2_cumsum ), col="black", alpha=0.5)+ | |
| geom_point(aes(y=pred2_cumsum), col="seagreen", alpha=0.5)+ | |
| geom_line(aes(y=pred2_cumsum), col="seagreen", alpha=0.5)+ | |
| theme_bw()+ | |
| labs(x="Day in Curve", | |
| y="Cumulative Feed", | |
| fill="Farm", | |
| title="Forecasting for Component 1 & 2 per Farm", | |
| subtitle="Black is actual - red(comp1) & green(comp2) are forecasted from day 30 onwards")+ | |
| facet_wrap(~ogn_id) | |
| grid.arrange(g1,g2,g3,ncol=1) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment