This project work analyzes the Index of Industrial Production in India by taking sectoral data from Manufacturing, Mining, Electricity, and also the General index.

The goal of this study is to:

  1. Test for stationarity and long-run integration among the sectors.
  2. Do forecasting using past data, mean forecasts, and time series patterns.
  3. Visualize the cleaned sector-wise actual and forecasted data.
  4. Show how messy PDF data can be turned into clean time series for research .

The data is from Government of India (MOSPI, NSO).

#PDF extraction, Cleaning Process and Converting both the Years and Months into a Date format:

library(tabulapdf)
library(tabulizerjars)
library(stringr)
library(pdftools)
## Using poppler version 25.05.0
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(plotly)
## Loading required package: ggplot2
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(janitor)
## 
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
library(readr)
library(fable)
## Loading required package: fabletools
## Registered S3 method overwritten by 'tsibble':
##   method               from 
##   as_tibble.grouped_df dplyr
library(tsibble)
## 
## Attaching package: 'tsibble'
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, union
library(plm)
## 
## Attaching package: 'plm'
## The following object is masked from 'package:tsibble':
## 
##     index
## The following objects are masked from 'package:dplyr':
## 
##     between, lag, lead
library(fabletools)
library(vars)
## Loading required package: MASS
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:plotly':
## 
##     select
## The following object is masked from 'package:dplyr':
## 
##     select
## Loading required package: strucchange
## Loading required package: zoo
## 
## 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
## Loading required package: sandwich
## 
## Attaching package: 'strucchange'
## The following object is masked from 'package:stringr':
## 
##     boundary
## Loading required package: urca
## Loading required package: lmtest
## 
## Attaching package: 'vars'
## The following object is masked from 'package:fable':
## 
##     VAR
library(feasts)
library(tidyr)
library(urca)
library(corrplot)
## corrplot 0.95 loaded
library(purrr)
library(tsDyn)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## Registered S3 method overwritten by 'tsDyn':
##   method   from 
##   tidy.VAR fable
## 
## Attaching package: 'tsDyn'
## The following object is masked from 'package:fable':
## 
##     VECM
## The following object is masked from 'package:fabletools':
## 
##     MAPE
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following object is masked from 'package:tsibble':
## 
##     interval
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
library(ggplot2)
library(scales)
## 
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
## 
##     discard
## The following object is masked from 'package:readr':
## 
##     col_factor
iip_path <- "E://Aadikartikey//IIP DATA.pdf"

iip_data <- extract_tables(iip_path, pages = 4, guess= TRUE, method = "stream")
## New names:
## • `` -> `...1`
## • `` -> `...4`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...9`
## • `` -> `...10`
iip_data
## [[1]]
## # A tibble: 20 × 10
##    ...1      Mining Manufacturing ...4  Electricity ...6  ...7  `Gene ral` ...9 
##    <chr>     <chr>  <chr>         <chr> <chr>       <chr> <chr> <chr>      <lgl>
##  1 Month     (14.3… (77.63321)    <NA>  (7.994318)  <NA>  <NA>  (100)      NA   
##  2 <NA>      2023-… 2024-25 2025… 2023… 2024-25     2025… 2023… 2024-25    NA   
##  3 Apr*      122.6… 144.6 149.5   192.3 212.0       214.4 140.7 148.0      NA   
##  4 May       128.1… 150.4         201.6 229.3       <NA>  145.6 154.7      NA   
##  5 Jun       122.3… 146.6         205.2 222.8       <NA>  143.9 151.0      NA   
##  6 Jul       111.9… 148.8         204.0 220.2       <NA>  142.7 149.8      NA   
##  7 Aug       111.9… 146.1         220.5 212.3       <NA>  145.8 145.8      NA   
##  8 Sep       111.5… 147.2         205.9 206.9       <NA>  142.3 146.9      NA   
##  9 Oct       127.4… 148.4         203.8 207.8       <NA>  144.9 150.3      NA   
## 10 Nov       131.3… 147.0         176.3 184.1       <NA>  141.1 148.1      NA   
## 11 Dec       139.5… 157.2         181.6 192.8       <NA>  152.3 158.0      NA   
## 12 Jan       144.3… 159.5         197.1 201.9       <NA>  153.6 161.6      NA   
## 13 Feb       139.7… 148.4         187.2 194.0       <NA>  147.1 151.1      NA   
## 14 Mar       156.2… 162.4         204.2 219.5       <NA>  160.0 166.3      NA   
## 15 Average   <NA>   <NA>          <NA>  <NA>        <NA>  <NA>  <NA>       NA   
## 16 Apr-Mar   128.9… 150.6 -       198.3 208.6       -     146.7 152.6      NA   
## 17 Growth o… <NA>   <NA>          <NA>  <NA>        <NA>  <NA>  <NA>       NA   
## 18 Mar       1.3 1… 4.0 -         8.6   7.5         -     5.5   3.9        NA   
## 19 Apr*      5.1 6… 4.2 3.4       -1.1  10.2        1.1   4.6   5.2        NA   
## 20 Apr-Mar   7.5 3… 4.1 -         7.1   5.2         -     5.9   4.0        NA   
## # ℹ 1 more variable: ...10 <chr>
iip_df <- as.data.frame(iip_data, stringsAsFactors= FALSE)

iip_data
## [[1]]
## # A tibble: 20 × 10
##    ...1      Mining Manufacturing ...4  Electricity ...6  ...7  `Gene ral` ...9 
##    <chr>     <chr>  <chr>         <chr> <chr>       <chr> <chr> <chr>      <lgl>
##  1 Month     (14.3… (77.63321)    <NA>  (7.994318)  <NA>  <NA>  (100)      NA   
##  2 <NA>      2023-… 2024-25 2025… 2023… 2024-25     2025… 2023… 2024-25    NA   
##  3 Apr*      122.6… 144.6 149.5   192.3 212.0       214.4 140.7 148.0      NA   
##  4 May       128.1… 150.4         201.6 229.3       <NA>  145.6 154.7      NA   
##  5 Jun       122.3… 146.6         205.2 222.8       <NA>  143.9 151.0      NA   
##  6 Jul       111.9… 148.8         204.0 220.2       <NA>  142.7 149.8      NA   
##  7 Aug       111.9… 146.1         220.5 212.3       <NA>  145.8 145.8      NA   
##  8 Sep       111.5… 147.2         205.9 206.9       <NA>  142.3 146.9      NA   
##  9 Oct       127.4… 148.4         203.8 207.8       <NA>  144.9 150.3      NA   
## 10 Nov       131.3… 147.0         176.3 184.1       <NA>  141.1 148.1      NA   
## 11 Dec       139.5… 157.2         181.6 192.8       <NA>  152.3 158.0      NA   
## 12 Jan       144.3… 159.5         197.1 201.9       <NA>  153.6 161.6      NA   
## 13 Feb       139.7… 148.4         187.2 194.0       <NA>  147.1 151.1      NA   
## 14 Mar       156.2… 162.4         204.2 219.5       <NA>  160.0 166.3      NA   
## 15 Average   <NA>   <NA>          <NA>  <NA>        <NA>  <NA>  <NA>       NA   
## 16 Apr-Mar   128.9… 150.6 -       198.3 208.6       -     146.7 152.6      NA   
## 17 Growth o… <NA>   <NA>          <NA>  <NA>        <NA>  <NA>  <NA>       NA   
## 18 Mar       1.3 1… 4.0 -         8.6   7.5         -     5.5   3.9        NA   
## 19 Apr*      5.1 6… 4.2 3.4       -1.1  10.2        1.1   4.6   5.2        NA   
## 20 Apr-Mar   7.5 3… 4.1 -         7.1   5.2         -     5.9   4.0        NA   
## # ℹ 1 more variable: ...10 <chr>
iip_df <- iip_df[-2, ]

iip_df <- iip_df[2:13, ]

iip_df_clean <- iip_df%>%
  dplyr::select(`...1`, `Mining`, `Manufacturing`, `Electricity`, `Gene.ral`)

iip_df_clean <- iip_df_clean%>%
  rename("Month" = `...1`, "General" = `Gene.ral`)

head(iip_df_clean)
##   Month                  Mining Manufacturing Electricity General
## 3  Apr* 122.6 130.9 130.6 138.8   144.6 149.5       212.0   148.0
## 4   May       128.1 136.5 143.1         150.4       229.3   154.7
## 5   Jun       122.3 134.9 141.6         146.6       222.8   151.0
## 6   Jul       111.9 116.1 142.1         148.8       220.2   149.8
## 7   Aug       111.9 107.1 144.4         146.1       212.3   145.8
## 8   Sep       111.5 111.7 141.5         147.2       206.9   146.9
iip_df <- iip_df%>%
  tidyr::separate(Mining, into = c("Mining_2023", "Mining_2024", "Mining_2025"), sep = "\\s+", convert = TRUE)
## Warning: Expected 3 pieces. Additional pieces discarded in 1 rows [1].
iip_df <- iip_df%>%
  tidyr::separate(Manufacturing, into = c("Manufacturing_2023", "Manufacturing_2024", "Manufacturing_2025"), sep = "\\s+", convert = TRUE)
## Warning: Expected 3 pieces. Missing pieces filled with `NA` in 12 rows [1, 2, 3, 4, 5,
## 6, 7, 8, 9, 10, 11, 12].
iip_df <- iip_df %>%
  dplyr::select(-`...9`)

iip_df <- iip_df%>%
  rename("Month" = `...1`, "Electricity_2023" = `...4`, "Electricity_2024" = "Electricity",
         "Electricity_2025" = `...6`, "General_2023" = `...7`, "General_2024" = "Gene.ral", "General_2025" = `...10`)

head(iip_df)
##   Month Mining_2023 Mining_2024 Mining_2025 Manufacturing_2023
## 3  Apr*       122.6       130.9       130.6              144.6
## 4   May       128.1       136.5       143.1              150.4
## 5   Jun       122.3       134.9       141.6              146.6
## 6   Jul       111.9       116.1       142.1              148.8
## 7   Aug       111.9       107.1       144.4              146.1
## 8   Sep       111.5       111.7       141.5              147.2
##   Manufacturing_2024 Manufacturing_2025 Electricity_2023 Electricity_2024
## 3              149.5                 NA            192.3            212.0
## 4                 NA                 NA            201.6            229.3
## 5                 NA                 NA            205.2            222.8
## 6                 NA                 NA            204.0            220.2
## 7                 NA                 NA            220.5            212.3
## 8                 NA                 NA            205.9            206.9
##   Electricity_2025 General_2023 General_2024 General_2025
## 3            214.4        140.7        148.0        152.0
## 4             <NA>        145.6        154.7         <NA>
## 5             <NA>        143.9        151.0         <NA>
## 6             <NA>        142.7        149.8         <NA>
## 7             <NA>        145.8        145.8         <NA>
## 8             <NA>        142.3        146.9         <NA>
iip_df$Manufacturing_2025 <- iip_df$Manufacturing_2024

iip_df$Manufacturing_2024[1:12] <- NA

iip_df$Manufacturing_2024 <- iip_df$Manufacturing_2023

iip_df$Manufacturing_2023[1:12] <- NA

iip_df$Manufacturing_2023[1] <- 138.8

iip_df$Manufacturing_2023 <- iip_df$Mining_2025

iip_df$Mining_2025[2:12] <- NA

head(iip_df)
##   Month Mining_2023 Mining_2024 Mining_2025 Manufacturing_2023
## 3  Apr*       122.6       130.9       130.6              130.6
## 4   May       128.1       136.5          NA              143.1
## 5   Jun       122.3       134.9          NA              141.6
## 6   Jul       111.9       116.1          NA              142.1
## 7   Aug       111.9       107.1          NA              144.4
## 8   Sep       111.5       111.7          NA              141.5
##   Manufacturing_2024 Manufacturing_2025 Electricity_2023 Electricity_2024
## 3              144.6              149.5            192.3            212.0
## 4              150.4                 NA            201.6            229.3
## 5              146.6                 NA            205.2            222.8
## 6              148.8                 NA            204.0            220.2
## 7              146.1                 NA            220.5            212.3
## 8              147.2                 NA            205.9            206.9
##   Electricity_2025 General_2023 General_2024 General_2025
## 3            214.4        140.7        148.0        152.0
## 4             <NA>        145.6        154.7         <NA>
## 5             <NA>        143.9        151.0         <NA>
## 6             <NA>        142.7        149.8         <NA>
## 7             <NA>        145.8        145.8         <NA>
## 8             <NA>        142.3        146.9         <NA>
iip_df <- iip_df%>%
  mutate(Month = gsub("\\*", "", Month), Month = as.character(Month))%>%
  mutate(across(-Month, as.numeric))

iip_long <- iip_df %>%
  pivot_longer(cols = -Month, names_to = "Sector_Year", values_to = "Growth")

iip_long
## # A tibble: 144 × 3
##    Month Sector_Year        Growth
##    <chr> <chr>               <dbl>
##  1 Apr   Mining_2023          123.
##  2 Apr   Mining_2024          131.
##  3 Apr   Mining_2025          131.
##  4 Apr   Manufacturing_2023   131.
##  5 Apr   Manufacturing_2024   145.
##  6 Apr   Manufacturing_2025   150.
##  7 Apr   Electricity_2023     192.
##  8 Apr   Electricity_2024     212 
##  9 Apr   Electricity_2025     214.
## 10 Apr   General_2023         141.
## # ℹ 134 more rows
iip_long <- iip_long%>%
  replace_na(list(Growth= 0))
