setwd("C:/Users/obunadic8159/OneDrive - ARCADIS/Desktop/Data_Analysis_11DCE_14DOX/Recent_New_Data/WW")
#Load necessary libraries
#install.packages("car")
#install.packages("corrplot")
#install.packages("MASS")
#install.packages("lmtest")
library(MASS)
library(dplyr)
library(ggplot2)
library(caret)
library(car)
library(corrplot)
library(e1071)
library(forecast)
library(lubridate)
library(lmtest)Linear Regression and Time Series Model_WW for 1,4 DiOxane
Importing the Data from our directory
# Load the dataset
data <- read.csv("C:/Users/obunadic8159/OneDrive - ARCADIS/Desktop/Data_Analysis_11DCE_14DOX/Recent_New_Data/WW/14DOX.csv")Visualizing the Data Type and Structure
##################Checking the Data Type and Structure ###############
head(data) SiteName Date Quarter X14DOX
1 WW01 7/16/2015 Q3 0.000592
2 WW01 8/24/2015 Q3 0.000592
3 WW01 8/24/2015 Q3 0.000592
4 WW01 9/28/2015 Q3 0.000592
5 WW01 11/3/2015 Q4 0.000592
6 WW01 12/8/2015 Q4 0.000592
str(data)'data.frame': 2680 obs. of 4 variables:
$ SiteName: chr "WW01" "WW01" "WW01" "WW01" ...
$ Date : chr "7/16/2015" "8/24/2015" "8/24/2015" "9/28/2015" ...
$ Quarter : chr "Q3" "Q3" "Q3" "Q3" ...
$ X14DOX : num 0.000592 0.000592 0.000592 0.000592 0.000592 0.000592 0.000592 0.000592 0.00017 0.000189 ...
Convert Date to Date format and factorizing Site Name
# Convert Date to Date format and factorize SiteName
data$Date <- as.Date(data$Date, format="%m/%d/%Y")
data$SiteName <- as.factor(data$SiteName)Checking for Missing data using For-Loop
#### Handling Missing Data
vnames <- colnames(data)
n <- nrow(data)
out <- NULL
for (j in 1:ncol(data)){
vname <- colnames(data)[j]
x <- as.vector(data[,j])
n1 <- sum(is.na(x), na.rm=TRUE) # NA
n2 <- sum(x=="NA", na.rm=TRUE) # "NA"
n3 <- sum(x==" ", na.rm=TRUE) # missing
nmiss <- n1 + n2 + n3
nmiss <- sum(is.na(x))
ncomplete <- n-nmiss
out <- rbind(out, c(col.num=j, v.name=vname, mode=mode(x),
n.level=length(unique(x)),
ncom=ncomplete, nmiss= nmiss, miss.prop=nmiss/n))
}
out <- as.data.frame(out)
row.names(out) <- NULL
out col.num v.name mode n.level ncom nmiss miss.prop
1 1 SiteName character 131 2680 0 0
2 2 Date numeric 531 2680 0 0
3 3 Quarter character 4 2680 0 0
4 4 X14DOX numeric 964 2680 0 0
for (j in 1:NCOL(data)){
print(head(colnames(data)[j]))
print(head(table(data[,j], useNA="ifany")))
}[1] "SiteName"
WW01 WW02 WW03 WW04 WW06 WW07
28 23 52 50 33 20
[1] "Date"
2015-07-16 2015-07-17 2015-08-18 2015-08-20 2015-08-21 2015-08-22
6 3 1 2 12 8
[1] "Quarter"
Q1 Q2 Q3 Q4
669 614 726 671
[1] "X14DOX"
6.5e-05 6.6e-05 0.00012 0.00013 0.00015 0.000163
29 1 1 1 1 1
Checking for Outliers using Boxplot
# Check for outliers using boxplots for 14DOX
ggplot(data, aes(x = SiteName, y = X14DOX)) + geom_boxplot() + ggtitle("Boxplot for 14DOX by SiteName")Calculating and Filtering Outliers in 1,4-DiOxane
# Calculate IQR and detect outliers for 14DOX
Q1_14DOX <- quantile(data$X14DOX, 0.25)
Q3_14DOX <- quantile(data$X14DOX, 0.75)
IQR_14DOX <- Q3_14DOX - Q1_14DOX
outliers_14DOX <- data %>% filter(X14DOX < (Q1_14DOX - 1.5 * IQR_14DOX) | X14DOX > (Q3_14DOX + 1.5 * IQR_14DOX))There are 328 observations of 1,4DiOxane (14DOX) with outliers. Therefore, it is important to remove them before building the linear regression model and time series forecast.
# Outliers in 14DOX
# Print outliers
print("Outliers in X14DOX:")[1] "Outliers in X14DOX:"
#print(outliers_14DOX)
print(head(outliers_14DOX)) SiteName Date Quarter X14DOX
1 WW03 2016-05-06 Q2 0.0565
2 WW03 2016-05-11 Q2 0.0070
3 WW03 2016-05-14 Q2 0.0160
4 WW03 2016-05-14 Q2 0.0374
5 WW03 2016-05-21 Q2 0.0180
6 WW03 2016-06-01 Q2 0.0110
Checking for skewness in 1,4-DiOxane
[1] "Skewness for X14DOX: 4.32936364130529"
Interpretation of Skewness Values:
Skewness for 14DOX (4.32):This is also a high positive skewness value. The distribution of 14DOX is positively skewed, with most data points clustered towards the lower end and a long tail to the right. This indicates the presence of some high values. The high skewness values suggest that the data for 14DOX are not normally distributed and are influenced by a few very large values. When working with these variables in analyses, it might be necessary to consider transformations (such as log or square root transformations) to reduce skewness and achieve a more normal distribution, which can be beneficial for certain statistical analyses and models.~
# Visualize distributions
par(mfrow=c(1, 2))
hist(data$X14DOX, main="14DOX", xlab="14DOX", col = 'blue', breaks=20)Transforming data due to skewness by using log transformation.
# Transform data if skewness is high (optional, example using log transformation)
if(abs(skewness_14DOX) > 1){data$X14DOX <- log1p(data$X14DOX)}Removing the Outliers for 14DOX.
# Remove outliers (optional, depending on analysis)
data <- data %>% filter(X14DOX >= (Q1_14DOX - 1.5 * IQR_14DOX) & X14DOX <= (Q3_14DOX + 1.5 * IQR_14DOX))
##################Checking the Data Type and Structure ###############
str(data)'data.frame': 2352 obs. of 4 variables:
$ SiteName: Factor w/ 131 levels "WW01","WW02",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Date : Date, format: "2015-07-16" "2015-08-24" ...
$ Quarter : chr "Q3" "Q3" "Q3" "Q3" ...
$ X14DOX : num 0.000592 0.000592 0.000592 0.000592 0.000592 ...
head(data) SiteName Date Quarter X14DOX
1 WW01 2015-07-16 Q3 0.0005918248
2 WW01 2015-08-24 Q3 0.0005918248
3 WW01 2015-08-24 Q3 0.0005918248
4 WW01 2015-09-28 Q3 0.0005918248
5 WW01 2015-11-03 Q4 0.0005918248
6 WW01 2015-12-08 Q4 0.0005918248
Convert Date to numeric for VIF calculation
data$Date_numeric <- as.numeric(data$Date)Check for multicollinearity using VIF
# Check for multicollinearity using VIF
# Check for multicollinearity using VIF
vif_data_14DOX <- lm(X14DOX ~ Date_numeric + SiteName, data = data)
vif(vif_data_14DOX) GVIF Df GVIF^(1/(2*Df))
Date_numeric 1.112777 1 1.054883
SiteName 1.112777 130 1.000411
In this case, both Date_numeric and SiteName have GVIF values close to 1, indicating that there is little to no multicollinearity between these predictors in the model. This suggests that the model is not adversely affected by multicollinearity, and the estimates of the regression coefficients should be reliable.
Check correlation matrix for predictor variable (14DOX) and Date
1: Perfect positive correlation (as one variable increases, the other variable also increases).
-1: Perfect negative correlation (as one variable increases, the other variable decreases).
0: No linear correlation (the variables do not have a linear relationship).
# Check correlation matrix for predictor and dependent variables
cor_matrix <- cor(data %>% select(X14DOX, Date_numeric))
print(cor_matrix) X14DOX Date_numeric
X14DOX 1.0000000 0.1247568
Date_numeric 0.1247568 1.0000000
Implications of Correlation Matrix on the Model:
The correlation coefficient between X14DOX and Date_numeric is 0.1247808, which suggests a weak positive linear relationship between these two variables.
# Visualize the correlation matrix
corrplot(cor_matrix, method = "circle")Removing the 5th column (Date Numeric) for Linear Regression Model
# Convert Date back to as.Date data type and removing the 5th column
data$Date <- as.Date(data$Date, format="%m/%d/%Y")
head(data) SiteName Date Quarter X14DOX Date_numeric
1 WW01 2015-07-16 Q3 0.0005918248 16632
2 WW01 2015-08-24 Q3 0.0005918248 16671
3 WW01 2015-08-24 Q3 0.0005918248 16671
4 WW01 2015-09-28 Q3 0.0005918248 16706
5 WW01 2015-11-03 Q4 0.0005918248 16742
6 WW01 2015-12-08 Q4 0.0005918248 16777
colnames(data)[1] "SiteName" "Date" "Quarter" "X14DOX" "Date_numeric"
data= data[, -(5)]
head(data) SiteName Date Quarter X14DOX
1 WW01 2015-07-16 Q3 0.0005918248
2 WW01 2015-08-24 Q3 0.0005918248
3 WW01 2015-08-24 Q3 0.0005918248
4 WW01 2015-09-28 Q3 0.0005918248
5 WW01 2015-11-03 Q4 0.0005918248
6 WW01 2015-12-08 Q4 0.0005918248
Splitting the data into training and testing sets for the Linear Regression Modelling of 14DOX
# Split the data into training and testing sets for X14DOX
set.seed(123)
train_Index <- createDataPartition(data$X14DOX, p = .8, list = FALSE, times = 1)
train_Data <- data[train_Index,]
test_Data <- data[-train_Index,]This line uses the createDataPartition function from the caret package to create an index for splitting the data.X11DCE: The target variable, which is 1,1 Dicholorethene, is used to ensure that the split maintains the same distribution of this variable in both the training and test sets.p = .8: This specifies that 80% of the data should be used for training. The remaining 20% will be used for testing.list = FALSE: By setting this to FALSE, the function returns the indices as a vector instead of a list.times = 1: This specifies that only one partition should be created.
Using set.seed(123) ensures that every time you run this code, the training and test splits will be the same, allowing for consistent and reproducible results.
Factoring SiteName in testData to Match with the trainData (Categorical Variable)
# Ensure factor levels in test set match training set
test_Data$SiteName <- factor(test_Data$SiteName , levels = levels(train_Data$SiteName))The above code ensures that the SiteName factor levels in the testData dataset match those in the trainData dataset. This step is crucial when you want to make predictions on the test data using a model trained on the training data, especially when dealing with categorical variables.
Linear Regression Model and StepWise Backward Elimination Model Selection
# Model for X14DOX using stepwise backward elimination
full_model_14DOX <- lm(X14DOX ~ Date + SiteName, data = train_Data)
step_model_14DOX <- step(full_model_14DOX, direction = "backward", trace = 0)Purpose: The goal of step-wise model selection is to improve the model by removing predictors that do not contribute significantly to the prediction of the response variable. This can lead to a more parsimonious model that is easier to interpret and may perform better on new data.
Backward Elimination: In this specific procedure, predictors are removed one by one based on their statistical significance, starting with the least significant predictor. The process continues until only predictors that contribute meaningfully to the model remain.
Summary and Interpretation of the Linear Regression Model
# Summary of the final model
summary(step_model_14DOX)
Call:
lm(formula = X14DOX ~ Date + SiteName, data = train_Data)
Residuals:
Min 1Q Median 3Q Max
-0.0024287 -0.0003652 -0.0000239 0.0002820 0.0032512
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.555e-03 5.005e-04 -5.104 3.68e-07 ***
Date 1.687e-07 2.691e-08 6.270 4.54e-10 ***
SiteNameWW02 1.008e-04 2.483e-04 0.406 0.684724
SiteNameWW03 3.203e-04 2.529e-04 1.267 0.205491
SiteNameWW04 3.237e-04 2.456e-04 1.318 0.187790
SiteNameWW06 1.413e-03 2.389e-04 5.912 4.06e-09 ***
SiteNameWW07 7.090e-04 2.564e-04 2.765 0.005749 **
SiteNameWW08 3.452e-04 7.836e-04 0.441 0.659561
SiteNameWW10 3.340e-04 3.828e-04 0.873 0.382946
SiteNameWW100 9.397e-05 2.564e-04 0.366 0.714052
SiteNameWW101 1.787e-03 2.314e-04 7.719 1.95e-14 ***
SiteNameWW102 4.201e-04 2.388e-04 1.759 0.078781 .
SiteNameWW103 9.471e-04 2.960e-04 3.199 0.001402 **
SiteNameWW104 1.410e-04 2.417e-04 0.583 0.559713
SiteNameWW105 1.771e-04 2.388e-04 0.742 0.458375
SiteNameWW106 8.257e-04 2.293e-04 3.601 0.000326 ***
SiteNameWW107 7.049e-05 2.564e-04 0.275 0.783423
SiteNameWW11 -6.316e-06 2.792e-04 -0.023 0.981955
SiteNameWW116 7.699e-04 2.293e-04 3.357 0.000804 ***
SiteNameWW117 1.319e-04 2.238e-04 0.589 0.555699
SiteNameWW12 7.982e-04 2.961e-04 2.696 0.007085 **
SiteNameWW13 6.478e-04 2.874e-04 2.254 0.024311 *
SiteNameWW14 2.177e-04 2.871e-04 0.758 0.448402
SiteNameWW156 4.261e-05 2.315e-04 0.184 0.853984
SiteNameWW156-2 -1.297e-04 3.070e-04 -0.422 0.672766
SiteNameWW16 1.153e-03 2.362e-04 4.883 1.14e-06 ***
SiteNameWW17 3.623e-04 2.362e-04 1.534 0.125204
SiteNameWW177 4.477e-04 7.835e-04 0.571 0.567796
SiteNameWW178 2.341e-04 2.417e-04 0.968 0.332929
SiteNameWW18 -5.462e-05 2.483e-04 -0.220 0.825932
SiteNameWW180 3.634e-04 2.418e-04 1.503 0.133053
SiteNameWW181 2.728e-04 2.389e-04 1.142 0.253657
SiteNameWW183 2.999e-04 2.564e-04 1.170 0.242335
SiteNameWW184 4.690e-04 7.835e-04 0.599 0.549512
SiteNameWW186 9.410e-05 5.669e-04 0.166 0.868178
SiteNameWW188 3.710e-04 2.449e-04 1.515 0.129919
SiteNameWW189 2.330e-04 2.484e-04 0.938 0.348237
SiteNameWW19 9.288e-04 2.362e-04 3.933 8.72e-05 ***
SiteNameWW193 7.876e-04 7.835e-04 1.005 0.314958
SiteNameWW195 7.874e-04 7.835e-04 1.005 0.315062
SiteNameWW196 7.874e-04 7.835e-04 1.005 0.315062
SiteNameWW197 5.056e-04 2.871e-04 1.761 0.078401 .
SiteNameWW198 9.565e-04 7.835e-04 1.221 0.222323
SiteNameWW201 8.929e-04 2.564e-04 3.482 0.000509 ***
SiteNameWW206 9.373e-04 7.835e-04 1.196 0.231729
SiteNameWW21 -1.061e-04 2.483e-04 -0.427 0.669165
SiteNameWW210 1.219e-03 3.822e-04 3.190 0.001448 **
SiteNameWW210/211 2.035e-03 2.870e-04 7.092 1.91e-12 ***
SiteNameWW211 1.858e-03 4.734e-04 3.925 9.00e-05 ***
SiteNameWW214 9.006e-04 7.835e-04 1.149 0.250543
SiteNameWW215 4.102e-04 5.669e-04 0.724 0.469385
SiteNameWW217 6.516e-04 3.069e-04 2.123 0.033880 *
SiteNameWW22 8.526e-05 2.418e-04 0.353 0.724396
SiteNameWW221 2.747e-03 3.558e-04 7.720 1.94e-14 ***
SiteNameWW222 8.184e-04 4.187e-04 1.955 0.050772 .
SiteNameWW223 1.882e-03 2.417e-04 7.785 1.18e-14 ***
SiteNameWW23 -1.163e-04 2.522e-04 -0.461 0.644765
SiteNameWW230 9.006e-04 7.835e-04 1.149 0.250543
SiteNameWW24 6.421e-05 2.388e-04 0.269 0.788080
SiteNameWW25 6.147e-04 2.873e-04 2.140 0.032522 *
SiteNameWW26 -1.488e-04 2.483e-04 -0.599 0.549086
SiteNameWW28 1.651e-05 2.564e-04 0.064 0.948675
SiteNameWW29 2.086e-03 2.522e-04 8.270 2.61e-16 ***
SiteNameWW30 2.098e-03 2.791e-04 7.515 9.02e-14 ***
SiteNameWW31 1.600e-03 2.961e-04 5.403 7.46e-08 ***
SiteNameWW32 2.033e-03 2.388e-04 8.511 < 2e-16 ***
SiteNameWW34 2.035e-03 2.724e-04 7.473 1.23e-13 ***
SiteNameWW35 2.161e-04 4.733e-04 0.457 0.647972
SiteNameWW36 1.695e-03 2.274e-04 7.455 1.40e-13 ***
SiteNameWW36x 3.303e-04 7.834e-04 0.422 0.673353
SiteNameWW36X 8.607e-04 2.611e-04 3.297 0.000998 ***
SiteNameWW37 1.646e-03 2.315e-04 7.112 1.66e-12 ***
SiteNameWW38 1.531e-03 2.664e-04 5.747 1.07e-08 ***
SiteNameWW39-2 3.686e-04 7.836e-04 0.470 0.638072
SiteNameWW41 3.685e-04 7.835e-04 0.470 0.638225
SiteNameWW42 1.334e-03 2.362e-04 5.647 1.90e-08 ***
SiteNameWW43 1.170e-03 2.484e-04 4.710 2.67e-06 ***
SiteNameWW44 1.648e-03 2.449e-04 6.729 2.30e-11 ***
SiteNameWW45 1.782e-03 2.238e-04 7.963 3.00e-15 ***
SiteNameWW46 1.686e-03 2.179e-04 7.735 1.73e-14 ***
SiteNameWW47 9.104e-04 2.564e-04 3.551 0.000394 ***
SiteNameWW48 2.253e-04 2.964e-04 0.760 0.447248
SiteNameWW49 8.650e-04 2.337e-04 3.701 0.000221 ***
SiteNameWW50 1.877e-03 2.293e-04 8.187 5.11e-16 ***
SiteNameWW51 1.498e-03 2.337e-04 6.409 1.88e-10 ***
SiteNameWW56 1.827e-04 3.823e-04 0.478 0.632808
SiteNameWW57 3.437e-04 7.836e-04 0.439 0.661012
SiteNameWW58 3.437e-04 7.836e-04 0.439 0.661012
SiteNameWW59 1.230e-04 2.664e-04 0.462 0.644382
SiteNameWW60 3.487e-04 7.836e-04 0.445 0.656397
SiteNameWW61 3.485e-04 7.835e-04 0.445 0.656552
SiteNameWW62 -6.420e-05 2.484e-04 -0.259 0.796039
SiteNameWW63 -9.850e-05 2.611e-04 -0.377 0.706007
SiteNameWW64 -2.468e-05 2.417e-04 -0.102 0.918701
SiteNameWW65 4.005e-04 7.835e-04 0.511 0.609362
SiteNameWW66 -6.212e-05 2.449e-04 -0.254 0.799786
SiteNameWW67 8.897e-04 2.417e-04 3.681 0.000240 ***
SiteNameWW68 -1.517e-05 2.664e-04 -0.057 0.954582
SiteNameWW69 1.465e-05 2.315e-04 0.063 0.949539
SiteNameWW70 5.190e-04 2.337e-04 2.221 0.026495 *
SiteNameWW71 1.942e-04 2.963e-04 0.655 0.512277
SiteNameWW74 4.191e-04 7.835e-04 0.535 0.592815
SiteNameWW76 1.372e-04 2.417e-04 0.568 0.570357
SiteNameWW77 2.418e-04 2.450e-04 0.987 0.323823
SiteNameWW77-2 3.551e-05 3.079e-04 0.115 0.908185
SiteNameWW78 9.699e-04 2.362e-04 4.106 4.20e-05 ***
SiteNameWW78-2 8.221e-04 2.337e-04 3.518 0.000446 ***
SiteNameWW79 3.888e-04 2.362e-04 1.646 0.099903 .
SiteNameWW80 9.607e-04 2.419e-04 3.972 7.43e-05 ***
SiteNameWW81 1.787e-03 2.484e-04 7.193 9.33e-13 ***
SiteNameWW82-1 4.198e-04 2.274e-04 1.846 0.065015 .
SiteNameWW82-2 5.298e-04 2.389e-04 2.218 0.026703 *
SiteNameWW83 1.108e-03 2.192e-04 5.052 4.83e-07 ***
SiteNameWW84 9.246e-04 2.338e-04 3.955 7.95e-05 ***
SiteNameWW85 1.333e-03 2.274e-04 5.863 5.43e-09 ***
SiteNameWW85-2 6.372e-04 3.201e-04 1.990 0.046711 *
SiteNameWW86 7.934e-04 2.315e-04 3.428 0.000623 ***
SiteNameWW87 8.491e-04 2.388e-04 3.555 0.000387 ***
SiteNameWW88 3.681e-04 2.222e-04 1.657 0.097718 .
SiteNameWW88-2 5.921e-04 3.825e-04 1.548 0.121758
SiteNameWW89 1.116e-04 2.417e-04 0.462 0.644273
SiteNameWW90 1.793e-05 3.559e-04 0.050 0.959823
SiteNameWW91 -2.844e-05 3.558e-04 -0.080 0.936307
SiteNameWW92 2.678e-04 2.417e-04 1.108 0.268008
SiteNameWW93 3.618e-04 7.835e-04 0.462 0.644317
SiteNameWW96 4.838e-04 2.362e-04 2.048 0.040669 *
SiteNameWW97 3.225e-04 2.522e-04 1.279 0.201119
SiteNameWW98 1.326e-03 2.255e-04 5.881 4.88e-09 ***
SiteNameWW99 -1.513e-04 2.483e-04 -0.609 0.542340
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.0007644 on 1754 degrees of freedom
Multiple R-squared: 0.4498, Adjusted R-squared: 0.4097
F-statistic: 11.2 on 128 and 1754 DF, p-value: < 2.2e-16
Residuals: Min ( -0.0024248), 1Q(-0.0003647), Median(-0.0000237), 3Q(0.0002819) and Max(0.0032439) shows the distribution of the residuals (difference between observed and predicted values). The small values of the residuals indicate that the model’s prediction are close to the observed values.
Date: The coefficient for Date is significant at 5% level (p<0.05), suggesting that there is a relationship between Date and XIIDCE.
Significant SiteName Coefficients:
The site names that are statistically significant (p-value < 0.05) are:
- SiteNameWW06: ( p = 3.99e-09 )
- SiteNameWW07: ( p = 0.005697 )
- SiteNameWW101: ( p = 1.90e-14 )
- SiteNameWW103: ( p = 0.001388 )
- SiteNameWW106: ( p = 0.000322 )
- SiteNameWW116: ( p = 0.000796 )
- SiteNameWW12: ( p = 0.007070 )
- SiteNameWW13: ( p = 0.024236 )
- SiteNameWW16: ( p = 1.13e-06 )
- SiteNameWW19: ( p = 8.60e-05 )
- SiteNameWW201: ( p = 0.000502 )
- SiteNameWW210: ( p = 0.001434 )
- SiteNameWW210/211: ( p = 1.87e-12 )
- SiteNameWW211: ( p = 8.90e-05 )
- SiteNameWW217: ( p = 0.033692 )
- SiteNameWW221: ( p = 1.93e-14 )
- SiteNameWW223: ( p = 1.14e-14 )
- SiteNameWW25: ( p = 0.032317 )
- SiteNameWW29: ( p = 2.57e-16 )
- SiteNameWW30: ( p = 8.81e-14 )
- SiteNameWW31: ( p = 7.32e-08 )
- SiteNameWW32: ( p = < 2e-16 )
- SiteNameWW34: ( p = 1.21e-13 )
- SiteNameWW36: ( p = 1.40e-13 )
- SiteNameWW36X: ( p = 0.000990 )
- SiteNameWW37: ( p = 1.65e-12 )
- SiteNameWW38: ( p = 1.07e-08 )
- SiteNameWW42: ( p = 1.85e-08 )
- SiteNameWW43: ( p = 2.64e-06 )
- SiteNameWW44: ( p = 2.30e-11 )
- SiteNameWW45: ( p = 2.95e-15 )
- SiteNameWW46: ( p = 1.73e-14 )
- SiteNameWW47: ( p = 0.000393 )
- SiteNameWW49: ( p = 0.000219 )
- SiteNameWW50: ( p = 5.08e-16 )
- SiteNameWW51: ( p = 1.88e-10 )
- SiteNameWW78: ( p = 4.14e-05 )
- SiteNameWW78-2: ( p = 0.000441 )
- SiteNameWW80: ( p = 7.35e-05 )
- SiteNameWW81: ( p = 9.20e-13 )
- SiteNameWW82-2: ( p = 0.026553 )
- SiteNameWW83: ( p = 4.75e-07 )
- SiteNameWW84: ( p = 7.84e-05 )
- SiteNameWW85: ( p = 5.30e-09 )
- SiteNameWW85-2: ( p = 0.046457 )
- SiteNameWW86: ( p = 0.000616 )
- SiteNameWW87: ( p = 0.000382 )
- SiteNameWW96: ( p = 0.040507 )
- SiteNameWW98: ( p = 4.77e-09 )
These site names have a statistically significant relationship with the dependent variable (X14DOX). These significant coefficients indicate that the corresponding SiteName levels have a statistically significant effect on X14DOX.
Model Fit Statistics
Residual standard error: 0.0007629 on 1754 degrees of freedom
Multiple R-squared (0.4499): This indicates that approximately 45% of the variability in
X14DOXis explained by the model.Adjusted R-squared (0.04983): This adjusts the R-squared value for the number of predictors in the model, providing a more accurate measure of model fit.
Identifying High Leverage Points:
Leverage Values: These values indicate how much influence each data point has on the fitted values of the model. High leverage points are those that can potentially have a large impact on the model.
Data Points with High Leverage Points:
# Print high leverage points
#print(high_leverage_points)
print(head(high_leverage_points))146 147 148 149 150 151
112 113 114 115 116 117
Removing the Data with High Leverage Points for Improved Model:
# Remove high leverage points and refit the model if necessary
train_Data_cleaned <- train_Data[-high_leverage_points, ]Refitting the Model after removing high leverage points:
# Refit the model without high leverage points
full_model_14DOX_cleaned <- lm(X14DOX ~ Date + SiteName, data = train_Data_cleaned)
step_model_14DOX_cleaned <- step(full_model_14DOX_cleaned, direction = "backward", trace = 0)Summary and Interpretation of the Re-fitted Linear Regression Model
# Summary of the final model without high leverage points
summary(step_model_14DOX_cleaned)
Call:
lm(formula = X14DOX ~ Date + SiteName, data = train_Data_cleaned)
Residuals:
Min 1Q Median 3Q Max
-0.0024301 -0.0003784 -0.0000338 0.0002960 0.0032463
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.602e-03 5.063e-04 -5.138 3.09e-07 ***
Date 1.714e-07 2.724e-08 6.293 3.94e-10 ***
SiteNameWW02 1.008e-04 2.502e-04 0.403 0.687201
SiteNameWW03 3.221e-04 2.547e-04 1.265 0.206211
SiteNameWW04 3.256e-04 2.475e-04 1.316 0.188446
SiteNameWW06 1.413e-03 2.407e-04 5.871 5.19e-09 ***
SiteNameWW07 7.087e-04 2.583e-04 2.743 0.006143 **
SiteNameWW100 9.434e-05 2.583e-04 0.365 0.714999
SiteNameWW101 1.787e-03 2.332e-04 7.663 3.02e-14 ***
SiteNameWW102 4.204e-04 2.406e-04 1.747 0.080819 .
SiteNameWW103 9.470e-04 2.982e-04 3.175 0.001524 **
SiteNameWW104 1.408e-04 2.435e-04 0.578 0.563237
SiteNameWW105 1.773e-04 2.406e-04 0.737 0.461378
SiteNameWW106 8.257e-04 2.310e-04 3.574 0.000361 ***
SiteNameWW107 7.001e-05 2.583e-04 0.271 0.786419
SiteNameWW11 -5.587e-06 2.813e-04 -0.020 0.984157
SiteNameWW116 7.697e-04 2.310e-04 3.332 0.000882 ***
SiteNameWW117 1.315e-04 2.255e-04 0.583 0.559719
SiteNameWW12 7.987e-04 2.983e-04 2.678 0.007483 **
SiteNameWW13 6.494e-04 2.895e-04 2.243 0.025022 *
SiteNameWW14 2.185e-04 2.892e-04 0.756 0.449962
SiteNameWW156 4.199e-05 2.332e-04 0.180 0.857161
SiteNameWW156-2 -1.308e-04 3.093e-04 -0.423 0.672447
SiteNameWW16 1.153e-03 2.379e-04 4.846 1.38e-06 ***
SiteNameWW17 3.626e-04 2.379e-04 1.524 0.127710
SiteNameWW178 2.338e-04 2.435e-04 0.960 0.337160
SiteNameWW18 -5.457e-05 2.502e-04 -0.218 0.827378
SiteNameWW180 3.640e-04 2.436e-04 1.494 0.135320
SiteNameWW181 2.722e-04 2.407e-04 1.131 0.258334
SiteNameWW183 2.998e-04 2.583e-04 1.161 0.245929
SiteNameWW188 3.713e-04 2.467e-04 1.505 0.132534
SiteNameWW189 2.335e-04 2.502e-04 0.933 0.350950
SiteNameWW19 9.286e-04 2.379e-04 3.903 9.88e-05 ***
SiteNameWW197 5.065e-04 2.892e-04 1.751 0.080063 .
SiteNameWW201 8.925e-04 2.583e-04 3.455 0.000563 ***
SiteNameWW21 -1.061e-04 2.502e-04 -0.424 0.671446
SiteNameWW210/211 2.035e-03 2.891e-04 7.038 2.81e-12 ***
SiteNameWW217 6.508e-04 3.092e-04 2.105 0.035454 *
SiteNameWW22 8.574e-05 2.436e-04 0.352 0.724869
SiteNameWW223 1.882e-03 2.435e-04 7.727 1.86e-14 ***
SiteNameWW23 -1.162e-04 2.540e-04 -0.457 0.647490
SiteNameWW24 6.434e-05 2.406e-04 0.267 0.789186
SiteNameWW25 6.133e-04 2.894e-04 2.119 0.034257 *
SiteNameWW26 -1.488e-04 2.502e-04 -0.595 0.552069
SiteNameWW28 1.656e-05 2.583e-04 0.064 0.948893
SiteNameWW29 2.085e-03 2.541e-04 8.207 4.40e-16 ***
SiteNameWW30 2.098e-03 2.812e-04 7.459 1.37e-13 ***
SiteNameWW31 1.599e-03 2.983e-04 5.361 9.40e-08 ***
SiteNameWW32 2.033e-03 2.406e-04 8.450 < 2e-16 ***
SiteNameWW34 2.035e-03 2.744e-04 7.416 1.89e-13 ***
SiteNameWW36 1.695e-03 2.290e-04 7.399 2.13e-13 ***
SiteNameWW36X 8.610e-04 2.630e-04 3.273 0.001085 **
SiteNameWW37 1.646e-03 2.332e-04 7.058 2.45e-12 ***
SiteNameWW38 1.531e-03 2.684e-04 5.705 1.37e-08 ***
SiteNameWW42 1.333e-03 2.380e-04 5.604 2.44e-08 ***
SiteNameWW43 1.171e-03 2.502e-04 4.678 3.13e-06 ***
SiteNameWW44 1.648e-03 2.467e-04 6.679 3.24e-11 ***
SiteNameWW45 1.782e-03 2.255e-04 7.904 4.80e-15 ***
SiteNameWW46 1.686e-03 2.196e-04 7.680 2.66e-14 ***
SiteNameWW47 9.103e-04 2.583e-04 3.524 0.000435 ***
SiteNameWW48 2.269e-04 2.986e-04 0.760 0.447556
SiteNameWW49 8.649e-04 2.354e-04 3.673 0.000247 ***
SiteNameWW50 1.878e-03 2.310e-04 8.127 8.31e-16 ***
SiteNameWW51 1.498e-03 2.355e-04 6.363 2.54e-10 ***
SiteNameWW59 1.233e-04 2.684e-04 0.459 0.645978
SiteNameWW62 -6.392e-05 2.502e-04 -0.255 0.798393
SiteNameWW63 -9.859e-05 2.630e-04 -0.375 0.707835
SiteNameWW64 -2.443e-05 2.435e-04 -0.100 0.920099
SiteNameWW66 -6.216e-05 2.467e-04 -0.252 0.801090
SiteNameWW67 8.895e-04 2.435e-04 3.653 0.000267 ***
SiteNameWW68 -1.566e-05 2.684e-04 -0.058 0.953478
SiteNameWW69 1.395e-05 2.333e-04 0.060 0.952304
SiteNameWW70 5.193e-04 2.355e-04 2.206 0.027548 *
SiteNameWW71 1.953e-04 2.985e-04 0.654 0.512959
SiteNameWW76 1.371e-04 2.435e-04 0.563 0.573584
SiteNameWW77 2.410e-04 2.468e-04 0.976 0.329025
SiteNameWW77-2 3.294e-05 3.102e-04 0.106 0.915444
SiteNameWW78 9.695e-04 2.379e-04 4.074 4.82e-05 ***
SiteNameWW78-2 8.219e-04 2.355e-04 3.491 0.000494 ***
SiteNameWW79 3.887e-04 2.379e-04 1.634 0.102458
SiteNameWW80 9.598e-04 2.437e-04 3.938 8.53e-05 ***
SiteNameWW81 1.786e-03 2.503e-04 7.138 1.40e-12 ***
SiteNameWW82-1 4.194e-04 2.291e-04 1.831 0.067321 .
SiteNameWW82-2 5.292e-04 2.407e-04 2.199 0.028011 *
SiteNameWW83 1.107e-03 2.209e-04 5.013 5.91e-07 ***
SiteNameWW84 9.241e-04 2.355e-04 3.924 9.06e-05 ***
SiteNameWW85 1.333e-03 2.291e-04 5.821 6.97e-09 ***
SiteNameWW85-2 6.356e-04 3.225e-04 1.971 0.048905 *
SiteNameWW86 7.939e-04 2.332e-04 3.404 0.000679 ***
SiteNameWW87 8.490e-04 2.406e-04 3.529 0.000428 ***
SiteNameWW88 3.680e-04 2.238e-04 1.644 0.100368
SiteNameWW89 1.117e-04 2.435e-04 0.459 0.646619
SiteNameWW92 2.676e-04 2.435e-04 1.099 0.271904
SiteNameWW96 4.838e-04 2.379e-04 2.034 0.042141 *
SiteNameWW97 3.227e-04 2.540e-04 1.270 0.204196
SiteNameWW98 1.326e-03 2.272e-04 5.838 6.30e-09 ***
SiteNameWW99 -1.514e-04 2.502e-04 -0.605 0.545116
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.0007701 on 1714 degrees of freedom
Multiple R-squared: 0.4385, Adjusted R-squared: 0.4071
F-statistic: 13.94 on 96 and 1714 DF, p-value: < 2.2e-16
Residuals: Min ( -0.0024262), 1Q(-0.0003780), Median(-0.0000337), 3Q(0.0002959) and Max(0.0032389) shows the distribution of the residuals (difference between observed and predicted values). The small values of the residuals indicate that the model’s prediction are close to the observed values.
Intercept: The intercept is statistically significant at the 5% level, indicating a small but significant base level of
X14DOXwhen allSiteNamefactors are zero (though in practice,SiteNamefactors wouldn’t be zero).
Significant SiteName Coefficients:
Here are the site names that are statistically significant (p-value < 0.05) in your cleaned data model:
- SiteNameWW06: ( p = 5.10e-09 ) ***
- SiteNameWW07: ( p = 0.006088 ) **
- SiteNameWW101: ( p = 2.94e-14 ) ***
- SiteNameWW103: ( p = 0.001509 ) **
- SiteNameWW106: ( p = 0.000356 ) ***
- SiteNameWW116: ( p = 0.000873 ) ***
- SiteNameWW12: ( p = 0.007467 ) **
- SiteNameWW13: ( p = 0.024945 ) *
- SiteNameWW16: ( p = 1.36e-06 ) ***
- SiteNameWW19: ( p = 9.75e-05 ) ***
- SiteNameWW201: ( p = 0.000556 ) ***
- SiteNameWW210/211: ( p = 2.76e-12 ) ***
- SiteNameWW217: ( p = 0.035260 ) *
- SiteNameWW223: ( p = 1.80e-14 ) ***
- SiteNameWW25: ( p = 0.034045 ) *
- SiteNameWW29: ( p = 4.33e-16 ) ***
- SiteNameWW30: ( p = 1.34e-13 ) ***
- SiteNameWW31: ( p = 9.23e-08 ) ***
- SiteNameWW32: ( p = < 2e-16 ) ***
- SiteNameWW34: ( p = 1.86e-13 ) ***
- SiteNameWW36: ( p = 2.13e-13 ) ***
- SiteNameWW36X: ( p = 0.001076 ) **
- SiteNameWW37: ( p = 2.43e-12 ) ***
- SiteNameWW38: ( p = 1.36e-08 ) ***
- SiteNameWW42: ( p = 2.39e-08 ) ***
- SiteNameWW43: ( p = 3.10e-06 ) ***
- SiteNameWW44: ( p = 3.23e-11 ) ***
- SiteNameWW45: ( p = 4.72e-15 ) ***
- SiteNameWW46: ( p = 2.66e-14 ) ***
- SiteNameWW47: ( p = 0.000434 ) ***
- SiteNameWW49: ( p = 0.000244 ) ***
- SiteNameWW50: ( p = 8.26e-16 ) ***
- SiteNameWW51: ( p = 2.54e-10 ) ***
- SiteNameWW70: ( p = 0.027366 ) *
- SiteNameWW78: ( p = 4.76e-05 ) ***
- SiteNameWW78-2: ( p = 0.000488 ) ***
- SiteNameWW80: ( p = 8.44e-05 ) ***
- SiteNameWW81: ( p = 1.38e-12 ) ***
- SiteNameWW82-2: ( p = 0.027856 ) *
- SiteNameWW83: ( p = 5.81e-07 ) ***
- SiteNameWW84: ( p = 8.93e-05 ) ***
- SiteNameWW85: ( p = 6.81e-09 ) ***
- SiteNameWW85-2: ( p = 0.048644 ) *
- SiteNameWW86: ( p = 0.000671 ) ***
- SiteNameWW87: ( p = 0.000423 ) ***
- SiteNameWW96: ( p = 0.041975 ) *
- SiteNameWW98: ( p = 6.15e-09 ) ***
These significant coefficients indicate that the corresponding SiteName levels have a statistically significant effect on X14DOX.
Model Fit Statistics
Residual standard error: 0.0007686 on 1714 degrees of freedom
Multiple R-squared (0.4386): This indicates that approximately 44% of the variability in
X14DOXis explained by the model.Adjusted R-squared (0.41): This adjusts the R-squared value for the number of predictors in the
Conclusion:
The model explains a significant portion of the variance in X14DOX(R-squared = 44%). Several SiteName levels are significant, indicating that these levels are important for predicting X14DOX. The model has a good fit, but there might be room for improvement or further refinement to increase the explained variance.
Checking for Model Assumption:
# Check for model assumptions
par(mfrow=c(2, 2))
plot(step_model_14DOX_cleaned)Durbin-Watson test:
The Durbin-Watson test is used to detect the presence of autocorrelation in the residuals of a regression analysis.
# Durbin-Watson test for autocorrelation
dwtest(step_model_14DOX_cleaned)
Durbin-Watson test
data: step_model_14DOX_cleaned
DW = 1.1239, p-value < 2.2e-16
alternative hypothesis: true autocorrelation is greater than 0
DW = 1.1239: The Durbin-Watson statistic value is approximately. The DW statistic ranges from 0 to 4. A value around 2 suggests no autocorrelation. Values less than 2 indicate positive autocorrelation, while values greater than 2 indicate negative autocorrelation.
P-value = <2.2e-16: The p-value is <2.2e-16. This value is used to determine the significance of the test result. Typically, a p-value less than 0.05 indicates that the null hypothesis can be rejected with a very high level of confidence.
Alternative hypothesis: true autocorrelation is greater than 0: The alternative hypothesis in this test suggests that there is positive autocorrelation in the residuals (i.e., the residuals are positively correlated).
Conclusion
The Durbin-Watson test statistic of 1.1239 and the very low p-value suggest that there is significant positive autocorrelation in the residuals of the model step_model_14DOX. Positive autocorrelation means that consecutive residuals are correlated with each other, which can indicate that the model might be missing some important variables or that there are patterns in the data that are not captured by the model.
Variance Inflation Factor (VIF) for Multicollinearity
# Variance Inflation Factor (VIF) for multicollinearity
vif(step_model_14DOX_cleaned) GVIF Df GVIF^(1/(2*Df))
Date 1.095895 1 1.046850
SiteName 1.095895 95 1.000482
Residual Plots Vs Time or Fitted Values to Visualize Autocorrelation
####Create Plots of Residuals Vs Time or Fitted Values to Visually Inspect the AutoCorrelation
plot(residuals(step_model_14DOX_cleaned), type = "l", main = "Residuals over Time")acf(residuals(step_model_14DOX_cleaned), main = "ACF of Residuals")Factoring SiteName in testData to Match with the Non-High Leverage trainData (Categorical Variable)
# Ensure factor levels in test set match training set
test_Data$SiteName <- factor(test_Data$SiteName , levels = levels(train_Data_cleaned$SiteName))The above code ensures that the SiteName factor levels in the testData matches those in the Non-High Leverage trainData dataset. This step is crucial when you want to make predictions on the test data using a model trained on the training data, especially when dealing with categorical variables.
Removing Data Points with High Levels for Prediction of Actual Vs Predicted Values
# Filter out rows in testData that have levels not present in trainData_cleaned
test_Data <- test_Data[!test_Data$SiteName %in% c('WW210', 'WW211', 'WW215', 'WW221', 'WW222',
'WW56', 'WW61', 'WW88-2', 'WW91', 'WW185',
'WW200', 'WW39-1'), ]Predicting on test data
Having Trained our model to predict X14DOX based on the test-data. We shall now proceed to investigate how efficient our model is,
# Predict on test data
predictions_14DOX_cleaned <- predict(step_model_14DOX_cleaned, newdata = test_Data)Model Evaluation
# Evaluate the model
X14DOX_results_cleaned <- data.frame(WellName = test_Data$SiteName, Actual = test_Data$X14DOX, Predicted = predictions_14DOX_cleaned)Result of the Prediction
The correlation coefficient of 0.7145267 indicates a strong positive relationship between the actual and predicted values, suggesting that the model performs well. However, further analysis and refinement can be conducted to improve the model’s accuracy and reliability.
# Evaluate the model
X14DOX_results_cleaned <- data.frame(WellName = test_Data$SiteName, Actual = test_Data$X14DOX, Predicted = predictions_14DOX_cleaned)A correlation of 0.6414039 suggests a strong positive linear relationship between the actual and predicted values. This means that as the actual values increase, the predicted values tend to also increase, and vice versa. While the correlation provides a measure of the strength of the linear relationship, it does not directly indicate how well the model fits the data in terms of variance explained. For this, metrics such as R-squared, RMSE (Root Mean Square Error), and MAE (Mean Absolute Error) are also important.
Visual Inspection of Actual Vs Predicted Values
## Visual Inspection ##
plot(X14DOX_results_cleaned$Actual, X14DOX_results_cleaned$Predicted, main = "Actual vs Predicted Values", xlab = "Actual", ylab = "Predicted")
abline(lm(X14DOX_results_cleaned$Predicted ~ X14DOX_results_cleaned$Actual), col = "blue")Residual Analysis
Analyze the residuals (actual - predicted) to check for patterns that might indicate model deficiencies.
### Residual Analysis###
residuals <- X14DOX_results_cleaned$Actual - X14DOX_results_cleaned$Predicted
plot(residuals, main = "Residuals", ylab = "Residuals")Model Evaluation Metrics
### Model Evaluation Metrics ##
rmse <- sqrt(mean((X14DOX_results_cleaned$Actual - X14DOX_results_cleaned$Predicted)^2))
print("Root Mean Square Error:")[1] "Root Mean Square Error:"
print(rmse)[1] 0.0007873864
mae <- mean(abs(X14DOX_results_cleaned$Actual - X14DOX_results_cleaned$Predicted))
print("Mean Absolute Error:")[1] "Mean Absolute Error:"
print(mae)[1] 0.0005647499
r_squared <- summary(lm(X14DOX_results_cleaned$Predicted ~ X14DOX_results_cleaned$Actual))$r.squared
print("Root Square Error:")[1] "Root Square Error:"
print(r_squared)[1] 0.4113989
Summary of Model Performance
RMSE (0.000787): Indicates the average error magnitude in predicting the dependent variable. A very low value suggests that the model’s predictions are close to the actual values.
MAE (0.000564): Shows the average absolute error in predictions. The low value reinforces the indication from RMSE that the model performs well.
R^2 (0.411): Indicates that about 41% of the variance in the dependent variable is explained by the model. While this shows a decent fit, there’s still room for improvement to capture more variance.
Time series forecasting for 1,4-DiOxane
Aggregating data by month for a better time series analysis
For the Time Series Forecasting,
# Time series forecasting for X14DOX
# Aggregating data by month for a better time series analysis
data_ts_14DOX <- data %>%
group_by(Date) %>%
summarize(X14DOX = mean(X14DOX))Convert to time series object
# Convert to time series object
ts_14DOX <- ts(data_ts_14DOX$X14DOX, start = c(year(min(data_ts_14DOX$Date)), month(min(data_ts_14DOX$Date))), frequency = 12)#Decompose time series
decomp_14DOX <- stl(ts_14DOX, s.window="periodic")# Plot decompositions
plot(decomp_14DOX)Fit ARIMA model for 14DOX
# Fit ARIMA model
fit_14DOX <- auto.arima(ts_14DOX)
summary(fit_14DOX)Series: ts_14DOX
ARIMA(0,1,2)
Coefficients:
ma1 ma2
-0.7812 -0.1505
s.e. 0.0426 0.0418
sigma^2 = 6.132e-07: log likelihood = 2935.52
AIC=-5865.05 AICc=-5865 BIC=-5852.33
Training set error measures:
ME RMSE MAE MPE MAPE MASE
Training set 2.20174e-05 0.000780773 0.0005626349 -48.62643 73.04201 0.7059289
ACF1
Training set 0.003720507
Forecast for 14DOX in the next 12 months
# Forecast for the next 12 months
forecast_14DOX <- forecast(fit_14DOX, h = 12)
plot(forecast_14DOX)# Combine forecasts into a data frame
future_forecasts_14DOX <- data.frame(
Date = seq.Date(from = max(data$Date) + 1, by = "month", length.out = 48),
X14DOX_Forecast = as.numeric(forecast_14DOX$mean)
)# Print future forecasts
print(future_forecasts_14DOX) Date X14DOX_Forecast
1 2024-02-02 0.001277576
2 2024-03-02 0.001386397
3 2024-04-02 0.001386397
4 2024-05-02 0.001386397
5 2024-06-02 0.001386397
6 2024-07-02 0.001386397
7 2024-08-02 0.001386397
8 2024-09-02 0.001386397
9 2024-10-02 0.001386397
10 2024-11-02 0.001386397
11 2024-12-02 0.001386397
12 2025-01-02 0.001386397
13 2025-02-02 0.001277576
14 2025-03-02 0.001386397
15 2025-04-02 0.001386397
16 2025-05-02 0.001386397
17 2025-06-02 0.001386397
18 2025-07-02 0.001386397
19 2025-08-02 0.001386397
20 2025-09-02 0.001386397
21 2025-10-02 0.001386397
22 2025-11-02 0.001386397
23 2025-12-02 0.001386397
24 2026-01-02 0.001386397
25 2026-02-02 0.001277576
26 2026-03-02 0.001386397
27 2026-04-02 0.001386397
28 2026-05-02 0.001386397
29 2026-06-02 0.001386397
30 2026-07-02 0.001386397
31 2026-08-02 0.001386397
32 2026-09-02 0.001386397
33 2026-10-02 0.001386397
34 2026-11-02 0.001386397
35 2026-12-02 0.001386397
36 2027-01-02 0.001386397
37 2027-02-02 0.001277576
38 2027-03-02 0.001386397
39 2027-04-02 0.001386397
40 2027-05-02 0.001386397
41 2027-06-02 0.001386397
42 2027-07-02 0.001386397
43 2027-08-02 0.001386397
44 2027-09-02 0.001386397
45 2027-10-02 0.001386397
46 2027-11-02 0.001386397
47 2027-12-02 0.001386397
48 2028-01-02 0.001386397
Method2: Time Series Forecast for each Site w.r.t 14DOX
# Time series forecasting for X14DOX considering SiteName
# Aggregating data by month for a better time series analysis
data_ts <- data %>%
group_by(Date, SiteName) %>%
summarize(X14DOX = mean(X14DOX), .groups = "drop")
print(head(data_ts))# A tibble: 6 × 3
Date SiteName X14DOX
<date> <fct> <dbl>
1 2015-07-16 WW01 0.000592
2 2015-07-16 WW02 0.000597
3 2015-07-16 WW03 0.000597
4 2015-07-16 WW04 0.000597
5 2015-07-16 WW06 0.000597
6 2015-07-16 WW10 0.000597
# Create an empty list to store forecasts for each site
forecasts_list <- list()# Iterate over each site
for(site in unique(data_ts$SiteName)) {site_data <- data_ts %>% filter(SiteName == site)
# Check if there is enough data for decomposition
if(nrow(site_data) < 24) { # Ensure at least two full years of data for monthly series
warning(paste("Not enough data for site", site, ". Skipping decomposition and ARIMA modeling."))
next
}
# Convert to time series object
ts_X14DOX <- ts(site_data$X14DOX, start = c(year(min(site_data$Date)), month(min(site_data$Date))), frequency = 12)
# Check if time series has sufficient length for decomposition
if (length(ts_X14DOX) < 24) { # Ensure at least two full periods of data for decomposition
warning(paste("Series is too short for STL decomposition for site", site, ". Skipping decomposition and ARIMA modeling."))
next
}
# Decompose time series
decomp_14DOX <- tryCatch({
stl(ts_X14DOX, s.window = "periodic")
}, error = function(e) {
warning(paste("Error in STL decomposition for site", site, ":", e$message))
NULL
})
if (!is.null(decomp_14DOX)) {
# Plot decompositions
plot(decomp_14DOX, main = paste("Decomposition for Site", site))
}
# Fit ARIMA model
fit_X14DOX <- auto.arima(ts_X14DOX)
summary(fit_X14DOX)
# Forecast for the next 12 months
forecast_X14DOX <- forecast(fit_X14DOX, h = 12)
plot(forecast_X14DOX, main = paste("Forecast for Site", site))
# Store forecast in the list
forecasts_list[[site]] <- data.frame(
Date = seq.Date(from = max(site_data$Date) + 1, by = "month", length.out = 12),
SiteName = site,
X14DOX_Forecast = as.numeric(forecast_X14DOX$mean)
)
}Warning: Not enough data for site WW02 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW03 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW04 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW10 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW08 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW28 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW12 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW13 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW21 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW22 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW29 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW30 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW34 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW07 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW11 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW23 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW24 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW14 . Skipping decomposition and ARIMA
modeling.
Warning in value[[3L]](cond): Error in STL decomposition for site WW37 : series
is not periodic or has less than two periods
Warning: Not enough data for site WW38 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW56 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW39-1 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW39-2 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW57 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW58 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW59 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW60 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW41 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW43 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW61 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW62 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW63 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW65 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW66 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW79 . Skipping decomposition and ARIMA
modeling.
Warning in value[[3L]](cond): Error in STL decomposition for site WW82-2 :
series is not periodic or has less than two periods
Warning in value[[3L]](cond): Error in STL decomposition for site WW97 : series
is not periodic or has less than two periods
Warning: Not enough data for site WW99 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW100 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW102 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW103 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW44 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW47 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW48 . Skipping decomposition and ARIMA
modeling.
Warning in value[[3L]](cond): Error in STL decomposition for site WW49 : series
is not periodic or has less than two periods
Warning: Not enough data for site WW68 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW104 . Skipping decomposition and ARIMA
modeling.
Warning in value[[3L]](cond): Error in STL decomposition for site WW105 :
series is not periodic or has less than two periods
Warning: Not enough data for site WW36X . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW51 . Skipping decomposition and ARIMA
modeling.
Warning in value[[3L]](cond): Error in STL decomposition for site WW87 : series
is not periodic or has less than two periods
Warning: Not enough data for site WW90 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW91 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW93 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW107 . Skipping decomposition and ARIMA
modeling.
Warning in value[[3L]](cond): Error in STL decomposition for site WW70 : series
is not periodic or has less than two periods
Warning: Not enough data for site WW71 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW74 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW177 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW183 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW184 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW185 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW186 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW193 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW195 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW196 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW197 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW198 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW18 . Skipping decomposition and ARIMA
modeling.
Warning in value[[3L]](cond): Error in STL decomposition for site WW188 :
series is not periodic or has less than two periods
Warning: Not enough data for site WW189 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW200 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW201 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW214 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW217 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW230 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW223 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW26 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW206 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW210 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW211 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW36x . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW156-2 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW210/211 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW31 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW25 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW215 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW221 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW35 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW222 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW88-2 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW85-2 . Skipping decomposition and ARIMA
modeling.
Warning: Not enough data for site WW77-2 . Skipping decomposition and ARIMA
modeling.
# Combine all forecasts into a single data frame
all_forecasts <- do.call(rbind, forecasts_list)
# Print future forecasts
print(all_forecasts) Date SiteName X14DOX_Forecast
WW01.1 2021-12-07 WW01 2.579536e-04
WW01.2 2022-01-07 WW01 4.134040e-04
WW01.3 2022-02-07 WW01 4.134040e-04
WW01.4 2022-03-07 WW01 4.134040e-04
WW01.5 2022-04-07 WW01 4.134040e-04
WW01.6 2022-05-07 WW01 4.134040e-04
WW01.7 2022-06-07 WW01 4.134040e-04
WW01.8 2022-07-07 WW01 4.134040e-04
WW01.9 2022-08-07 WW01 4.134040e-04
WW01.10 2022-09-07 WW01 4.134040e-04
WW01.11 2022-10-07 WW01 4.134040e-04
WW01.12 2022-11-07 WW01 4.134040e-04
WW06.1 2021-01-15 WW06 9.545443e-04
WW06.2 2021-02-15 WW06 9.545443e-04
WW06.3 2021-03-15 WW06 9.545443e-04
WW06.4 2021-04-15 WW06 9.545443e-04
WW06.5 2021-05-15 WW06 9.545443e-04
WW06.6 2021-06-15 WW06 9.545443e-04
WW06.7 2021-07-15 WW06 9.545443e-04
WW06.8 2021-08-15 WW06 9.545443e-04
WW06.9 2021-09-15 WW06 9.545443e-04
WW06.10 2021-10-15 WW06 9.545443e-04
WW06.11 2021-11-15 WW06 9.545443e-04
WW06.12 2021-12-15 WW06 9.545443e-04
WW32.1 2021-12-16 WW32 3.414620e-03
WW32.2 2022-01-16 WW32 2.500100e-03
WW32.3 2022-02-16 WW32 2.500100e-03
WW32.4 2022-03-16 WW32 2.500100e-03
WW32.5 2022-04-16 WW32 2.500100e-03
WW32.6 2022-05-16 WW32 2.500100e-03
WW32.7 2022-06-16 WW32 2.500100e-03
WW32.8 2022-07-16 WW32 2.500100e-03
WW32.9 2022-08-16 WW32 2.500100e-03
WW32.10 2022-09-16 WW32 2.500100e-03
WW32.11 2022-10-16 WW32 2.500100e-03
WW32.12 2022-11-16 WW32 2.500100e-03
WW16.1 2023-01-20 WW16 6.265595e-04
WW16.2 2023-02-20 WW16 5.596717e-04
WW16.3 2023-03-20 WW16 9.692012e-04
WW16.4 2023-04-20 WW16 9.307927e-04
WW16.5 2023-05-20 WW16 1.682349e-03
WW16.6 2023-06-20 WW16 1.935361e-03
WW16.7 2023-07-20 WW16 2.097744e-03
WW16.8 2023-08-20 WW16 4.753299e-04
WW16.9 2023-09-20 WW16 -1.257814e-04
WW16.10 2023-10-20 WW16 -1.677629e-04
WW16.11 2023-11-20 WW16 -5.279878e-04
WW16.12 2023-12-20 WW16 -8.508956e-05
WW17.1 2021-12-16 WW17 6.947943e-04
WW17.2 2022-01-16 WW17 6.947943e-04
WW17.3 2022-02-16 WW17 6.947943e-04
WW17.4 2022-03-16 WW17 6.947943e-04
WW17.5 2022-04-16 WW17 6.947943e-04
WW17.6 2022-05-16 WW17 6.947943e-04
WW17.7 2022-06-16 WW17 6.947943e-04
WW17.8 2022-07-16 WW17 6.947943e-04
WW17.9 2022-08-16 WW17 6.947943e-04
WW17.10 2022-09-16 WW17 6.947943e-04
WW17.11 2022-10-16 WW17 6.947943e-04
WW17.12 2022-11-16 WW17 6.947943e-04
WW19.1 2023-01-20 WW19 1.420310e-04
WW19.2 2023-02-20 WW19 1.089410e-03
WW19.3 2023-03-20 WW19 9.595479e-04
WW19.4 2023-04-20 WW19 1.309137e-03
WW19.5 2023-05-20 WW19 1.359068e-03
WW19.6 2023-06-20 WW19 1.129364e-03
WW19.7 2023-07-20 WW19 1.518832e-03
WW19.8 2023-08-20 WW19 1.768411e-03
WW19.9 2023-09-20 WW19 2.050175e-04
WW19.10 2023-10-20 WW19 1.009497e-03
WW19.11 2023-11-20 WW19 1.359068e-03
WW19.12 2023-12-20 WW19 1.129364e-03
WW36.1 2024-01-17 WW36 5.968219e-04
WW36.2 2024-02-17 WW36 5.968219e-04
WW36.3 2024-03-17 WW36 5.968219e-04
WW36.4 2024-04-17 WW36 5.968219e-04
WW36.5 2024-05-17 WW36 5.968219e-04
WW36.6 2024-06-17 WW36 5.968219e-04
WW36.7 2024-07-17 WW36 5.968219e-04
WW36.8 2024-08-17 WW36 5.968219e-04
WW36.9 2024-09-17 WW36 5.968219e-04
WW36.10 2024-10-17 WW36 5.968219e-04
WW36.11 2024-11-17 WW36 5.968219e-04
WW36.12 2024-12-17 WW36 5.968219e-04
WW37.1 2024-01-19 WW37 1.571055e-03
WW37.2 2024-02-19 WW37 1.640759e-03
WW37.3 2024-03-19 WW37 1.693487e-03
WW37.4 2024-04-19 WW37 1.733371e-03
WW37.5 2024-05-19 WW37 1.763542e-03
WW37.6 2024-06-19 WW37 1.786364e-03
WW37.7 2024-07-19 WW37 1.803627e-03
WW37.8 2024-08-19 WW37 1.816686e-03
WW37.9 2024-09-19 WW37 1.826564e-03
WW37.10 2024-10-19 WW37 1.834036e-03
WW37.11 2024-11-19 WW37 1.839688e-03
WW37.12 2024-12-19 WW37 1.843963e-03
WW42.1 2023-01-20 WW42 1.360024e-03
WW42.2 2023-02-20 WW42 1.375915e-03
WW42.3 2023-03-20 WW42 1.389721e-03
WW42.4 2023-04-20 WW42 1.401716e-03
WW42.5 2023-05-20 WW42 1.412137e-03
WW42.6 2023-06-20 WW42 1.421191e-03
WW42.7 2023-07-20 WW42 1.429057e-03
WW42.8 2023-08-20 WW42 1.435891e-03
WW42.9 2023-09-20 WW42 1.441828e-03
WW42.10 2023-10-20 WW42 1.446987e-03
WW42.11 2023-11-20 WW42 1.451468e-03
WW42.12 2023-12-20 WW42 1.455362e-03
WW64.1 2020-03-03 WW64 3.869351e-04
WW64.2 2020-04-03 WW64 3.069529e-04
WW64.3 2020-05-03 WW64 3.069529e-04
WW64.4 2020-06-03 WW64 3.069529e-04
WW64.5 2020-07-03 WW64 3.069529e-04
WW64.6 2020-08-03 WW64 1.444099e-03
WW64.7 2020-09-03 WW64 3.069529e-04
WW64.8 2020-10-03 WW64 5.558766e-04
WW64.9 2020-11-03 WW64 6.178480e-04
WW64.10 2020-12-03 WW64 4.859043e-04
WW64.11 2021-01-03 WW64 2.929553e-04
WW64.12 2021-02-03 WW64 4.319223e-04
WW76.1 2024-02-02 WW76 4.925167e-04
WW76.2 2024-03-02 WW76 4.925167e-04
WW76.3 2024-04-02 WW76 4.925167e-04
WW76.4 2024-05-02 WW76 4.925167e-04
WW76.5 2024-06-02 WW76 4.925167e-04
WW76.6 2024-07-02 WW76 4.925167e-04
WW76.7 2024-08-02 WW76 4.925167e-04
WW76.8 2024-09-02 WW76 4.925167e-04
WW76.9 2024-10-02 WW76 4.925167e-04
WW76.10 2024-11-02 WW76 4.925167e-04
WW76.11 2024-12-02 WW76 4.925167e-04
WW76.12 2025-01-02 WW76 4.925167e-04
WW77.1 2024-01-31 WW77 8.008612e-04
WW77.2 2024-03-02 WW77 8.008612e-04
WW77.3 2024-03-31 WW77 8.008612e-04
WW77.4 2024-05-01 WW77 8.008612e-04
WW77.5 2024-05-31 WW77 8.008612e-04
WW77.6 2024-07-01 WW77 8.008612e-04
WW77.7 2024-07-31 WW77 8.008612e-04
WW77.8 2024-08-31 WW77 8.008612e-04
WW77.9 2024-10-01 WW77 8.008612e-04
WW77.10 2024-10-31 WW77 8.008612e-04
WW77.11 2024-12-01 WW77 8.008612e-04
WW77.12 2024-12-31 WW77 8.008612e-04
WW78.1 2023-01-20 WW78 1.508061e-03
WW78.2 2023-02-20 WW78 1.508061e-03
WW78.3 2023-03-20 WW78 1.508061e-03
WW78.4 2023-04-20 WW78 1.508061e-03
WW78.5 2023-05-20 WW78 1.508061e-03
WW78.6 2023-06-20 WW78 1.508061e-03
WW78.7 2023-07-20 WW78 1.508061e-03
WW78.8 2023-08-20 WW78 1.508061e-03
WW78.9 2023-09-20 WW78 1.508061e-03
WW78.10 2023-10-20 WW78 1.508061e-03
WW78.11 2023-11-20 WW78 1.508061e-03
WW78.12 2023-12-20 WW78 1.508061e-03
WW78-2.1 2022-03-24 WW78-2 2.874422e-04
WW78-2.2 2022-04-24 WW78-2 2.674789e-04
WW78-2.3 2022-05-24 WW78-2 -5.693404e-04
WW78-2.4 2022-06-24 WW78-2 7.780798e-05
WW78-2.5 2022-07-24 WW78-2 5.169911e-04
WW78-2.6 2022-08-24 WW78-2 4.970324e-04
WW78-2.7 2022-09-24 WW78-2 1.177417e-04
WW78-2.8 2022-10-24 WW78-2 -1.204870e-05
WW78-2.9 2022-11-24 WW78-2 -2.064223e-06
WW78-2.10 2022-12-24 WW78-2 -1.253896e-03
WW78-2.11 2023-01-24 WW78-2 -1.038985e-03
WW78-2.12 2023-02-24 WW78-2 -9.640268e-04
WW80.1 2024-01-19 WW80 1.628673e-03
WW80.2 2024-02-19 WW80 1.819834e-04
WW80.3 2024-03-19 WW80 2.307336e-03
WW80.4 2024-04-19 WW80 1.678590e-03
WW80.5 2024-05-19 WW80 2.427052e-03
WW80.6 2024-06-19 WW80 1.418993e-03
WW80.7 2024-07-19 WW80 1.708540e-03
WW80.8 2024-08-19 WW80 4.240994e-03
WW80.9 2024-09-19 WW80 8.516373e-04
WW80.10 2024-10-19 WW80 3.559366e-04
WW80.11 2024-11-19 WW80 5.968219e-04
WW80.12 2024-12-19 WW80 5.968219e-04
WW81.1 2024-01-17 WW81 1.415114e-03
WW81.2 2024-02-17 WW81 1.415114e-03
WW81.3 2024-03-17 WW81 1.415114e-03
WW81.4 2024-04-17 WW81 1.415114e-03
WW81.5 2024-05-17 WW81 1.415114e-03
WW81.6 2024-06-17 WW81 1.415114e-03
WW81.7 2024-07-17 WW81 1.415114e-03
WW81.8 2024-08-17 WW81 1.415114e-03
WW81.9 2024-09-17 WW81 1.415114e-03
WW81.10 2024-10-17 WW81 1.415114e-03
WW81.11 2024-11-17 WW81 1.415114e-03
WW81.12 2024-12-17 WW81 1.415114e-03
WW82-1.1 2024-02-02 WW82-1 8.466857e-04
WW82-1.2 2024-03-02 WW82-1 8.466857e-04
WW82-1.3 2024-04-02 WW82-1 8.466857e-04
WW82-1.4 2024-05-02 WW82-1 8.466857e-04
WW82-1.5 2024-06-02 WW82-1 8.466857e-04
WW82-1.6 2024-07-02 WW82-1 8.466857e-04
WW82-1.7 2024-08-02 WW82-1 8.466857e-04
WW82-1.8 2024-09-02 WW82-1 8.466857e-04
WW82-1.9 2024-10-02 WW82-1 8.466857e-04
WW82-1.10 2024-11-02 WW82-1 8.466857e-04
WW82-1.11 2024-12-02 WW82-1 8.466857e-04
WW82-1.12 2025-01-02 WW82-1 8.466857e-04
WW82-2.1 2024-01-17 WW82-2 1.037796e-03
WW82-2.2 2024-02-17 WW82-2 1.037796e-03
WW82-2.3 2024-03-17 WW82-2 1.037796e-03
WW82-2.4 2024-04-17 WW82-2 1.037796e-03
WW82-2.5 2024-05-17 WW82-2 1.037796e-03
WW82-2.6 2024-06-17 WW82-2 1.037796e-03
WW82-2.7 2024-07-17 WW82-2 1.037796e-03
WW82-2.8 2024-08-17 WW82-2 1.037796e-03
WW82-2.9 2024-09-17 WW82-2 1.037796e-03
WW82-2.10 2024-10-17 WW82-2 1.037796e-03
WW82-2.11 2024-11-17 WW82-2 1.037796e-03
WW82-2.12 2024-12-17 WW82-2 1.037796e-03
WW96.1 2021-12-16 WW96 2.449700e-04
WW96.2 2022-01-16 WW96 2.449700e-04
WW96.3 2022-02-16 WW96 2.449700e-04
WW96.4 2022-03-16 WW96 2.449700e-04
WW96.5 2022-04-16 WW96 2.449700e-04
WW96.6 2022-05-16 WW96 2.449700e-04
WW96.7 2022-06-16 WW96 2.449700e-04
WW96.8 2022-07-16 WW96 2.449700e-04
WW96.9 2022-08-16 WW96 2.449700e-04
WW96.10 2022-09-16 WW96 2.449700e-04
WW96.11 2022-10-16 WW96 2.449700e-04
WW96.12 2022-11-16 WW96 2.449700e-04
WW97.1 2020-03-19 WW97 6.948709e-04
WW97.2 2020-04-19 WW97 6.948709e-04
WW97.3 2020-05-19 WW97 6.948709e-04
WW97.4 2020-06-19 WW97 6.948709e-04
WW97.5 2020-07-19 WW97 6.948709e-04
WW97.6 2020-08-19 WW97 6.948709e-04
WW97.7 2020-09-19 WW97 6.948709e-04
WW97.8 2020-10-19 WW97 6.948709e-04
WW97.9 2020-11-19 WW97 6.948709e-04
WW97.10 2020-12-19 WW97 6.948709e-04
WW97.11 2021-01-19 WW97 6.948709e-04
WW97.12 2021-02-19 WW97 6.948709e-04
WW98.1 2021-12-16 WW98 1.859470e-03
WW98.2 2022-01-16 WW98 1.859470e-03
WW98.3 2022-02-16 WW98 1.859470e-03
WW98.4 2022-03-16 WW98 1.859470e-03
WW98.5 2022-04-16 WW98 1.859470e-03
WW98.6 2022-05-16 WW98 1.859470e-03
WW98.7 2022-06-16 WW98 1.859470e-03
WW98.8 2022-07-16 WW98 1.859470e-03
WW98.9 2022-08-16 WW98 1.859470e-03
WW98.10 2022-09-16 WW98 1.859470e-03
WW98.11 2022-10-16 WW98 1.859470e-03
WW98.12 2022-11-16 WW98 1.859470e-03
WW101.1 2021-12-16 WW101 2.256676e-03
WW101.2 2022-01-16 WW101 2.545767e-03
WW101.3 2022-02-16 WW101 2.745091e-03
WW101.4 2022-03-16 WW101 1.738097e-03
WW101.5 2022-04-16 WW101 2.336434e-03
WW101.6 2022-05-16 WW101 1.518617e-03
WW101.7 2022-06-16 WW101 2.376310e-03
WW101.8 2022-07-16 WW101 1.867767e-03
WW101.9 2022-08-16 WW101 1.947556e-03
WW101.10 2022-09-16 WW101 1.947556e-03
WW101.11 2022-10-16 WW101 2.406216e-03
WW101.12 2022-11-16 WW101 4.704359e-04
WW116.1 2024-01-19 WW116 1.993609e-03
WW116.2 2024-02-19 WW116 1.935681e-03
WW116.3 2024-03-19 WW116 2.067424e-03
WW116.4 2024-04-19 WW116 1.998573e-03
WW116.5 2024-05-19 WW116 1.982950e-03
WW116.6 2024-06-19 WW116 2.029625e-03
WW116.7 2024-07-19 WW116 2.002740e-03
WW116.8 2024-08-19 WW116 1.999065e-03
WW116.9 2024-09-19 WW116 2.015481e-03
WW116.10 2024-10-19 WW116 2.005099e-03
WW116.11 2024-11-19 WW116 2.004497e-03
WW116.12 2024-12-19 WW116 2.010227e-03
WW117.1 2024-01-31 WW117 5.281134e-04
WW117.2 2024-03-02 WW117 5.281134e-04
WW117.3 2024-03-31 WW117 5.281134e-04
WW117.4 2024-05-01 WW117 5.281134e-04
WW117.5 2024-05-31 WW117 5.281134e-04
WW117.6 2024-07-01 WW117 5.281134e-04
WW117.7 2024-07-31 WW117 5.281134e-04
WW117.8 2024-08-31 WW117 5.281134e-04
WW117.9 2024-10-01 WW117 5.281134e-04
WW117.10 2024-10-31 WW117 5.281134e-04
WW117.11 2024-12-01 WW117 5.281134e-04
WW117.12 2024-12-31 WW117 5.281134e-04
WW45.1 2024-01-31 WW45 2.409842e-03
WW45.2 2024-03-02 WW45 2.409842e-03
WW45.3 2024-03-31 WW45 2.409842e-03
WW45.4 2024-05-01 WW45 2.409842e-03
WW45.5 2024-05-31 WW45 2.409842e-03
WW45.6 2024-07-01 WW45 2.409842e-03
WW45.7 2024-07-31 WW45 2.409842e-03
WW45.8 2024-08-31 WW45 2.409842e-03
WW45.9 2024-10-01 WW45 2.409842e-03
WW45.10 2024-10-31 WW45 2.409842e-03
WW45.11 2024-12-01 WW45 2.409842e-03
WW45.12 2024-12-31 WW45 2.409842e-03
WW46.1 2024-01-31 WW46 5.968219e-04
WW46.2 2024-03-02 WW46 5.968219e-04
WW46.3 2024-03-31 WW46 5.968219e-04
WW46.4 2024-05-01 WW46 5.968219e-04
WW46.5 2024-05-31 WW46 5.968219e-04
WW46.6 2024-07-01 WW46 5.968219e-04
WW46.7 2024-07-31 WW46 5.968219e-04
WW46.8 2024-08-31 WW46 5.968219e-04
WW46.9 2024-10-01 WW46 5.968219e-04
WW46.10 2024-10-31 WW46 5.968219e-04
WW46.11 2024-12-01 WW46 5.968219e-04
WW46.12 2024-12-31 WW46 5.968219e-04
WW67.1 2024-01-17 WW67 1.668607e-03
WW67.2 2024-02-17 WW67 1.668607e-03
WW67.3 2024-03-17 WW67 1.668607e-03
WW67.4 2024-04-17 WW67 1.668607e-03
WW67.5 2024-05-17 WW67 1.668607e-03
WW67.6 2024-06-17 WW67 1.668607e-03
WW67.7 2024-07-17 WW67 1.668607e-03
WW67.8 2024-08-17 WW67 1.668607e-03
WW67.9 2024-09-17 WW67 1.668607e-03
WW67.10 2024-10-17 WW67 1.668607e-03
WW67.11 2024-11-17 WW67 1.668607e-03
WW67.12 2024-12-17 WW67 1.668607e-03
WW83.1 2024-01-17 WW83 9.132098e-04
WW83.2 2024-02-17 WW83 9.132098e-04
WW83.3 2024-03-17 WW83 9.132098e-04
WW83.4 2024-04-17 WW83 9.132098e-04
WW83.5 2024-05-17 WW83 9.132098e-04
WW83.6 2024-06-17 WW83 9.132098e-04
WW83.7 2024-07-17 WW83 9.132098e-04
WW83.8 2024-08-17 WW83 9.132098e-04
WW83.9 2024-09-17 WW83 9.132098e-04
WW83.10 2024-10-17 WW83 9.132098e-04
WW83.11 2024-11-17 WW83 9.132098e-04
WW83.12 2024-12-17 WW83 9.132098e-04
WW84.1 2024-01-19 WW84 8.955214e-04
WW84.2 2024-02-19 WW84 1.068130e-03
WW84.3 2024-03-19 WW84 1.167875e-03
WW84.4 2024-04-19 WW84 1.225514e-03
WW84.5 2024-05-19 WW84 1.258822e-03
WW84.6 2024-06-19 WW84 1.278069e-03
WW84.7 2024-07-19 WW84 1.289192e-03
WW84.8 2024-08-19 WW84 1.295619e-03
WW84.9 2024-09-19 WW84 1.299333e-03
WW84.10 2024-10-19 WW84 1.301479e-03
WW84.11 2024-11-19 WW84 1.302720e-03
WW84.12 2024-12-19 WW84 1.303436e-03
WW49.1 2021-12-09 WW49 6.123498e-04
WW49.2 2022-01-09 WW49 6.149431e-04
WW49.3 2022-02-09 WW49 6.137112e-04
WW49.4 2022-03-09 WW49 6.142964e-04
WW49.5 2022-04-09 WW49 6.140184e-04
WW49.6 2022-05-09 WW49 6.141504e-04
WW49.7 2022-06-09 WW49 6.140877e-04
WW49.8 2022-07-09 WW49 6.141175e-04
WW49.9 2022-08-09 WW49 6.141034e-04
WW49.10 2022-09-09 WW49 6.141101e-04
WW49.11 2022-10-09 WW49 6.141069e-04
WW49.12 2022-11-09 WW49 6.141084e-04
WW85.1 2021-01-15 WW85 1.891206e-03
WW85.2 2021-02-15 WW85 1.891206e-03
WW85.3 2021-03-15 WW85 1.891206e-03
WW85.4 2021-04-15 WW85 1.891206e-03
WW85.5 2021-05-15 WW85 1.891206e-03
WW85.6 2021-06-15 WW85 1.891206e-03
WW85.7 2021-07-15 WW85 1.891206e-03
WW85.8 2021-08-15 WW85 1.891206e-03
WW85.9 2021-09-15 WW85 1.891206e-03
WW85.10 2021-10-15 WW85 1.891206e-03
WW85.11 2021-11-15 WW85 1.891206e-03
WW85.12 2021-12-15 WW85 1.891206e-03
WW105.1 2020-03-06 WW105 -9.068772e-04
WW105.2 2020-04-06 WW105 1.474334e-03
WW105.3 2020-05-06 WW105 -6.105134e-05
WW105.4 2020-06-06 WW105 9.289521e-04
WW105.5 2020-07-06 WW105 2.906061e-04
WW105.6 2020-08-06 WW105 7.022063e-04
WW105.7 2020-09-06 WW105 4.368099e-04
WW105.8 2020-10-06 WW105 6.079353e-04
WW105.9 2020-11-06 WW105 4.975951e-04
WW105.10 2020-12-06 WW105 5.687415e-04
WW105.11 2021-01-06 WW105 5.228669e-04
WW105.12 2021-02-06 WW105 5.524465e-04
WW50.1 2024-01-17 WW50 2.406980e-03
WW50.2 2024-02-17 WW50 2.406980e-03
WW50.3 2024-03-17 WW50 2.406980e-03
WW50.4 2024-04-17 WW50 2.406980e-03
WW50.5 2024-05-17 WW50 2.406980e-03
WW50.6 2024-06-17 WW50 2.406980e-03
WW50.7 2024-07-17 WW50 2.406980e-03
WW50.8 2024-08-17 WW50 2.406980e-03
WW50.9 2024-09-17 WW50 2.406980e-03
WW50.10 2024-10-17 WW50 2.406980e-03
WW50.11 2024-11-17 WW50 2.406980e-03
WW50.12 2024-12-17 WW50 2.406980e-03
WW69.1 2024-01-31 WW69 4.584104e-04
WW69.2 2024-03-02 WW69 4.584104e-04
WW69.3 2024-03-31 WW69 4.584104e-04
WW69.4 2024-05-01 WW69 4.584104e-04
WW69.5 2024-05-31 WW69 4.584104e-04
WW69.6 2024-07-01 WW69 4.584104e-04
WW69.7 2024-07-31 WW69 4.584104e-04
WW69.8 2024-08-31 WW69 4.584104e-04
WW69.9 2024-10-01 WW69 4.584104e-04
WW69.10 2024-10-31 WW69 4.584104e-04
WW69.11 2024-12-01 WW69 4.584104e-04
WW69.12 2024-12-31 WW69 4.584104e-04
WW86.1 2021-12-15 WW86 1.282217e-03
WW86.2 2022-01-15 WW86 1.282217e-03
WW86.3 2022-02-15 WW86 1.282217e-03
WW86.4 2022-03-15 WW86 1.282217e-03
WW86.5 2022-04-15 WW86 1.282217e-03
WW86.6 2022-05-15 WW86 1.282217e-03
WW86.7 2022-06-15 WW86 1.282217e-03
WW86.8 2022-07-15 WW86 1.282217e-03
WW86.9 2022-08-15 WW86 1.282217e-03
WW86.10 2022-09-15 WW86 1.282217e-03
WW86.11 2022-10-15 WW86 1.282217e-03
WW86.12 2022-11-15 WW86 1.282217e-03
WW87.1 2021-12-15 WW87 1.032996e-03
WW87.2 2022-01-15 WW87 1.091785e-03
WW87.3 2022-02-15 WW87 1.128774e-03
WW87.4 2022-03-15 WW87 1.152047e-03
WW87.5 2022-04-15 WW87 1.166690e-03
WW87.6 2022-05-15 WW87 1.175903e-03
WW87.7 2022-06-15 WW87 1.181699e-03
WW87.8 2022-07-15 WW87 1.185347e-03
WW87.9 2022-08-15 WW87 1.187641e-03
WW87.10 2022-09-15 WW87 1.189085e-03
WW87.11 2022-10-15 WW87 1.189994e-03
WW87.12 2022-11-15 WW87 1.190565e-03
WW88.1 2021-12-08 WW88 7.591281e-04
WW88.2 2022-01-08 WW88 7.591281e-04
WW88.3 2022-02-08 WW88 7.591281e-04
WW88.4 2022-03-08 WW88 7.591281e-04
WW88.5 2022-04-08 WW88 7.591281e-04
WW88.6 2022-05-08 WW88 7.591281e-04
WW88.7 2022-06-08 WW88 7.591281e-04
WW88.8 2022-07-08 WW88 7.591281e-04
WW88.9 2022-08-08 WW88 7.591281e-04
WW88.10 2022-09-08 WW88 7.591281e-04
WW88.11 2022-10-08 WW88 7.591281e-04
WW88.12 2022-11-08 WW88 7.591281e-04
WW89.1 2023-01-13 WW89 5.242810e-04
WW89.2 2023-02-13 WW89 5.242810e-04
WW89.3 2023-03-13 WW89 5.242810e-04
WW89.4 2023-04-13 WW89 5.242810e-04
WW89.5 2023-05-13 WW89 5.242810e-04
WW89.6 2023-06-13 WW89 5.242810e-04
WW89.7 2023-07-13 WW89 5.242810e-04
WW89.8 2023-08-13 WW89 5.242810e-04
WW89.9 2023-09-13 WW89 5.242810e-04
WW89.10 2023-10-13 WW89 5.242810e-04
WW89.11 2023-11-13 WW89 5.242810e-04
WW89.12 2023-12-13 WW89 5.242810e-04
WW92.1 2024-01-31 WW92 5.395845e-04
WW92.2 2024-03-02 WW92 6.984537e-04
WW92.3 2024-03-31 WW92 1.035093e-03
WW92.4 2024-05-01 WW92 6.534932e-04
WW92.5 2024-05-31 WW92 5.046099e-04
WW92.6 2024-07-01 WW92 4.896204e-04
WW92.7 2024-07-31 WW92 -3.615299e-05
WW92.8 2024-08-31 WW92 3.676976e-04
WW92.9 2024-10-01 WW92 4.166684e-04
WW92.10 2024-10-31 WW92 4.166684e-04
WW92.11 2024-12-01 WW92 4.166684e-04
WW92.12 2024-12-31 WW92 4.166684e-04
WW106.1 2021-12-15 WW106 1.031374e-03
WW106.2 2022-01-15 WW106 1.526478e-04
WW106.3 2022-02-15 WW106 -6.748590e-04
WW106.4 2022-03-15 WW106 3.024853e-04
WW106.5 2022-04-15 WW106 1.726275e-04
WW106.6 2022-05-15 WW106 -1.319843e-05
WW106.7 2022-06-15 WW106 6.420337e-04
WW106.8 2022-07-15 WW106 6.772999e-05
WW106.9 2022-08-15 WW106 3.324501e-04
WW106.10 2022-09-15 WW106 6.020928e-04
WW106.11 2022-10-15 WW106 5.421785e-04
WW106.12 2022-11-15 WW106 6.473276e-05
WW70.1 2021-12-15 WW70 8.355146e-04
WW70.2 2022-01-15 WW70 8.545884e-04
WW70.3 2022-02-15 WW70 8.609916e-04
WW70.4 2022-03-15 WW70 8.631411e-04
WW70.5 2022-04-15 WW70 8.638627e-04
WW70.6 2022-05-15 WW70 8.641050e-04
WW70.7 2022-06-15 WW70 8.641863e-04
WW70.8 2022-07-15 WW70 8.642136e-04
WW70.9 2022-08-15 WW70 8.642227e-04
WW70.10 2022-09-15 WW70 8.642258e-04
WW70.11 2022-10-15 WW70 8.642269e-04
WW70.12 2022-11-15 WW70 8.642272e-04
WW156.1 2024-01-31 WW156 4.658684e-04
WW156.2 2024-03-02 WW156 4.658684e-04
WW156.3 2024-03-31 WW156 4.658684e-04
WW156.4 2024-05-01 WW156 4.658684e-04
WW156.5 2024-05-31 WW156 4.658684e-04
WW156.6 2024-07-01 WW156 4.658684e-04
WW156.7 2024-07-31 WW156 4.658684e-04
WW156.8 2024-08-31 WW156 4.658684e-04
WW156.9 2024-10-01 WW156 4.658684e-04
WW156.10 2024-10-31 WW156 4.658684e-04
WW156.11 2024-12-01 WW156 4.658684e-04
WW156.12 2024-12-31 WW156 4.658684e-04
WW178.1 2024-01-31 WW178 5.849769e-04
WW178.2 2024-03-02 WW178 5.849769e-04
WW178.3 2024-03-31 WW178 5.849769e-04
WW178.4 2024-05-01 WW178 5.849769e-04
WW178.5 2024-05-31 WW178 5.849769e-04
WW178.6 2024-07-01 WW178 5.849769e-04
WW178.7 2024-07-31 WW178 5.849769e-04
WW178.8 2024-08-31 WW178 5.849769e-04
WW178.9 2024-10-01 WW178 5.849769e-04
WW178.10 2024-10-31 WW178 5.849769e-04
WW178.11 2024-12-01 WW178 5.849769e-04
WW178.12 2024-12-31 WW178 5.849769e-04
WW180.1 2020-03-04 WW180 6.726234e-04
WW180.2 2020-04-04 WW180 6.726234e-04
WW180.3 2020-05-04 WW180 6.726234e-04
WW180.4 2020-06-04 WW180 6.726234e-04
WW180.5 2020-07-04 WW180 6.726234e-04
WW180.6 2020-08-04 WW180 6.726234e-04
WW180.7 2020-09-04 WW180 6.726234e-04
WW180.8 2020-10-04 WW180 6.726234e-04
WW180.9 2020-11-04 WW180 6.726234e-04
WW180.10 2020-12-04 WW180 6.726234e-04
WW180.11 2021-01-04 WW180 6.726234e-04
WW180.12 2021-02-04 WW180 6.726234e-04
WW181.1 2024-02-02 WW181 6.998357e-04
WW181.2 2024-03-02 WW181 6.998357e-04
WW181.3 2024-04-02 WW181 6.998357e-04
WW181.4 2024-05-02 WW181 6.998357e-04
WW181.5 2024-06-02 WW181 6.998357e-04
WW181.6 2024-07-02 WW181 6.998357e-04
WW181.7 2024-08-02 WW181 6.998357e-04
WW181.8 2024-09-02 WW181 6.998357e-04
WW181.9 2024-10-02 WW181 6.998357e-04
WW181.10 2024-11-02 WW181 6.998357e-04
WW181.11 2024-12-02 WW181 6.998357e-04
WW181.12 2025-01-02 WW181 6.998357e-04
WW188.1 2020-03-06 WW188 7.000087e-04
WW188.2 2020-04-06 WW188 7.000087e-04
WW188.3 2020-05-06 WW188 7.000087e-04
WW188.4 2020-06-06 WW188 7.000087e-04
WW188.5 2020-07-06 WW188 7.000087e-04
WW188.6 2020-08-06 WW188 7.000087e-04
WW188.7 2020-09-06 WW188 7.000087e-04
WW188.8 2020-10-06 WW188 7.000087e-04
WW188.9 2020-11-06 WW188 7.000087e-04
WW188.10 2020-12-06 WW188 7.000087e-04
WW188.11 2021-01-06 WW188 7.000087e-04
WW188.12 2021-02-06 WW188 7.000087e-04