#mutate(across(where(is.numeric), function(k)na_if(k, 0)))

colSums(is.na(iip_long))
##       Month Sector_Year      Growth 
##           0           0           0
iip_long <- iip_long%>%
  separate(Sector_Year, into = c("Sector", "Year"), sep = "_")

iip_long
## # A tibble: 144 × 4
##    Month Sector        Year  Growth
##    <chr> <chr>         <chr>  <dbl>
##  1 Apr   Mining        2023    123.
##  2 Apr   Mining        2024    131.
##  3 Apr   Mining        2025    131.
##  4 Apr   Manufacturing 2023    131.
##  5 Apr   Manufacturing 2024    145.
##  6 Apr   Manufacturing 2025    150.
##  7 Apr   Electricity   2023    192.
##  8 Apr   Electricity   2024    212 
##  9 Apr   Electricity   2025    214.
## 10 Apr   General       2023    141.
## # ℹ 134 more rows
iip_long <- iip_long%>%
  mutate(
    Month_num = match(Month, month.abb),
    Date = make_date(year= as.integer(Year), month = Month_num, day= 1)
  )%>%
  dplyr::select(-c(Month_num, Year, Month))

iip_long
## # A tibble: 144 × 3
##    Sector        Growth Date      
##    <chr>          <dbl> <date>    
##  1 Mining          123. 2023-04-01
##  2 Mining          131. 2024-04-01
##  3 Mining          131. 2025-04-01
##  4 Manufacturing   131. 2023-04-01
##  5 Manufacturing   145. 2024-04-01
##  6 Manufacturing   150. 2025-04-01
##  7 Electricity     192. 2023-04-01
##  8 Electricity     212  2024-04-01
##  9 Electricity     214. 2025-04-01
## 10 General         141. 2023-04-01
## # ℹ 134 more rows
#Creation of two different Containers of the existing data frame in which:
# one is Tibble and the other is Tsibble as Tibble is necessary for the ADF-testing
#While the Tsibble is important for the Forecasting work


ts_container <-new.env()

Sectors2 <- c("Mining", "Electricity", "General", "Manufacturing")

Sectors2%>%
  purrr::walk(function(k){
    ts_name <- paste0(tolower(k), "_ts_vector")
    ts_object = iip_long%>%
      filter(Sector == k)%>%
      arrange(Date)%>%
      pull(Growth)%>%
      ts(start= c(2023, 1), frequency=12)
    
    assign(ts_name, ts_object, envir= ts_container)
  })


list2env(as.list(ts_container), envir = .GlobalEnv)
## <environment: R_GlobalEnv>
tsibble_container <- new.env()

Sectors <- c("Mining", "Manufacturing", "Electricity", "General")

Sectors%>%
  purrr::walk(function(k){
    tsibble_name <- paste0(tolower(k), "_tsibble")
    tsibble_object = iip_long%>%
      filter(Sector == k)%>%
      arrange(Date)%>%
      as_tsibble(index= Date)
    
    assign(tsibble_name, tsibble_object, envir = tsibble_container)
  })

adf_general <- urca::ur.df(general_ts_vector, type = "drift", lags =1, selectlags = "AIC")
summary(adf_general)
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression drift 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -142.937   -7.357    8.365   12.068  144.643 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   7.3570    15.0306   0.489    0.628
## z.lag.1      -0.1233     0.1198  -1.029    0.311
## z.diff.lag   -0.2964     0.1778  -1.667    0.106
## 
## Residual standard error: 44.17 on 31 degrees of freedom
## Multiple R-squared:  0.1627, Adjusted R-squared:  0.1086 
## F-statistic: 3.011 on 2 and 31 DF,  p-value: 0.06382
## 
## 
## Value of test-statistic is: -1.0291 0.8382 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau2 -3.58 -2.93 -2.60
## phi1  7.06  4.86  3.94
d_adf_general <- diff(general_ts_vector, differences = 1)

d_adf_general <- urca::ur.df(d_adf_general, type = "drift", lags= 1, selectlags = "AIC")
summary(d_adf_general)
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression drift 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -146.736    2.364    6.252    8.718  159.428 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -7.4282     7.9557  -0.934    0.358    
## z.lag.1      -1.5721     0.2978  -5.279 1.06e-05 ***
## z.diff.lag    0.1510     0.1801   0.838    0.409    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 45.03 on 30 degrees of freedom
## Multiple R-squared:  0.6911, Adjusted R-squared:  0.6705 
## F-statistic: 33.56 on 2 and 30 DF,  p-value: 2.226e-08
## 
## 
## Value of test-statistic is: -5.279 13.9347 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau2 -3.58 -2.93 -2.60
## phi1  7.06  4.86  3.94
ts_list <- list(
  mining = mining_ts_vector,
  manufacturing = manufacturing_ts_vector,
  electricity = electricity_ts_vector,
  general = general_ts_vector
)

run_adf_tests <- function(ts_list, type = "drift", lags= 1, selectlags = "AIC"){
  results <- lapply(
    names(ts_list), function(name){
      ts_data <- ts_list[[name]]
      
      
      adf_level <- urca::ur.df(ts_data, type = "drift", lags=1, selectlags = "AIC")
      level_stat <- summary(adf_level)@teststat[1]
      level_crit <- summary(adf_level)@cval[1, "5pct"]
      level_stationary <- level_stat < level_crit
      
      
      ts_diff <- diff(ts_data)
      diff_adf <- urca::ur.df(ts_diff, type = "drift", lags = 1, selectlags = "AIC")
      diff_stat <- summary(diff_adf)@teststat[1]
      diff_crit <- summary(diff_adf)@cval[1, "5pct"]
      diff_stationary <- diff_stat < diff_crit
      
      
      data.frame(
        series = name,
        level_stat = round(level_stat, 3),
        level_crit = round(level_crit, 3),
        level_stationary = level_stationary,
        diff_stat = round(diff_stat, 3),
        diff_crit = round(diff_crit, 3),
        diff_stationary = diff_stationary,
        stringsAsFactors = FALSE
      )
      
    }
  )
  do.call(rbind, results)
}

adf_results <- run_adf_tests(ts_list)
print(adf_results)
##          series level_stat level_crit level_stationary diff_stat diff_crit
## 1        mining     -1.163      -2.93            FALSE    -5.228     -2.93
## 2 manufacturing     -1.039      -2.93            FALSE    -5.279     -2.93
## 3   electricity     -0.941      -2.93            FALSE    -5.187     -2.93
## 4       general     -1.029      -2.93            FALSE    -5.279     -2.93
##   diff_stationary
## 1            TRUE
## 2            TRUE
## 3            TRUE
## 4            TRUE
#creating the Multivariate Time Series Object(Manufacturing, Mining, Electricity and General)
#To do a Johansen Cointegration Test and Proving the long run equilibrium between them
#Despite all the short run fluctuations and uncertainty among them , they all moves
#in a long run relationships.

vec_data <- cbind(
  mining = mining_ts_vector,
  electricity = electricity_ts_vector,
  manufacturing = manufacturing_ts_vector,
  general = general_ts_vector
)

john_sectors <- urca::ca.jo(vec_data, type= "trace", ecdet= "const", K=2)
summary(john_sectors)
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , without linear trend and constant in cointegration 
## 
## Eigenvalues (lambda):
## [1]  4.927190e-01  4.485223e-01  3.791583e-01  5.070054e-02 -1.387779e-17
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 3 |  1.77  7.52  9.24 12.97
## r <= 2 | 17.98 17.85 19.96 24.60
## r <= 1 | 38.21 32.00 34.91 41.07
## r = 0  | 61.29 49.65 53.12 60.16
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##                    mining.l2 electricity.l2 manufacturing.l2 general.l2
## mining.l2         1.00000000       1.000000      1.000000000  1.0000000
## electricity.l2   -0.05138833       1.035760      0.639102125 -0.2774744
## manufacturing.l2  1.35981619      -5.714212      3.947003654  5.5470184
## general.l2       -2.13762734       3.323518     -5.627492678 -7.1525655
## constant          0.07051703       1.417048     -0.002543615 73.1291572
##                      constant
## mining.l2           1.0000000
## electricity.l2      0.6707256
## manufacturing.l2    2.4509913
## general.l2         -1.7943806
## constant         -465.4010013
## 
## Weights W:
## (This is the loading matrix)
## 
##                  mining.l2 electricity.l2 manufacturing.l2 general.l2
## mining.d        -1.0018338      0.4797896      -0.21304566 0.08554271
## electricity.d   -0.1382546      0.9689781       0.03382524 0.13075279
## manufacturing.d -0.7085731      0.8351751      -0.02372320 0.09230973
## general.d       -0.6600870      0.7804541       0.13470219 0.09460804
##                     constant
## mining.d        6.948703e-15
## electricity.d   6.615415e-15
## manufacturing.d 7.122254e-15
## general.d       7.962633e-15
#Doing a VECM modelling after validating that the Sectors indeed have a long run equilibrium between them

vecm_sectors <- urca::cajorls(john_sectors, r=2)
summary(vecm_sectors)
##      Length Class  Mode   
## rlm  12     mlm    list   
## beta 10     -none- numeric
#Converting the existing VECM model into a VAR model to do the forecasting.

vecy_var <- vars::vec2var(john_sectors, r=2)

#IRF Testing and Plotting to get a shock and it's response conclusion from the selected Sectors 

irf_sectors <- tsDyn::irf(vecy_var, impulse= "electricity", response= "manufacturing", n.ahead=12, boot= TRUE, ci= 0.95
                          , runs= 1000)
print(irf_sectors)
## 
## Impulse response coefficients
## $electricity
##       manufacturing
##  [1,]      4.248906
##  [2,]      1.245450
##  [3,]      6.076278
##  [4,]      8.359155
##  [5,]      8.318688
##  [6,]      6.642183
##  [7,]      5.283435
##  [8,]      4.245155
##  [9,]      3.601500
## [10,]      3.411135
## [11,]      3.676058
## [12,]      4.168721
## [13,]      4.649661
## 
## 
## Lower Band, CI= 0.95 
## $electricity
##       manufacturing
##  [1,]      2.044237
##  [2,]    -10.390827
##  [3,]     -7.958734
##  [4,]     -8.356636
##  [5,]     -9.677139
##  [6,]    -12.236635
##  [7,]    -13.133061
##  [8,]    -13.872349
##  [9,]    -13.020596
## [10,]    -12.580887
## [11,]    -11.395750
## [12,]    -10.826997
## [13,]    -10.663311
## 
## 
## Upper Band, CI= 0.95 
## $electricity
##       manufacturing
##  [1,]      5.116313
##  [2,]     12.595467
##  [3,]     19.548364
##  [4,]     20.935757
##  [5,]     22.023840
##  [6,]     21.104109
##  [7,]     20.122221
##  [8,]     19.720635
##  [9,]     19.406543
## [10,]     19.075374
## [11,]     18.919292
## [12,]     19.244122
## [13,]     19.577982
plot(irf_sectors)

h <- 24

vecy_forecast <- predict(vecy_var, n.ahead= h)

tsibble_list <- as.list(tsibble_container)%>%
  purrr::map(as_tibble)

combined_df <- dplyr::bind_rows(tsibble_list)

combined_df
## # A tibble: 144 × 3
##    Sector        Growth Date      
##    <chr>          <dbl> <date>    
##  1 Manufacturing   151. 2023-01-01
##  2 Manufacturing   144. 2023-02-01
##  3 Manufacturing   156. 2023-03-01
##  4 Manufacturing   131. 2023-04-01
##  5 Manufacturing   143. 2023-05-01
##  6 Manufacturing   142. 2023-06-01
##  7 Manufacturing   142. 2023-07-01
##  8 Manufacturing   144. 2023-08-01
##  9 Manufacturing   142. 2023-09-01
## 10 Manufacturing   142. 2023-10-01
## # ℹ 134 more rows
combined_tsibble <- combined_df%>%
  as_tsibble(index= Date, key= Sector)

head(combined_tsibble)
## # A tsibble: 6 x 3 [1D]
## # Key:       Sector [1]
##   Sector      Growth Date      
##   <chr>        <dbl> <date>    
## 1 Electricity   197. 2023-01-01
## 2 Electricity   187. 2023-02-01
## 3 Electricity   204. 2023-03-01
## 4 Electricity   192. 2023-04-01
## 5 Electricity   202. 2023-05-01
## 6 Electricity   205. 2023-06-01
forecast_matrix <- vecy_forecast$fcst

forecast_names <- names(forecast_matrix)

last_date <- as.Date("2024-12-01")

future_date <- seq.Date(from = as.Date("2025-01-01"), length.out = h, by= "month")

forecast_tibble <- purrr::map_dfr(
  forecast_names, function(sector_names){
    tibble(
      Sectors = sector_names,
      Date = future_date,
      forecast = forecast_matrix[[sector_names]][, "fcst"],
      upper_forecast = forecast_matrix[[sector_names]][, "upper"],
      lower_forecast = forecast_matrix[[sector_names]][, "lower"]
    )
  }
)

forecast_tsibble <- forecast_tibble%>%
  feasts::as_tsibble(key= Sectors, index= Date)

head(forecast_tsibble)
## # A tsibble: 6 x 5 [1D]
## # Key:       Sectors [1]
##   Sectors     Date       forecast upper_forecast lower_forecast
##   <chr>       <date>        <dbl>          <dbl>          <dbl>
## 1 electricity 2025-01-01     1.36           112.          -110.
## 2 electricity 2025-02-01     1.89           132.          -129.
## 3 electricity 2025-03-01     1.93           161.          -157.
## 4 electricity 2025-04-01     1.97           182.          -178.
## 5 electricity 2025-05-01     2.01           201.          -197.
## 6 electricity 2025-06-01     1.91           219.          -215.
print(forecast_tsibble)
## # A tsibble: 96 x 5 [1D]
## # Key:       Sectors [4]
##    Sectors     Date       forecast upper_forecast lower_forecast
##    <chr>       <date>        <dbl>          <dbl>          <dbl>
##  1 electricity 2025-01-01     1.36           112.          -110.
##  2 electricity 2025-02-01     1.89           132.          -129.
##  3 electricity 2025-03-01     1.93           161.          -157.
##  4 electricity 2025-04-01     1.97           182.          -178.
##  5 electricity 2025-05-01     2.01           201.          -197.
##  6 electricity 2025-06-01     1.91           219.          -215.
##  7 electricity 2025-07-01     1.72           236.          -233.
##  8 electricity 2025-08-01     1.58           252.          -249.
##  9 electricity 2025-09-01     1.51           266.          -263.
## 10 electricity 2025-10-01     1.51           280.          -277.
## # ℹ 86 more rows
#Temporary Removing the April 2025 data as in order to merge both Forecasted and the Actual data
#properly without any duplication then Temporary removing the April 2025 then
#Re-adding the April 2025 by replacing the Forecasted April 2025 data with the Actual April 2025

forecast_tsibble_revised <- forecast_tsibble%>%
  rename(
    Sector = Sectors,
    Growth = forecast
    
  )%>%
  mutate(Type= "Forecast")

Actual_tsibble <- combined_tsibble%>%
  mutate(
    upper_forecast = NA,
    lower_forecast= NA,
    Type = "Actual"
  )

final_tsibble <- bind_rows(Actual_tsibble, forecast_tsibble_revised)%>%
  arrange(Sector, Date)%>%
  as_tsibble(index = Date, key= Sector)

head(final_tsibble)
## # A tsibble: 6 x 6 [1D]
## # Key:       Sector [1]
##   Sector      Growth Date       upper_forecast lower_forecast Type  
##   <chr>        <dbl> <date>              <dbl>          <dbl> <chr> 
## 1 Electricity   197. 2023-01-01             NA             NA Actual
## 2 Electricity   187. 2023-02-01             NA             NA Actual
## 3 Electricity   204. 2023-03-01             NA             NA Actual
## 4 Electricity   192. 2023-04-01             NA             NA Actual
## 5 Electricity   202. 2023-05-01             NA             NA Actual
## 6 Electricity   205. 2023-06-01             NA             NA Actual
full_forecast <- final_tsibble%>%
  filter(Type== "Forecast")%>%
  group_by(Sector)%>%
  complete(Date = seq(min(final_tsibble$Date), max(final_tsibble$Date), by = "month"))%>%
  mutate(across(c(Growth, upper_forecast, lower_forecast), function(k)
    na.approx(k, rule= 2, na.rm= FALSE)
  ), Type= "Forecast")

revising_the_final_tsibble <- final_tsibble%>%
  left_join(
    full_forecast%>%
      dplyr::select(-Type)%>%
      rename_with(function(k) paste0(k, "_fcst")),
    by = c("Sector"= "Sector_fcst", "Date"= "Date_fcst")
  )%>%
  mutate(Growth = ifelse(is.na(Growth)|Growth == 0 & !is.na(Growth_fcst),Growth_fcst,
                         Growth),
         upper_forecast = coalesce(upper_forecast, upper_forecast_fcst),
         lower_forecast = coalesce(lower_forecast, lower_forecast_fcst),
         Type = case_when(
           Type == "Actual" & (is.na(Growth)| Growth == 0 & !is.na(Growth_fcst)) ~ "Imputed",
           TRUE ~ Type
         )
  )%>%
  dplyr::select(-ends_with("_fcst"))

head(revising_the_final_tsibble)
## # A tsibble: 6 x 6 [1D]
## # Key:       Sector [1]
##   Sector      Growth Date       upper_forecast lower_forecast Type  
##   <chr>        <dbl> <date>              <dbl>          <dbl> <chr> 
## 1 Electricity   197. 2023-01-01             NA             NA Actual
## 2 Electricity   187. 2023-02-01             NA             NA Actual
## 3 Electricity   204. 2023-03-01             NA             NA Actual
## 4 Electricity   192. 2023-04-01             NA             NA Actual
## 5 Electricity   202. 2023-05-01             NA             NA Actual
## 6 Electricity   205. 2023-06-01             NA             NA Actual
April_2025_data <- revising_the_final_tsibble%>%
  filter(Date == as.Date("2025-04-01"), Type== "Actual")

Temp_remove <- revising_the_final_tsibble%>%
  filter(!(Date == as.Date("2025-12-01")& Type== "Actual"))

revising_the_final_tsibble <- revising_the_final_tsibble%>%
  mutate(
    Growth = ifelse(
      Type == "Actual" & Growth == 0,
      NA_real_,
      Growth
    )
  )
#Checking the Zeros and the NAs then seperating those rows where the Zeros are present then
#filling them up by using a simple model NAIVE and lastly
#lowercasing all the Sectors present in the data after converting it into a Data Frame


zero_to_check<- revising_the_final_tsibble%>%
  filter(Type == "Actual")%>%
  summarise(ZeroCount = sum(Growth == 0, na.rm = TRUE))

NA_to_check <- revising_the_final_tsibble%>%
  filter(Type== "Actual")%>%
  summarise(NAcount = sum(is.na(Growth)))

Imputation_start <- as.Date("2025-01-01")
Imputation_end <- as.Date("2025-12-01")

missing_periods <- revising_the_final_tsibble%>%
  filter(
    Type == "Actual",
    Date >= Imputation_start,
    Date <=Imputation_end,
    is.na(Growth)|Growth == 0
  )%>%
  distinct(Date)%>%
  pull(Date)

model_data <- revising_the_final_tsibble%>%
  filter(
    Type == "Actual",
    !is.na(Growth),
    Growth != 0,
    Date < as.Date("2025-01-01")
  )

sector_models2 <- model_data%>%
  model(
    NAIVE = NAIVE(Growth)
  )
## Warning: 4 errors (1 unique) encountered for NAIVE
## [4] .data contains implicit gaps in time. You should check your data and convert implicit gaps into explicit missing values using `tsibble::fill_gaps()` if required.
forecasts <- sector_models2%>%
  forecast(h= length(missing_periods))%>%
  mutate(
    Type = "Imputed",
    Sector = as.character(Sector)
  )%>%
  as_tsibble(key = c(Sector, .model), index= Date)

final_results <- revising_the_final_tsibble%>%
  filter(
    !(Type == "Actual" & Date %in% missing_periods)
  )%>%
  bind_rows(
    sector_models2%>%
      forecast(h = length(missing_periods))%>%
      as_tibble()%>%
      mutate(
        Type = "Imputed",
        Sector = as.character(Sector),
        Growth = .mean
      )%>%
      dplyr::select(-.model, -.mean)
  )%>%
  mutate(
    Growth = ifelse(Date == as.Date("2025-04-01"), April_2025_data$Growth, Growth),
    Type = ifelse(Date == as.Date("2025-04-01"), "Actual", Type)
  )%>%
  arrange(Sector, Date)%>%
  as_tsibble(key = Sector, index = Date)


final_df <- as.data.frame(final_results, stringAsFactors= FALSE)
final_df
##            Sector      Growth       Date upper_forecast lower_forecast     Type
## 1     Electricity 197.1000000 2023-01-01             NA             NA   Actual
## 2     Electricity 187.2000000 2023-02-01             NA             NA   Actual
## 3     Electricity 204.2000000 2023-03-01             NA             NA   Actual
## 4     Electricity 192.3000000 2023-04-01             NA             NA   Actual
## 5     Electricity 201.6000000 2023-05-01             NA             NA   Actual
## 6     Electricity 205.2000000 2023-06-01             NA             NA   Actual
## 7     Electricity 204.0000000 2023-07-01             NA             NA   Actual
## 8     Electricity 220.5000000 2023-08-01             NA             NA   Actual
## 9     Electricity 205.9000000 2023-09-01             NA             NA   Actual
## 10    Electricity 203.8000000 2023-10-01             NA             NA   Actual
## 11    Electricity 176.3000000 2023-11-01             NA             NA   Actual
## 12    Electricity 181.6000000 2023-12-01             NA             NA   Actual
## 13    Electricity 201.9000000 2024-01-01             NA             NA   Actual
## 14    Electricity 194.0000000 2024-02-01             NA             NA   Actual
## 15    Electricity 219.5000000 2024-03-01             NA             NA   Actual
## 16    Electricity 212.0000000 2024-04-01             NA             NA   Actual
## 17    Electricity 229.3000000 2024-05-01             NA             NA   Actual
## 18    Electricity 222.8000000 2024-06-01             NA             NA   Actual
## 19    Electricity 220.2000000 2024-07-01             NA             NA   Actual
## 20    Electricity 212.3000000 2024-08-01             NA             NA   Actual
## 21    Electricity 206.9000000 2024-09-01             NA             NA   Actual
## 22    Electricity 207.8000000 2024-10-01             NA             NA   Actual
## 23    Electricity 184.1000000 2024-11-01             NA             NA   Actual
## 24    Electricity 192.8000000 2024-12-01             NA             NA   Actual
## 25    Electricity          NA 2024-12-02             NA             NA  Imputed
## 26    Electricity          NA 2024-12-03             NA             NA  Imputed
## 27    Electricity          NA 2024-12-04             NA             NA  Imputed
## 28    Electricity          NA 2024-12-05             NA             NA  Imputed
## 29    Electricity          NA 2024-12-06             NA             NA  Imputed
## 30    Electricity          NA 2024-12-07             NA             NA  Imputed
## 31    Electricity          NA 2024-12-08             NA             NA  Imputed
## 32    Electricity          NA 2024-12-09             NA             NA  Imputed
## 33    Electricity          NA 2024-12-10             NA             NA  Imputed
## 34    Electricity          NA 2024-12-11             NA             NA  Imputed
## 35    Electricity          NA 2024-12-12             NA             NA  Imputed
## 36    Electricity 130.6000000 2025-04-01             NA             NA   Actual
## 37        General 153.6000000 2023-01-01             NA             NA   Actual
## 38        General 147.1000000 2023-02-01             NA             NA   Actual
## 39        General 160.0000000 2023-03-01             NA             NA   Actual
## 40        General 140.7000000 2023-04-01             NA             NA   Actual
## 41        General 145.6000000 2023-05-01             NA             NA   Actual
## 42        General 143.9000000 2023-06-01             NA             NA   Actual
## 43        General 142.7000000 2023-07-01             NA             NA   Actual
## 44        General 145.8000000 2023-08-01             NA             NA   Actual
## 45        General 142.3000000 2023-09-01             NA             NA   Actual
## 46        General 144.9000000 2023-10-01             NA             NA   Actual
## 47        General 141.1000000 2023-11-01             NA             NA   Actual
## 48        General 152.3000000 2023-12-01             NA             NA   Actual
## 49        General 161.6000000 2024-01-01             NA             NA   Actual
## 50        General 151.1000000 2024-02-01             NA             NA   Actual
## 51        General 166.3000000 2024-03-01             NA             NA   Actual
## 52        General 148.0000000 2024-04-01             NA             NA   Actual
## 53        General 154.7000000 2024-05-01             NA             NA   Actual
## 54        General 151.0000000 2024-06-01             NA             NA   Actual
## 55        General 149.8000000 2024-07-01             NA             NA   Actual
## 56        General 145.8000000 2024-08-01             NA             NA   Actual
## 57        General 146.9000000 2024-09-01             NA             NA   Actual
## 58        General 150.3000000 2024-10-01             NA             NA   Actual
## 59        General 148.1000000 2024-11-01             NA             NA   Actual
## 60        General 158.0000000 2024-12-01             NA             NA   Actual
## 61        General          NA 2024-12-02             NA             NA  Imputed
## 62        General          NA 2024-12-03             NA             NA  Imputed
## 63        General          NA 2024-12-04             NA             NA  Imputed
## 64        General          NA 2024-12-05             NA             NA  Imputed
## 65        General          NA 2024-12-06             NA             NA  Imputed
## 66        General          NA 2024-12-07             NA             NA  Imputed
## 67        General          NA 2024-12-08             NA             NA  Imputed
## 68        General          NA 2024-12-09             NA             NA  Imputed
## 69        General          NA 2024-12-10             NA             NA  Imputed
## 70        General          NA 2024-12-11             NA             NA  Imputed
## 71        General          NA 2024-12-12             NA             NA  Imputed
## 72        General 130.6000000 2025-04-01             NA             NA   Actual
## 73  Manufacturing 150.8000000 2023-01-01             NA             NA   Actual
## 74  Manufacturing 144.4000000 2023-02-01             NA             NA   Actual
## 75  Manufacturing 156.2000000 2023-03-01             NA             NA   Actual
## 76  Manufacturing 130.6000000 2023-04-01             NA             NA   Actual
## 77  Manufacturing 143.1000000 2023-05-01             NA             NA   Actual
## 78  Manufacturing 141.6000000 2023-06-01             NA             NA   Actual
## 79  Manufacturing 142.1000000 2023-07-01             NA             NA   Actual
## 80  Manufacturing 144.4000000 2023-08-01             NA             NA   Actual
## 81  Manufacturing 141.5000000 2023-09-01             NA             NA   Actual
## 82  Manufacturing 142.1000000 2023-10-01             NA             NA   Actual
## 83  Manufacturing 139.3000000 2023-11-01             NA             NA   Actual
## 84  Manufacturing 151.6000000 2023-12-01             NA             NA   Actual
## 85  Manufacturing 159.5000000 2024-01-01             NA             NA   Actual
## 86  Manufacturing 148.4000000 2024-02-01             NA             NA   Actual
## 87  Manufacturing 162.4000000 2024-03-01             NA             NA   Actual
## 88  Manufacturing 144.6000000 2024-04-01             NA             NA   Actual
## 89  Manufacturing 150.4000000 2024-05-01             NA             NA   Actual
## 90  Manufacturing 146.6000000 2024-06-01             NA             NA   Actual
## 91  Manufacturing 148.8000000 2024-07-01             NA             NA   Actual
## 92  Manufacturing 146.1000000 2024-08-01             NA             NA   Actual
## 93  Manufacturing 147.2000000 2024-09-01             NA             NA   Actual
## 94  Manufacturing 148.4000000 2024-10-01             NA             NA   Actual
## 95  Manufacturing 147.0000000 2024-11-01             NA             NA   Actual
## 96  Manufacturing 157.2000000 2024-12-01             NA             NA   Actual
## 97  Manufacturing          NA 2024-12-02             NA             NA  Imputed
## 98  Manufacturing          NA 2024-12-03             NA             NA  Imputed
## 99  Manufacturing          NA 2024-12-04             NA             NA  Imputed
## 100 Manufacturing          NA 2024-12-05             NA             NA  Imputed
## 101 Manufacturing          NA 2024-12-06             NA             NA  Imputed
## 102 Manufacturing          NA 2024-12-07             NA             NA  Imputed
## 103 Manufacturing          NA 2024-12-08             NA             NA  Imputed
## 104 Manufacturing          NA 2024-12-09             NA             NA  Imputed
## 105 Manufacturing          NA 2024-12-10             NA             NA  Imputed
## 106 Manufacturing          NA 2024-12-11             NA             NA  Imputed
## 107 Manufacturing          NA 2024-12-12             NA             NA  Imputed
## 108 Manufacturing 130.6000000 2025-04-01             NA             NA   Actual
## 109        Mining 144.3000000 2023-01-01             NA             NA   Actual
## 110        Mining 139.7000000 2023-02-01             NA             NA   Actual
## 111        Mining 156.2000000 2023-03-01             NA             NA   Actual
## 112        Mining 122.6000000 2023-04-01             NA             NA   Actual
## 113        Mining 128.1000000 2023-05-01             NA             NA   Actual
## 114        Mining 122.3000000 2023-06-01             NA             NA   Actual
## 115        Mining 111.9000000 2023-07-01             NA             NA   Actual
## 116        Mining 111.9000000 2023-08-01             NA             NA   Actual
## 117        Mining 111.5000000 2023-09-01             NA             NA   Actual
## 118        Mining 127.4000000 2023-10-01             NA             NA   Actual
## 119        Mining 131.3000000 2023-11-01             NA             NA   Actual
## 120        Mining 139.5000000 2023-12-01             NA             NA   Actual
## 121        Mining 150.7000000 2024-01-01             NA             NA   Actual
## 122        Mining 141.9000000 2024-02-01             NA             NA   Actual
## 123        Mining 158.1000000 2024-03-01             NA             NA   Actual
## 124        Mining 130.9000000 2024-04-01             NA             NA   Actual
## 125        Mining 136.5000000 2024-05-01             NA             NA   Actual
## 126        Mining 134.9000000 2024-06-01             NA             NA   Actual
## 127        Mining 116.1000000 2024-07-01             NA             NA   Actual
## 128        Mining 107.1000000 2024-08-01             NA             NA   Actual
## 129        Mining 111.7000000 2024-09-01             NA             NA   Actual
## 130        Mining 128.5000000 2024-10-01             NA             NA   Actual
## 131        Mining 133.8000000 2024-11-01             NA             NA   Actual
## 132        Mining 143.2000000 2024-12-01             NA             NA   Actual
## 133        Mining          NA 2024-12-02             NA             NA  Imputed
## 134        Mining          NA 2024-12-03             NA             NA  Imputed
## 135        Mining          NA 2024-12-04             NA             NA  Imputed
## 136        Mining          NA 2024-12-05             NA             NA  Imputed
## 137        Mining          NA 2024-12-06             NA             NA  Imputed
## 138        Mining          NA 2024-12-07             NA             NA  Imputed
## 139        Mining          NA 2024-12-08             NA             NA  Imputed
## 140        Mining          NA 2024-12-09             NA             NA  Imputed
## 141        Mining          NA 2024-12-10             NA             NA  Imputed
## 142        Mining          NA 2024-12-11             NA             NA  Imputed
## 143        Mining          NA 2024-12-12             NA             NA  Imputed
## 144        Mining 130.6000000 2025-04-01             NA             NA   Actual
## 145   electricity   1.3633391 2025-01-01      112.39008     -109.66341 Forecast
## 146   electricity   1.8879907 2025-02-01      132.36739     -128.59141 Forecast
## 147   electricity   1.9329494 2025-03-01      160.51986     -156.65396 Forecast
## 148   electricity 130.6000000 2025-04-01      181.61335     -177.66474   Actual
## 149   electricity   2.0098018 2025-05-01      201.38825     -197.36864 Forecast
## 150   electricity   1.9055897 2025-06-01      219.27242     -215.46124 Forecast
## 151   electricity   1.7230316 2025-07-01      236.10330     -232.65724 Forecast
## 152   electricity   1.5789354 2025-08-01      251.69072     -248.53285 Forecast
## 153   electricity   1.5143806 2025-09-01      266.18775     -263.15899 Forecast
## 154   electricity   1.5131100 2025-10-01      279.78292     -276.75670 Forecast
## 155   electricity   1.5511098 2025-11-01      292.66171     -289.55949 Forecast
## 156   electricity   1.6075610 2025-12-01      304.96265     -301.74753 Forecast
## 157   electricity   1.6614778 2026-01-01      316.79057     -313.46762 Forecast
## 158   electricity   1.6966793 2026-02-01      328.21984     -324.82648 Forecast
## 159   electricity   1.7077133 2026-03-01      339.29693     -335.88150 Forecast
## 160   electricity   1.6989662 2026-04-01      350.04875     -346.65082 Forecast
## 161   electricity   1.6795171 2026-05-01      360.49230     -357.13327 Forecast
## 162   electricity   1.6585752 2026-06-01      370.64206     -367.32491 Forecast
## 163   electricity   1.6428479 2026-07-01      380.51354     -377.22784 Forecast
## 164   electricity   1.6354418 2026-08-01      390.12451     -386.85362 Forecast
## 165   electricity   1.6360097 2026-09-01      399.49446     -396.22244 Forecast
## 166   electricity   1.6418864 2026-10-01      408.64312     -405.35935 Forecast
## 167   electricity   1.6496274 2026-11-01      417.58873     -414.28947 Forecast
## 168   electricity   1.6563097 2026-12-01      426.34698     -423.03436 Forecast
## 169       general   1.0593936 2025-01-01       82.52285      -80.40407 Forecast
## 170       general   1.3139490 2025-02-01       97.64973      -95.02183 Forecast
## 171       general   1.3187533 2025-03-01      118.19790     -115.56040 Forecast
## 172       general 130.6000000 2025-04-01      133.16798     -130.18567   Actual
## 173       general   1.6835981 2025-05-01      147.23263     -143.86543 Forecast
## 174       general   1.7034976 2025-06-01      160.03599     -156.62900 Forecast
## 175       general   1.6003263 2025-07-01      172.20279     -169.00214 Forecast
## 176       general   1.4842832 2025-08-01      183.53237     -180.56381 Forecast
## 177       general   1.3995043 2025-09-01      194.12167     -191.32266 Forecast
## 178       general   1.3492786 2025-10-01      204.08349     -201.38493 Forecast
## 179       general   1.3346522 2025-11-01      213.52057     -210.85127 Forecast
## 180       general   1.3525339 2025-12-01      222.51264     -219.80757 Forecast
## 181       general   1.3888571 2026-01-01      231.13558     -228.35786 Forecast
## 182       general   1.4259058 2026-02-01      239.45173     -236.59992 Forecast
## 183       general   1.4516484 2026-03-01      247.50349     -244.60019 Forecast
## 184       general   1.4620975 2026-04-01      255.31686     -252.39266 Forecast
## 185       general   1.4591233 2026-05-01      262.90860     -259.99035 Forecast
## 186       general   1.4477832 2026-06-01      270.29151     -267.39595 Forecast
## 187       general   1.4340398 2026-07-01      277.47703     -274.60895 Forecast
## 188       general   1.4227985 2026-08-01      284.47662     -281.63103 Forecast
## 189       general   1.4166947 2026-09-01      291.30248     -288.46909 Forecast
## 190       general   1.4159624 2026-10-01      297.96722     -295.13530 Forecast
## 191       general   1.4191309 2026-11-01      304.48314     -301.64487 Forecast
## 192       general   1.4240200 2026-12-01      310.86136     -308.01332 Forecast
## 193 manufacturing   1.1335168 2025-01-01       81.27371      -79.00668 Forecast
## 194 manufacturing   1.4387151 2025-02-01       95.90854      -93.03111 Forecast
## 195 manufacturing   1.4642155 2025-03-01      116.04951     -113.12108 Forecast
## 196 manufacturing 130.6000000 2025-04-01      130.76861     -127.47948   Actual
## 197 manufacturing   1.8369186 2025-05-01      144.61057     -140.93673 Forecast
## 198 manufacturing   1.8461067 2025-06-01      157.21804     -153.52583 Forecast
## 199 manufacturing   1.7270084 2025-07-01      169.22345     -165.76944 Forecast
## 200 manufacturing   1.5975113 2025-08-01      180.39904     -177.20402 Forecast
## 201 manufacturing   1.5057047 2025-09-01      190.83005     -187.81864 Forecast
## 202 manufacturing   1.4546013 2025-10-01      200.62618     -197.71698 Forecast
## 203 manufacturing   1.4433513 2025-11-01      209.89362     -207.00692 Forecast
## 204 manufacturing   1.4665896 2025-12-01      218.71672     -215.78354 Forecast
## 205 manufacturing   1.5081060 2026-01-01      227.17587     -224.15966 Forecast
## 206 manufacturing   1.5486515 2026-02-01      235.33592     -232.23862 Forecast
## 207 manufacturing   1.5756401 2026-03-01      243.23989     -240.08861 Forecast
## 208 manufacturing   1.5854144 2026-04-01      250.91307     -247.74224 Forecast
## 209 manufacturing   1.5806606 2026-05-01      258.37084     -255.20952 Forecast
## 210 manufacturing   1.5673202 2026-06-01      265.62450     -262.48986 Forecast
## 211 manufacturing   1.5520256 2026-07-01      272.68416     -269.58011 Forecast
## 212 manufacturing   1.5400088 2026-08-01      279.56041     -276.48039 Forecast
## 213 manufacturing   1.5338970 2026-09-01      286.26500     -283.19720 Forecast
## 214 manufacturing   1.5336866 2026-10-01      292.81050     -289.74313 Forecast
## 215 manufacturing   1.5375831 2026-11-01      299.20936     -296.13419 Forecast
## 216 manufacturing   1.5431217 2026-12-01      305.47288     -302.38664 Forecast
## 217        mining   0.6092385 2025-01-01       73.87455      -72.65607 Forecast
## 218        mining   0.5716553 2025-02-01       87.94737      -86.80406 Forecast
## 219        mining   0.5568408 2025-03-01      105.42790     -104.31422 Forecast
## 220        mining 130.6000000 2025-04-01      117.87977     -116.25438   Actual
## 221        mining   1.0962234 2025-05-01      129.77800     -127.58555 Forecast
## 222        mining   1.2093305 2025-06-01      140.71851     -138.29985 Forecast
## 223        mining   1.1883445 2025-07-01      151.17783     -148.80114 Forecast
## 224        mining   1.1160433 2025-08-01      160.96985     -158.73776 Forecast
## 225        mining   1.0296910 2025-09-01      170.18044     -168.12106 Forecast
## 226        mining   0.9484000 2025-10-01      178.88120     -176.98440 Forecast
## 227        mining   0.8938773 2025-11-01      187.12950     -185.34175 Forecast
## 228        mining   0.8777085 2025-12-01      194.97310     -193.21768 Forecast
## 229        mining   0.8936039 2026-01-01      202.47480     -200.68759 Forecast
## 230        mining   0.9256938 2026-02-01      209.69532     -207.84393 Forecast
## 231        mining   0.9588082 2026-03-01      216.68031     -214.76270 Forecast
## 232        mining   0.9829132 2026-04-01      223.45928     -221.49345 Forecast
## 233        mining   0.9937258 2026-05-01      230.05061     -228.06316 Forecast
## 234        mining   0.9920797 2026-06-01      236.46656     -234.48240 Forecast
## 235        mining   0.9823120 2026-07-01      242.71633     -240.75171 Forecast
## 236        mining   0.9699298 2026-08-01      248.80824     -246.86838 Forecast
## 237        mining   0.9595114 2026-09-01      254.75090     -252.83188 Forecast
## 238        mining   0.9535840 2026-10-01      260.55374     -258.64657 Forecast
## 239        mining   0.9525216 2026-11-01      266.22654     -264.32150 Forecast
## 240        mining   0.9551199 2026-12-01      271.77886     -269.86862 Forecast
final_df <- final_df%>%
  mutate(
    Sector = tolower(Sector)
  )

final_df <- final_df%>%
  filter(Type != "Imputed")%>%
  filter(!(Type == "Forecast"&
           format(Date, "%m") == 4&
           format(Date, "%y") %in% c(2025)))%>%
  arrange(Sector, Date)


write.csv(final_df, "E://Aadikartikey//iip_full_results.csv", row.names = FALSE)
print(final_df)
##            Sector      Growth       Date upper_forecast lower_forecast     Type
## 1     electricity 197.1000000 2023-01-01             NA             NA   Actual
## 2     electricity 187.2000000 2023-02-01             NA             NA   Actual
## 3     electricity 204.2000000 2023-03-01             NA             NA   Actual
## 4     electricity 192.3000000 2023-04-01             NA             NA   Actual
## 5     electricity 201.6000000 2023-05-01             NA             NA   Actual
## 6     electricity 205.2000000 2023-06-01             NA             NA   Actual
## 7     electricity 204.0000000 2023-07-01             NA             NA   Actual
## 8     electricity 220.5000000 2023-08-01             NA             NA   Actual
## 9     electricity 205.9000000 2023-09-01             NA             NA   Actual
## 10    electricity 203.8000000 2023-10-01             NA             NA   Actual
## 11    electricity 176.3000000 2023-11-01             NA             NA   Actual
## 12    electricity 181.6000000 2023-12-01             NA             NA   Actual
## 13    electricity 201.9000000 2024-01-01             NA             NA   Actual
## 14    electricity 194.0000000 2024-02-01             NA             NA   Actual
## 15    electricity 219.5000000 2024-03-01             NA             NA   Actual
## 16    electricity 212.0000000 2024-04-01             NA             NA   Actual
## 17    electricity 229.3000000 2024-05-01             NA             NA   Actual
## 18    electricity 222.8000000 2024-06-01             NA             NA   Actual
## 19    electricity 220.2000000 2024-07-01             NA             NA   Actual
## 20    electricity 212.3000000 2024-08-01             NA             NA   Actual
## 21    electricity 206.9000000 2024-09-01             NA             NA   Actual
## 22    electricity 207.8000000 2024-10-01             NA             NA   Actual
## 23    electricity 184.1000000 2024-11-01             NA             NA   Actual
## 24    electricity 192.8000000 2024-12-01             NA             NA   Actual
## 25    electricity   1.3633391 2025-01-01      112.39008     -109.66341 Forecast
## 26    electricity   1.8879907 2025-02-01      132.36739     -128.59141 Forecast
## 27    electricity   1.9329494 2025-03-01      160.51986     -156.65396 Forecast
## 28    electricity 130.6000000 2025-04-01             NA             NA   Actual
## 29    electricity 130.6000000 2025-04-01      181.61335     -177.66474   Actual
## 30    electricity   2.0098018 2025-05-01      201.38825     -197.36864 Forecast
## 31    electricity   1.9055897 2025-06-01      219.27242     -215.46124 Forecast
## 32    electricity   1.7230316 2025-07-01      236.10330     -232.65724 Forecast
## 33    electricity   1.5789354 2025-08-01      251.69072     -248.53285 Forecast
## 34    electricity   1.5143806 2025-09-01      266.18775     -263.15899 Forecast
## 35    electricity   1.5131100 2025-10-01      279.78292     -276.75670 Forecast
## 36    electricity   1.5511098 2025-11-01      292.66171     -289.55949 Forecast
## 37    electricity   1.6075610 2025-12-01      304.96265     -301.74753 Forecast
## 38    electricity   1.6614778 2026-01-01      316.79057     -313.46762 Forecast
## 39    electricity   1.6966793 2026-02-01      328.21984     -324.82648 Forecast
## 40    electricity   1.7077133 2026-03-01      339.29693     -335.88150 Forecast
## 41    electricity   1.6989662 2026-04-01      350.04875     -346.65082 Forecast
## 42    electricity   1.6795171 2026-05-01      360.49230     -357.13327 Forecast
## 43    electricity   1.6585752 2026-06-01      370.64206     -367.32491 Forecast
## 44    electricity   1.6428479 2026-07-01      380.51354     -377.22784 Forecast
## 45    electricity   1.6354418 2026-08-01      390.12451     -386.85362 Forecast
## 46    electricity   1.6360097 2026-09-01      399.49446     -396.22244 Forecast
## 47    electricity   1.6418864 2026-10-01      408.64312     -405.35935 Forecast
## 48    electricity   1.6496274 2026-11-01      417.58873     -414.28947 Forecast
## 49    electricity   1.6563097 2026-12-01      426.34698     -423.03436 Forecast
## 50        general 153.6000000 2023-01-01             NA             NA   Actual
## 51        general 147.1000000 2023-02-01             NA             NA   Actual
## 52        general 160.0000000 2023-03-01             NA             NA   Actual
## 53        general 140.7000000 2023-04-01             NA             NA   Actual
## 54        general 145.6000000 2023-05-01             NA             NA   Actual
## 55        general 143.9000000 2023-06-01             NA             NA   Actual
## 56        general 142.7000000 2023-07-01             NA             NA   Actual
## 57        general 145.8000000 2023-08-01             NA             NA   Actual
## 58        general 142.3000000 2023-09-01             NA             NA   Actual
## 59        general 144.9000000 2023-10-01             NA             NA   Actual
## 60        general 141.1000000 2023-11-01             NA             NA   Actual
## 61        general 152.3000000 2023-12-01             NA             NA   Actual
## 62        general 161.6000000 2024-01-01             NA             NA   Actual
## 63        general 151.1000000 2024-02-01             NA             NA   Actual
## 64        general 166.3000000 2024-03-01             NA             NA   Actual
## 65        general 148.0000000 2024-04-01             NA             NA   Actual
## 66        general 154.7000000 2024-05-01             NA             NA   Actual
## 67        general 151.0000000 2024-06-01             NA             NA   Actual
## 68        general 149.8000000 2024-07-01             NA             NA   Actual
## 69        general 145.8000000 2024-08-01             NA             NA   Actual
## 70        general 146.9000000 2024-09-01             NA             NA   Actual
## 71        general 150.3000000 2024-10-01             NA             NA   Actual
## 72        general 148.1000000 2024-11-01             NA             NA   Actual
## 73        general 158.0000000 2024-12-01             NA             NA   Actual
## 74        general   1.0593936 2025-01-01       82.52285      -80.40407 Forecast
## 75        general   1.3139490 2025-02-01       97.64973      -95.02183 Forecast
## 76        general   1.3187533 2025-03-01      118.19790     -115.56040 Forecast
## 77        general 130.6000000 2025-04-01             NA             NA   Actual
## 78        general 130.6000000 2025-04-01      133.16798     -130.18567   Actual
## 79        general   1.6835981 2025-05-01      147.23263     -143.86543 Forecast
## 80        general   1.7034976 2025-06-01      160.03599     -156.62900 Forecast
## 81        general   1.6003263 2025-07-01      172.20279     -169.00214 Forecast
## 82        general   1.4842832 2025-08-01      183.53237     -180.56381 Forecast
## 83        general   1.3995043 2025-09-01      194.12167     -191.32266 Forecast
## 84        general   1.3492786 2025-10-01      204.08349     -201.38493 Forecast
## 85        general   1.3346522 2025-11-01      213.52057     -210.85127 Forecast
## 86        general   1.3525339 2025-12-01      222.51264     -219.80757 Forecast
## 87        general   1.3888571 2026-01-01      231.13558     -228.35786 Forecast
## 88        general   1.4259058 2026-02-01      239.45173     -236.59992 Forecast
## 89        general   1.4516484 2026-03-01      247.50349     -244.60019 Forecast
## 90        general   1.4620975 2026-04-01      255.31686     -252.39266 Forecast
## 91        general   1.4591233 2026-05-01      262.90860     -259.99035 Forecast
## 92        general   1.4477832 2026-06-01      270.29151     -267.39595 Forecast
## 93        general   1.4340398 2026-07-01      277.47703     -274.60895 Forecast
## 94        general   1.4227985 2026-08-01      284.47662     -281.63103 Forecast
## 95        general   1.4166947 2026-09-01      291.30248     -288.46909 Forecast
## 96        general   1.4159624 2026-10-01      297.96722     -295.13530 Forecast
## 97        general   1.4191309 2026-11-01      304.48314     -301.64487 Forecast
## 98        general   1.4240200 2026-12-01      310.86136     -308.01332 Forecast
## 99  manufacturing 150.8000000 2023-01-01             NA             NA   Actual
## 100 manufacturing 144.4000000 2023-02-01             NA             NA   Actual
## 101 manufacturing 156.2000000 2023-03-01             NA             NA   Actual
## 102 manufacturing 130.6000000 2023-04-01             NA             NA   Actual
## 103 manufacturing 143.1000000 2023-05-01             NA             NA   Actual
## 104 manufacturing 141.6000000 2023-06-01             NA             NA   Actual
## 105 manufacturing 142.1000000 2023-07-01             NA             NA   Actual
## 106 manufacturing 144.4000000 2023-08-01             NA             NA   Actual
## 107 manufacturing 141.5000000 2023-09-01             NA             NA   Actual
## 108 manufacturing 142.1000000 2023-10-01             NA             NA   Actual
## 109 manufacturing 139.3000000 2023-11-01             NA             NA   Actual
## 110 manufacturing 151.6000000 2023-12-01             NA             NA   Actual
## 111 manufacturing 159.5000000 2024-01-01             NA             NA   Actual
## 112 manufacturing 148.4000000 2024-02-01             NA             NA   Actual
## 113 manufacturing 162.4000000 2024-03-01             NA             NA   Actual
## 114 manufacturing 144.6000000 2024-04-01             NA             NA   Actual
## 115 manufacturing 150.4000000 2024-05-01             NA             NA   Actual
## 116 manufacturing 146.6000000 2024-06-01             NA             NA   Actual
## 117 manufacturing 148.8000000 2024-07-01             NA             NA   Actual
## 118 manufacturing 146.1000000 2024-08-01             NA             NA   Actual
## 119 manufacturing 147.2000000 2024-09-01             NA             NA   Actual
## 120 manufacturing 148.4000000 2024-10-01             NA             NA   Actual
## 121 manufacturing 147.0000000 2024-11-01             NA             NA   Actual
## 122 manufacturing 157.2000000 2024-12-01             NA             NA   Actual
## 123 manufacturing   1.1335168 2025-01-01       81.27371      -79.00668 Forecast
## 124 manufacturing   1.4387151 2025-02-01       95.90854      -93.03111 Forecast
## 125 manufacturing   1.4642155 2025-03-01      116.04951     -113.12108 Forecast
## 126 manufacturing 130.6000000 2025-04-01             NA             NA   Actual
## 127 manufacturing 130.6000000 2025-04-01      130.76861     -127.47948   Actual
## 128 manufacturing   1.8369186 2025-05-01      144.61057     -140.93673 Forecast
## 129 manufacturing   1.8461067 2025-06-01      157.21804     -153.52583 Forecast
## 130 manufacturing   1.7270084 2025-07-01      169.22345     -165.76944 Forecast
## 131 manufacturing   1.5975113 2025-08-01      180.39904     -177.20402 Forecast
## 132 manufacturing   1.5057047 2025-09-01      190.83005     -187.81864 Forecast
## 133 manufacturing   1.4546013 2025-10-01      200.62618     -197.71698 Forecast
## 134 manufacturing   1.4433513 2025-11-01      209.89362     -207.00692 Forecast
## 135 manufacturing   1.4665896 2025-12-01      218.71672     -215.78354 Forecast
## 136 manufacturing   1.5081060 2026-01-01      227.17587     -224.15966 Forecast
## 137 manufacturing   1.5486515 2026-02-01      235.33592     -232.23862 Forecast
## 138 manufacturing   1.5756401 2026-03-01      243.23989     -240.08861 Forecast
## 139 manufacturing   1.5854144 2026-04-01      250.91307     -247.74224 Forecast
## 140 manufacturing   1.5806606 2026-05-01      258.37084     -255.20952 Forecast
## 141 manufacturing   1.5673202 2026-06-01      265.62450     -262.48986 Forecast
## 142 manufacturing   1.5520256 2026-07-01      272.68416     -269.58011 Forecast
## 143 manufacturing   1.5400088 2026-08-01      279.56041     -276.48039 Forecast
## 144 manufacturing   1.5338970 2026-09-01      286.26500     -283.19720 Forecast
## 145 manufacturing   1.5336866 2026-10-01      292.81050     -289.74313 Forecast
## 146 manufacturing   1.5375831 2026-11-01      299.20936     -296.13419 Forecast
## 147 manufacturing   1.5431217 2026-12-01      305.47288     -302.38664 Forecast
## 148        mining 144.3000000 2023-01-01             NA             NA   Actual
## 149        mining 139.7000000 2023-02-01             NA             NA   Actual
## 150        mining 156.2000000 2023-03-01             NA             NA   Actual
## 151        mining 122.6000000 2023-04-01             NA             NA   Actual
## 152        mining 128.1000000 2023-05-01             NA             NA   Actual
## 153        mining 122.3000000 2023-06-01             NA             NA   Actual
## 154        mining 111.9000000 2023-07-01             NA             NA   Actual
## 155        mining 111.9000000 2023-08-01             NA             NA   Actual
## 156        mining 111.5000000 2023-09-01             NA             NA   Actual
## 157        mining 127.4000000 2023-10-01             NA             NA   Actual
## 158        mining 131.3000000 2023-11-01             NA             NA   Actual
## 159        mining 139.5000000 2023-12-01             NA             NA   Actual
## 160        mining 150.7000000 2024-01-01             NA             NA   Actual
## 161        mining 141.9000000 2024-02-01             NA             NA   Actual
## 162        mining 158.1000000 2024-03-01             NA             NA   Actual
## 163        mining 130.9000000 2024-04-01             NA             NA   Actual
## 164        mining 136.5000000 2024-05-01             NA             NA   Actual
## 165        mining 134.9000000 2024-06-01             NA             NA   Actual
## 166        mining 116.1000000 2024-07-01             NA             NA   Actual
## 167        mining 107.1000000 2024-08-01             NA             NA   Actual
## 168        mining 111.7000000 2024-09-01             NA             NA   Actual
## 169        mining 128.5000000 2024-10-01             NA             NA   Actual
## 170        mining 133.8000000 2024-11-01             NA             NA   Actual
## 171        mining 143.2000000 2024-12-01             NA             NA   Actual
## 172        mining   0.6092385 2025-01-01       73.87455      -72.65607 Forecast
## 173        mining   0.5716553 2025-02-01       87.94737      -86.80406 Forecast
## 174        mining   0.5568408 2025-03-01      105.42790     -104.31422 Forecast
## 175        mining 130.6000000 2025-04-01             NA             NA   Actual
## 176        mining 130.6000000 2025-04-01      117.87977     -116.25438   Actual
## 177        mining   1.0962234 2025-05-01      129.77800     -127.58555 Forecast
## 178        mining   1.2093305 2025-06-01      140.71851     -138.29985 Forecast
## 179        mining   1.1883445 2025-07-01      151.17783     -148.80114 Forecast
## 180        mining   1.1160433 2025-08-01      160.96985     -158.73776 Forecast
## 181        mining   1.0296910 2025-09-01      170.18044     -168.12106 Forecast
## 182        mining   0.9484000 2025-10-01      178.88120     -176.98440 Forecast
## 183        mining   0.8938773 2025-11-01      187.12950     -185.34175 Forecast
## 184        mining   0.8777085 2025-12-01      194.97310     -193.21768 Forecast
## 185        mining   0.8936039 2026-01-01      202.47480     -200.68759 Forecast
## 186        mining   0.9256938 2026-02-01      209.69532     -207.84393 Forecast
## 187        mining   0.9588082 2026-03-01      216.68031     -214.76270 Forecast
## 188        mining   0.9829132 2026-04-01      223.45928     -221.49345 Forecast
## 189        mining   0.9937258 2026-05-01      230.05061     -228.06316 Forecast
## 190        mining   0.9920797 2026-06-01      236.46656     -234.48240 Forecast
## 191        mining   0.9823120 2026-07-01      242.71633     -240.75171 Forecast
## 192        mining   0.9699298 2026-08-01      248.80824     -246.86838 Forecast
## 193        mining   0.9595114 2026-09-01      254.75090     -252.83188 Forecast
## 194        mining   0.9535840 2026-10-01      260.55374     -258.64657 Forecast
## 195        mining   0.9525216 2026-11-01      266.22654     -264.32150 Forecast
## 196        mining   0.9551199 2026-12-01      271.77886     -269.86862 Forecast
#Fixing the Values which are missing in between the actual data
#Creating a separate column in which the mean forecast values are present
#creating an another column separately in numbering Actual as 1 while Forecasted as 0

final_df <- final_df%>%
  filter(!(Type == "Actual"& !is.na(upper_forecast) & !is.na(lower_forecast) & format(Date, "%m")== "04"
         & format(Date, "%y") == "25"))


fixing_the_values <- which(
  final_df$Type == "Actual" & format(final_df$Date, "%m") == "04" & format(final_df$Date, "%y") == "25"
)

fixed_values <- c(130.6, 149.5, 214.4, 152.0)

final_df$Growth[fixing_the_values] <- fixed_values


print(final_df)
##            Sector      Growth       Date upper_forecast lower_forecast     Type
## 1     electricity 197.1000000 2023-01-01             NA             NA   Actual
## 2     electricity 187.2000000 2023-02-01             NA             NA   Actual
## 3     electricity 204.2000000 2023-03-01             NA             NA   Actual
## 4     electricity 192.3000000 2023-04-01             NA             NA   Actual
## 5     electricity 201.6000000 2023-05-01             NA             NA   Actual
## 6     electricity 205.2000000 2023-06-01             NA             NA   Actual
## 7     electricity 204.0000000 2023-07-01             NA             NA   Actual
## 8     electricity 220.5000000 2023-08-01             NA             NA   Actual
## 9     electricity 205.9000000 2023-09-01             NA             NA   Actual
## 10    electricity 203.8000000 2023-10-01             NA             NA   Actual
## 11    electricity 176.3000000 2023-11-01             NA             NA   Actual
## 12    electricity 181.6000000 2023-12-01             NA             NA   Actual
## 13    electricity 201.9000000 2024-01-01             NA             NA   Actual
## 14    electricity 194.0000000 2024-02-01             NA             NA   Actual
## 15    electricity 219.5000000 2024-03-01             NA             NA   Actual
## 16    electricity 212.0000000 2024-04-01             NA             NA   Actual
## 17    electricity 229.3000000 2024-05-01             NA             NA   Actual
## 18    electricity 222.8000000 2024-06-01             NA             NA   Actual
## 19    electricity 220.2000000 2024-07-01             NA             NA   Actual
## 20    electricity 212.3000000 2024-08-01             NA             NA   Actual
## 21    electricity 206.9000000 2024-09-01             NA             NA   Actual
## 22    electricity 207.8000000 2024-10-01             NA             NA   Actual
## 23    electricity 184.1000000 2024-11-01             NA             NA   Actual
## 24    electricity 192.8000000 2024-12-01             NA             NA   Actual
## 25    electricity   1.3633391 2025-01-01      112.39008     -109.66341 Forecast
## 26    electricity   1.8879907 2025-02-01      132.36739     -128.59141 Forecast
## 27    electricity   1.9329494 2025-03-01      160.51986     -156.65396 Forecast
## 28    electricity 130.6000000 2025-04-01             NA             NA   Actual
## 29    electricity   2.0098018 2025-05-01      201.38825     -197.36864 Forecast
## 30    electricity   1.9055897 2025-06-01      219.27242     -215.46124 Forecast
## 31    electricity   1.7230316 2025-07-01      236.10330     -232.65724 Forecast
## 32    electricity   1.5789354 2025-08-01      251.69072     -248.53285 Forecast
## 33    electricity   1.5143806 2025-09-01      266.18775     -263.15899 Forecast
## 34    electricity   1.5131100 2025-10-01      279.78292     -276.75670 Forecast
## 35    electricity   1.5511098 2025-11-01      292.66171     -289.55949 Forecast
## 36    electricity   1.6075610 2025-12-01      304.96265     -301.74753 Forecast
## 37    electricity   1.6614778 2026-01-01      316.79057     -313.46762 Forecast
## 38    electricity   1.6966793 2026-02-01      328.21984     -324.82648 Forecast
## 39    electricity   1.7077133 2026-03-01      339.29693     -335.88150 Forecast
## 40    electricity   1.6989662 2026-04-01      350.04875     -346.65082 Forecast
## 41    electricity   1.6795171 2026-05-01      360.49230     -357.13327 Forecast
## 42    electricity   1.6585752 2026-06-01      370.64206     -367.32491 Forecast
## 43    electricity   1.6428479 2026-07-01      380.51354     -377.22784 Forecast
## 44    electricity   1.6354418 2026-08-01      390.12451     -386.85362 Forecast
## 45    electricity   1.6360097 2026-09-01      399.49446     -396.22244 Forecast
## 46    electricity   1.6418864 2026-10-01      408.64312     -405.35935 Forecast
## 47    electricity   1.6496274 2026-11-01      417.58873     -414.28947 Forecast
## 48    electricity   1.6563097 2026-12-01      426.34698     -423.03436 Forecast
## 49        general 153.6000000 2023-01-01             NA             NA   Actual
## 50        general 147.1000000 2023-02-01             NA             NA   Actual
## 51        general 160.0000000 2023-03-01             NA             NA   Actual
## 52        general 140.7000000 2023-04-01             NA             NA   Actual
## 53        general 145.6000000 2023-05-01             NA             NA   Actual
## 54        general 143.9000000 2023-06-01             NA             NA   Actual
## 55        general 142.7000000 2023-07-01             NA             NA   Actual
## 56        general 145.8000000 2023-08-01             NA             NA   Actual
## 57        general 142.3000000 2023-09-01             NA             NA   Actual
## 58        general 144.9000000 2023-10-01             NA             NA   Actual
## 59        general 141.1000000 2023-11-01             NA             NA   Actual
## 60        general 152.3000000 2023-12-01             NA             NA   Actual
## 61        general 161.6000000 2024-01-01             NA             NA   Actual
## 62        general 151.1000000 2024-02-01             NA             NA   Actual
## 63        general 166.3000000 2024-03-01             NA             NA   Actual
## 64        general 148.0000000 2024-04-01             NA             NA   Actual
## 65        general 154.7000000 2024-05-01             NA             NA   Actual
## 66        general 151.0000000 2024-06-01             NA             NA   Actual
## 67        general 149.8000000 2024-07-01             NA             NA   Actual
## 68        general 145.8000000 2024-08-01             NA             NA   Actual
## 69        general 146.9000000 2024-09-01             NA             NA   Actual
## 70        general 150.3000000 2024-10-01             NA             NA   Actual
## 71        general 148.1000000 2024-11-01             NA             NA   Actual
## 72        general 158.0000000 2024-12-01             NA             NA   Actual
## 73        general   1.0593936 2025-01-01       82.52285      -80.40407 Forecast
## 74        general   1.3139490 2025-02-01       97.64973      -95.02183 Forecast
## 75        general   1.3187533 2025-03-01      118.19790     -115.56040 Forecast
## 76        general 149.5000000 2025-04-01             NA             NA   Actual
## 77        general   1.6835981 2025-05-01      147.23263     -143.86543 Forecast
## 78        general   1.7034976 2025-06-01      160.03599     -156.62900 Forecast
## 79        general   1.6003263 2025-07-01      172.20279     -169.00214 Forecast
## 80        general   1.4842832 2025-08-01      183.53237     -180.56381 Forecast
## 81        general   1.3995043 2025-09-01      194.12167     -191.32266 Forecast
## 82        general   1.3492786 2025-10-01      204.08349     -201.38493 Forecast
## 83        general   1.3346522 2025-11-01      213.52057     -210.85127 Forecast
## 84        general   1.3525339 2025-12-01      222.51264     -219.80757 Forecast
## 85        general   1.3888571 2026-01-01      231.13558     -228.35786 Forecast
## 86        general   1.4259058 2026-02-01      239.45173     -236.59992 Forecast
## 87        general   1.4516484 2026-03-01      247.50349     -244.60019 Forecast
## 88        general   1.4620975 2026-04-01      255.31686     -252.39266 Forecast
## 89        general   1.4591233 2026-05-01      262.90860     -259.99035 Forecast
## 90        general   1.4477832 2026-06-01      270.29151     -267.39595 Forecast
## 91        general   1.4340398 2026-07-01      277.47703     -274.60895 Forecast
## 92        general   1.4227985 2026-08-01      284.47662     -281.63103 Forecast
## 93        general   1.4166947 2026-09-01      291.30248     -288.46909 Forecast
## 94        general   1.4159624 2026-10-01      297.96722     -295.13530 Forecast
## 95        general   1.4191309 2026-11-01      304.48314     -301.64487 Forecast
## 96        general   1.4240200 2026-12-01      310.86136     -308.01332 Forecast
## 97  manufacturing 150.8000000 2023-01-01             NA             NA   Actual
## 98  manufacturing 144.4000000 2023-02-01             NA             NA   Actual
## 99  manufacturing 156.2000000 2023-03-01             NA             NA   Actual
## 100 manufacturing 130.6000000 2023-04-01             NA             NA   Actual
## 101 manufacturing 143.1000000 2023-05-01             NA             NA   Actual
## 102 manufacturing 141.6000000 2023-06-01             NA             NA   Actual
## 103 manufacturing 142.1000000 2023-07-01             NA             NA   Actual
## 104 manufacturing 144.4000000 2023-08-01             NA             NA   Actual
## 105 manufacturing 141.5000000 2023-09-01             NA             NA   Actual
## 106 manufacturing 142.1000000 2023-10-01             NA             NA   Actual
## 107 manufacturing 139.3000000 2023-11-01             NA             NA   Actual
## 108 manufacturing 151.6000000 2023-12-01             NA             NA   Actual
## 109 manufacturing 159.5000000 2024-01-01             NA             NA   Actual
## 110 manufacturing 148.4000000 2024-02-01             NA             NA   Actual
## 111 manufacturing 162.4000000 2024-03-01             NA             NA   Actual
## 112 manufacturing 144.6000000 2024-04-01             NA             NA   Actual
## 113 manufacturing 150.4000000 2024-05-01             NA             NA   Actual
## 114 manufacturing 146.6000000 2024-06-01             NA             NA   Actual
## 115 manufacturing 148.8000000 2024-07-01             NA             NA   Actual
## 116 manufacturing 146.1000000 2024-08-01             NA             NA   Actual
## 117 manufacturing 147.2000000 2024-09-01             NA             NA   Actual
## 118 manufacturing 148.4000000 2024-10-01             NA             NA   Actual
## 119 manufacturing 147.0000000 2024-11-01             NA             NA   Actual
## 120 manufacturing 157.2000000 2024-12-01             NA             NA   Actual
## 121 manufacturing   1.1335168 2025-01-01       81.27371      -79.00668 Forecast
## 122 manufacturing   1.4387151 2025-02-01       95.90854      -93.03111 Forecast
## 123 manufacturing   1.4642155 2025-03-01      116.04951     -113.12108 Forecast
## 124 manufacturing 214.4000000 2025-04-01             NA             NA   Actual
## 125 manufacturing   1.8369186 2025-05-01      144.61057     -140.93673 Forecast
## 126 manufacturing   1.8461067 2025-06-01      157.21804     -153.52583 Forecast
## 127 manufacturing   1.7270084 2025-07-01      169.22345     -165.76944 Forecast
## 128 manufacturing   1.5975113 2025-08-01      180.39904     -177.20402 Forecast
## 129 manufacturing   1.5057047 2025-09-01      190.83005     -187.81864 Forecast
## 130 manufacturing   1.4546013 2025-10-01      200.62618     -197.71698 Forecast
## 131 manufacturing   1.4433513 2025-11-01      209.89362     -207.00692 Forecast
## 132 manufacturing   1.4665896 2025-12-01      218.71672     -215.78354 Forecast
## 133 manufacturing   1.5081060 2026-01-01      227.17587     -224.15966 Forecast
## 134 manufacturing   1.5486515 2026-02-01      235.33592     -232.23862 Forecast
## 135 manufacturing   1.5756401 2026-03-01      243.23989     -240.08861 Forecast
## 136 manufacturing   1.5854144 2026-04-01      250.91307     -247.74224 Forecast
## 137 manufacturing   1.5806606 2026-05-01      258.37084     -255.20952 Forecast
## 138 manufacturing   1.5673202 2026-06-01      265.62450     -262.48986 Forecast
## 139 manufacturing   1.5520256 2026-07-01      272.68416     -269.58011 Forecast
## 140 manufacturing   1.5400088 2026-08-01      279.56041     -276.48039 Forecast
## 141 manufacturing   1.5338970 2026-09-01      286.26500     -283.19720 Forecast
## 142 manufacturing   1.5336866 2026-10-01      292.81050     -289.74313 Forecast
## 143 manufacturing   1.5375831 2026-11-01      299.20936     -296.13419 Forecast
## 144 manufacturing   1.5431217 2026-12-01      305.47288     -302.38664 Forecast
## 145        mining 144.3000000 2023-01-01             NA             NA   Actual
## 146        mining 139.7000000 2023-02-01             NA             NA   Actual
## 147        mining 156.2000000 2023-03-01             NA             NA   Actual
## 148        mining 122.6000000 2023-04-01             NA             NA   Actual
## 149        mining 128.1000000 2023-05-01             NA             NA   Actual
## 150        mining 122.3000000 2023-06-01             NA             NA   Actual
## 151        mining 111.9000000 2023-07-01             NA             NA   Actual
## 152        mining 111.9000000 2023-08-01             NA             NA   Actual
## 153        mining 111.5000000 2023-09-01             NA             NA   Actual
## 154        mining 127.4000000 2023-10-01             NA             NA   Actual
## 155        mining 131.3000000 2023-11-01             NA             NA   Actual
## 156        mining 139.5000000 2023-12-01             NA             NA   Actual
## 157        mining 150.7000000 2024-01-01             NA             NA   Actual
## 158        mining 141.9000000 2024-02-01             NA             NA   Actual
## 159        mining 158.1000000 2024-03-01             NA             NA   Actual
## 160        mining 130.9000000 2024-04-01             NA             NA   Actual
## 161        mining 136.5000000 2024-05-01             NA             NA   Actual
## 162        mining 134.9000000 2024-06-01             NA             NA   Actual
## 163        mining 116.1000000 2024-07-01             NA             NA   Actual
## 164        mining 107.1000000 2024-08-01             NA             NA   Actual
## 165        mining 111.7000000 2024-09-01             NA             NA   Actual
## 166        mining 128.5000000 2024-10-01             NA             NA   Actual
## 167        mining 133.8000000 2024-11-01             NA             NA   Actual
## 168        mining 143.2000000 2024-12-01             NA             NA   Actual
## 169        mining   0.6092385 2025-01-01       73.87455      -72.65607 Forecast
## 170        mining   0.5716553 2025-02-01       87.94737      -86.80406 Forecast
## 171        mining   0.5568408 2025-03-01      105.42790     -104.31422 Forecast
## 172        mining 152.0000000 2025-04-01             NA             NA   Actual
## 173        mining   1.0962234 2025-05-01      129.77800     -127.58555 Forecast
## 174        mining   1.2093305 2025-06-01      140.71851     -138.29985 Forecast
## 175        mining   1.1883445 2025-07-01      151.17783     -148.80114 Forecast
## 176        mining   1.1160433 2025-08-01      160.96985     -158.73776 Forecast
## 177        mining   1.0296910 2025-09-01      170.18044     -168.12106 Forecast
## 178        mining   0.9484000 2025-10-01      178.88120     -176.98440 Forecast
## 179        mining   0.8938773 2025-11-01      187.12950     -185.34175 Forecast
## 180        mining   0.8777085 2025-12-01      194.97310     -193.21768 Forecast
## 181        mining   0.8936039 2026-01-01      202.47480     -200.68759 Forecast
## 182        mining   0.9256938 2026-02-01      209.69532     -207.84393 Forecast
## 183        mining   0.9588082 2026-03-01      216.68031     -214.76270 Forecast
## 184        mining   0.9829132 2026-04-01      223.45928     -221.49345 Forecast
## 185        mining   0.9937258 2026-05-01      230.05061     -228.06316 Forecast
## 186        mining   0.9920797 2026-06-01      236.46656     -234.48240 Forecast
## 187        mining   0.9823120 2026-07-01      242.71633     -240.75171 Forecast
## 188        mining   0.9699298 2026-08-01      248.80824     -246.86838 Forecast
## 189        mining   0.9595114 2026-09-01      254.75090     -252.83188 Forecast
## 190        mining   0.9535840 2026-10-01      260.55374     -258.64657 Forecast
## 191        mining   0.9525216 2026-11-01      266.22654     -264.32150 Forecast
## 192        mining   0.9551199 2026-12-01      271.77886     -269.86862 Forecast
last_actual_minati <- final_df %>%
  filter(Type == "Actual")%>%
  group_by(Sector)%>%
  filter(Date == max(Date))%>%
  dplyr::select(Sector,Date, Growth)%>%
  rename(last_actual_values = Growth)

last_actual_minati
## # A tibble: 4 × 3
## # Groups:   Sector [4]
##   Sector        Date       last_actual_values
##   <chr>         <date>                  <dbl>
## 1 electricity   2025-04-01               131.
## 2 general       2025-04-01               150.
## 3 manufacturing 2025-04-01               214.
## 4 mining        2025-04-01               152
final_df_remasterd <- final_df%>%
  arrange(Sector, Date)

final_df_remasterd <- final_df_remasterd%>%
  mutate(actual_flag = ifelse(Type == "Actual", 1, 0))

final_df_remasterd <- final_df_remasterd%>%
  group_by(Sector)%>%
  mutate(forecast_block = cumsum(actual_flag))

final_df_remasterd <- final_df_remasterd%>%
  group_by(Sector, forecast_block)%>%
  mutate(last_actual = ifelse(Type == "Actual", Growth, NA))%>%
  fill(last_actual, .direction = "down")

final_df_remasterd <- final_df_remasterd%>%
  mutate(mean_forecast = (upper_forecast+lower_forecast)/2)%>%
  mutate(forecast_numbers = last_actual+ mean_forecast)


print(final_df_remasterd)
## # A tibble: 192 × 11
## # Groups:   Sector, forecast_block [100]
##    Sector      Growth Date       upper_forecast lower_forecast Type  actual_flag
##    <chr>        <dbl> <date>              <dbl>          <dbl> <chr>       <dbl>
##  1 electricity   197. 2023-01-01             NA             NA Actu…           1
##  2 electricity   187. 2023-02-01             NA             NA Actu…           1
##  3 electricity   204. 2023-03-01             NA             NA Actu…           1
##  4 electricity   192. 2023-04-01             NA             NA Actu…           1
##  5 electricity   202. 2023-05-01             NA             NA Actu…           1
##  6 electricity   205. 2023-06-01             NA             NA Actu…           1
##  7 electricity   204  2023-07-01             NA             NA Actu…           1
##  8 electricity   220. 2023-08-01             NA             NA Actu…           1
##  9 electricity   206. 2023-09-01             NA             NA Actu…           1
## 10 electricity   204. 2023-10-01             NA             NA Actu…           1
## # ℹ 182 more rows
## # ℹ 4 more variables: forecast_block <dbl>, last_actual <dbl>,
## #   mean_forecast <dbl>, forecast_numbers <dbl>
View(final_df_remasterd)
#Fixing the Values for those Forecasted Growth rows where the values are in percentage format
#And then creating the index_of_industrial_productions data frame

final_df_remasterd <- final_df_remasterd %>%
  group_by(Sector, forecast_block) %>%
  mutate(
    Growth = {
      updated_Growth <- numeric(n())
      for(k in seq_len(n())) {
        if(Type[k] == "Actual") {
          updated_Growth[k] <- Growth[k]
        } else {
          if(k == 1) {
            updated_Growth[k] <- last_actual[k] * (1 + mean_forecast[k]/100)
          } else {
            updated_Growth[k] <- updated_Growth[k-1] * (1 + mean_forecast[k]/100)
          }
        }
      }
      updated_Growth
    }
  ) %>%
  ungroup()

IIP <- final_df_remasterd%>%
  dplyr::select(`Sector`, `Growth`, `Date`, `Type`)

IIP <- IIP%>%
  arrange(Sector, Date)

index_of_industrial_productions <- as.data.frame(IIP, stringsAsFactors = FALSE)
write.csv(index_of_industrial_productions, "E://Aadikartikey//index_of_industrial_productions.csv", row.names = FALSE)
index_of_industrial_productions
##            Sector   Growth       Date     Type
## 1     electricity 197.1000 2023-01-01   Actual
## 2     electricity 187.2000 2023-02-01   Actual
## 3     electricity 204.2000 2023-03-01   Actual
## 4     electricity 192.3000 2023-04-01   Actual
## 5     electricity 201.6000 2023-05-01   Actual
## 6     electricity 205.2000 2023-06-01   Actual
## 7     electricity 204.0000 2023-07-01   Actual
## 8     electricity 220.5000 2023-08-01   Actual
## 9     electricity 205.9000 2023-09-01   Actual
## 10    electricity 203.8000 2023-10-01   Actual
## 11    electricity 176.3000 2023-11-01   Actual
## 12    electricity 181.6000 2023-12-01   Actual
## 13    electricity 201.9000 2024-01-01   Actual
## 14    electricity 194.0000 2024-02-01   Actual
## 15    electricity 219.5000 2024-03-01   Actual
## 16    electricity 212.0000 2024-04-01   Actual
## 17    electricity 229.3000 2024-05-01   Actual
## 18    electricity 222.8000 2024-06-01   Actual
## 19    electricity 220.2000 2024-07-01   Actual
## 20    electricity 212.3000 2024-08-01   Actual
## 21    electricity 206.9000 2024-09-01   Actual
## 22    electricity 207.8000 2024-10-01   Actual
## 23    electricity 184.1000 2024-11-01   Actual
## 24    electricity 192.8000 2024-12-01   Actual
## 25    electricity 195.4285 2025-01-01 Forecast
## 26    electricity 199.1182 2025-02-01 Forecast
## 27    electricity 202.9670 2025-03-01 Forecast
## 28    electricity 130.6000 2025-04-01   Actual
## 29    electricity 133.2248 2025-05-01 Forecast
## 30    electricity 135.7635 2025-06-01 Forecast
## 31    electricity 138.1028 2025-07-01 Forecast
## 32    electricity 140.2833 2025-08-01 Forecast
## 33    electricity 142.4077 2025-09-01 Forecast
## 34    electricity 144.5625 2025-10-01 Forecast
## 35    electricity 146.8049 2025-11-01 Forecast
## 36    electricity 149.1648 2025-12-01 Forecast
## 37    electricity 151.6432 2026-01-01 Forecast
## 38    electricity 154.2161 2026-02-01 Forecast
## 39    electricity 156.8496 2026-03-01 Forecast
## 40    electricity 159.5145 2026-04-01 Forecast
## 41    electricity 162.1935 2026-05-01 Forecast
## 42    electricity 164.8836 2026-06-01 Forecast
## 43    electricity 167.5924 2026-07-01 Forecast
## 44    electricity 170.3333 2026-08-01 Forecast
## 45    electricity 173.1200 2026-09-01 Forecast
## 46    electricity 175.9624 2026-10-01 Forecast
## 47    electricity 178.8651 2026-11-01 Forecast
## 48    electricity 181.8277 2026-12-01 Forecast
## 49        general 153.6000 2023-01-01   Actual
## 50        general 147.1000 2023-02-01   Actual
## 51        general 160.0000 2023-03-01   Actual
## 52        general 140.7000 2023-04-01   Actual
## 53        general 145.6000 2023-05-01   Actual
## 54        general 143.9000 2023-06-01   Actual
## 55        general 142.7000 2023-07-01   Actual
## 56        general 145.8000 2023-08-01   Actual
## 57        general 142.3000 2023-09-01   Actual
## 58        general 144.9000 2023-10-01   Actual
## 59        general 141.1000 2023-11-01   Actual
## 60        general 152.3000 2023-12-01   Actual
## 61        general 161.6000 2024-01-01   Actual
## 62        general 151.1000 2024-02-01   Actual
## 63        general 166.3000 2024-03-01   Actual
## 64        general 148.0000 2024-04-01   Actual
## 65        general 154.7000 2024-05-01   Actual
## 66        general 151.0000 2024-06-01   Actual
## 67        general 149.8000 2024-07-01   Actual
## 68        general 145.8000 2024-08-01   Actual
## 69        general 146.9000 2024-09-01   Actual
## 70        general 150.3000 2024-10-01   Actual
## 71        general 148.1000 2024-11-01   Actual
## 72        general 158.0000 2024-12-01   Actual
## 73        general 159.6738 2025-01-01 Forecast
## 74        general 161.7719 2025-02-01 Forecast
## 75        general 163.9052 2025-03-01 Forecast
## 76        general 149.5000 2025-04-01   Actual
## 77        general 152.0170 2025-05-01 Forecast
## 78        general 154.6066 2025-06-01 Forecast
## 79        general 157.0808 2025-07-01 Forecast
## 80        general 159.4123 2025-08-01 Forecast
## 81        general 161.6433 2025-09-01 Forecast
## 82        general 163.8243 2025-10-01 Forecast
## 83        general 166.0108 2025-11-01 Forecast
## 84        general 168.2562 2025-12-01 Forecast
## 85        general 170.5930 2026-01-01 Forecast
## 86        general 173.0255 2026-02-01 Forecast
## 87        general 175.5372 2026-03-01 Forecast
## 88        general 178.1037 2026-04-01 Forecast
## 89        general 180.7025 2026-05-01 Forecast
## 90        general 183.3187 2026-06-01 Forecast
## 91        general 185.9475 2026-07-01 Forecast
## 92        general 188.5932 2026-08-01 Forecast
## 93        general 191.2650 2026-09-01 Forecast
## 94        general 193.9732 2026-10-01 Forecast
## 95        general 196.7260 2026-11-01 Forecast
## 96        general 199.5274 2026-12-01 Forecast
## 97  manufacturing 150.8000 2023-01-01   Actual
## 98  manufacturing 144.4000 2023-02-01   Actual
## 99  manufacturing 156.2000 2023-03-01   Actual
## 100 manufacturing 130.6000 2023-04-01   Actual
## 101 manufacturing 143.1000 2023-05-01   Actual
## 102 manufacturing 141.6000 2023-06-01   Actual
## 103 manufacturing 142.1000 2023-07-01   Actual
## 104 manufacturing 144.4000 2023-08-01   Actual
## 105 manufacturing 141.5000 2023-09-01   Actual
## 106 manufacturing 142.1000 2023-10-01   Actual
## 107 manufacturing 139.3000 2023-11-01   Actual
## 108 manufacturing 151.6000 2023-12-01   Actual
## 109 manufacturing 159.5000 2024-01-01   Actual
## 110 manufacturing 148.4000 2024-02-01   Actual
## 111 manufacturing 162.4000 2024-03-01   Actual
## 112 manufacturing 144.6000 2024-04-01   Actual
## 113 manufacturing 150.4000 2024-05-01   Actual
## 114 manufacturing 146.6000 2024-06-01   Actual
## 115 manufacturing 148.8000 2024-07-01   Actual
## 116 manufacturing 146.1000 2024-08-01   Actual
## 117 manufacturing 147.2000 2024-09-01   Actual
## 118 manufacturing 148.4000 2024-10-01   Actual
## 119 manufacturing 147.0000 2024-11-01   Actual
## 120 manufacturing 157.2000 2024-12-01   Actual
## 121 manufacturing 158.9819 2025-01-01 Forecast
## 122 manufacturing 161.2692 2025-02-01 Forecast
## 123 manufacturing 163.6305 2025-03-01 Forecast
## 124 manufacturing 214.4000 2025-04-01   Actual
## 125 manufacturing 218.3384 2025-05-01 Forecast
## 126 manufacturing 222.3691 2025-06-01 Forecast
## 127 manufacturing 226.2094 2025-07-01 Forecast
## 128 manufacturing 229.8232 2025-08-01 Forecast
## 129 manufacturing 233.2836 2025-09-01 Forecast
## 130 manufacturing 236.6770 2025-10-01 Forecast
## 131 manufacturing 240.0931 2025-11-01 Forecast
## 132 manufacturing 243.6142 2025-12-01 Forecast
## 133 manufacturing 247.2882 2026-01-01 Forecast
## 134 manufacturing 251.1178 2026-02-01 Forecast
## 135 manufacturing 255.0745 2026-03-01 Forecast
## 136 manufacturing 259.1185 2026-04-01 Forecast
## 137 manufacturing 263.2143 2026-05-01 Forecast
## 138 manufacturing 267.3397 2026-06-01 Forecast
## 139 manufacturing 271.4889 2026-07-01 Forecast
## 140 manufacturing 275.6699 2026-08-01 Forecast
## 141 manufacturing 279.8983 2026-09-01 Forecast
## 142 manufacturing 284.1911 2026-10-01 Forecast
## 143 manufacturing 288.5608 2026-11-01 Forecast
## 144 manufacturing 293.0136 2026-12-01 Forecast
## 145        mining 144.3000 2023-01-01   Actual
## 146        mining 139.7000 2023-02-01   Actual
## 147        mining 156.2000 2023-03-01   Actual
## 148        mining 122.6000 2023-04-01   Actual
## 149        mining 128.1000 2023-05-01   Actual
## 150        mining 122.3000 2023-06-01   Actual
## 151        mining 111.9000 2023-07-01   Actual
## 152        mining 111.9000 2023-08-01   Actual
## 153        mining 111.5000 2023-09-01   Actual
## 154        mining 127.4000 2023-10-01   Actual
## 155        mining 131.3000 2023-11-01   Actual
## 156        mining 139.5000 2023-12-01   Actual
## 157        mining 150.7000 2024-01-01   Actual
## 158        mining 141.9000 2024-02-01   Actual
## 159        mining 158.1000 2024-03-01   Actual
## 160        mining 130.9000 2024-04-01   Actual
## 161        mining 136.5000 2024-05-01   Actual
## 162        mining 134.9000 2024-06-01   Actual
## 163        mining 116.1000 2024-07-01   Actual
## 164        mining 107.1000 2024-08-01   Actual
## 165        mining 111.7000 2024-09-01   Actual
## 166        mining 128.5000 2024-10-01   Actual
## 167        mining 133.8000 2024-11-01   Actual
## 168        mining 143.2000 2024-12-01   Actual
## 169        mining 144.0724 2025-01-01 Forecast
## 170        mining 144.8960 2025-02-01 Forecast
## 171        mining 145.7029 2025-03-01 Forecast
## 172        mining 152.0000 2025-04-01   Actual
## 173        mining 153.6663 2025-05-01 Forecast
## 174        mining 155.5246 2025-06-01 Forecast
## 175        mining 157.3728 2025-07-01 Forecast
## 176        mining 159.1291 2025-08-01 Forecast
## 177        mining 160.7676 2025-09-01 Forecast
## 178        mining 162.2924 2025-10-01 Forecast
## 179        mining 163.7431 2025-11-01 Forecast
## 180        mining 165.1802 2025-12-01 Forecast
## 181        mining 166.6563 2026-01-01 Forecast
## 182        mining 168.1990 2026-02-01 Forecast
## 183        mining 169.8117 2026-03-01 Forecast
## 184        mining 171.4808 2026-04-01 Forecast
## 185        mining 173.1849 2026-05-01 Forecast
## 186        mining 174.9030 2026-06-01 Forecast
## 187        mining 176.6211 2026-07-01 Forecast
## 188        mining 178.3342 2026-08-01 Forecast
## 189        mining 180.0454 2026-09-01 Forecast
## 190        mining 181.7622 2026-10-01 Forecast
## 191        mining 183.4936 2026-11-01 Forecast
## 192        mining 185.2461 2026-12-01 Forecast
#First Doing a Loess Smoothing to apply it on the each Sectoral Data present in the index_of_industrial_productions
#Then Doing a Clean Visualization for the Story telling of the Overall Result findings up til now

electricity_data <- index_of_industrial_productions%>% filter(Sector == "electricity")
general_data <- index_of_industrial_productions%>% filter(Sector == "general")
minig_data <- index_of_industrial_productions%>% filter(Sector == "mining")
manufacturing_data <- index_of_industrial_productions%>% filter(Sector == "manufacturing")



Loess_Smooth <- function(x,y){
  model <- loess(y~x, span= .65)
  predict(model)
}



index_of_industrial_productions <- index_of_industrial_productions%>%
  group_by(Sector)%>%
  arrange(Date)%>%
  mutate(Growth_Smooth = Loess_Smooth(as.numeric(Date), Growth))%>%
  ungroup()

index_of_industrial_productions <- index_of_industrial_productions%>%
  arrange(Sector, Date)

plot_ly(
  data = index_of_industrial_productions,
  x = ~Date,
  y = ~Growth_Smooth,
  color = ~Sector,
  linetype = ~Type,
  type = 'scatter',
  mode = 'lines+markers',
  line = list(width = 4),
  
  marker = list(size = 6),
  text = ~paste("Sector:",Sector,"<br>Date:", Date, "<br>Growth:", round(Growth, 2),"<br>Growth_Smooth:",round(Growth_Smooth,2), "<br>Type:", Type),
  hoverinfo = "text"
) %>%
  layout(
    title = list(
      text = "<b>INDEX OF INDUSTRIAL PRODUCTION<br>ACROSS THE SECTORS IN INDIA</b><br><sup>Sources: Government of India Ministry of Statistics and Programme Implementation<br>National Statistics Office | Base Year:2011-12 = 100</sup>",
      font = list(size = 20), xanchor = "left", x = 0.01, y= 0.969
    ),margin = list(t= 120, b= 80),
    annotations = list(
      list(
        x = 0,
        y= -0.19,
        xref = "paper",
        yref = "paper",
        showarrow = FALSE,
        text = "Made by: Aditya Kartikey",
        font = list(size =13, color = "black"),
        xanchor = "left",
        yanchor = "bottom"
      )
    ),
    xaxis = list(title = "", tickangle = -60, tickfont = list(size = 13), showgrid = FALSE),
    yaxis = list(title = "SECTORS IN THE IIP AND IT'S GROWTH IN INDIA", tickfont = list(size = 13), showgrid = FALSE)
  )