Introduction

You are tasked with a statistical consult. The consult is real, involves a true life situation, and uses actual data. The consult concerns a very large company that is active in the South of the United States. They are about to start an extremely important project costing over $ 450 million (US dollars). As is customary, you will be working under a double blind policy. The company does not know who you are, and you will not know which company you are advising until after your recommendations have been made. This is standard procedure in delicate and sensitive matters, meant to remove emotional and political bias from statistical consults - and protect the consultant from retaliation if the recommendation proves unfavorable for the company.

The project is set to start Monday. A delay will costs millions of dollars, however, moving forward may result in serious workplace incidents - including possible deaths of employees - due to bad weather. Several company engineers are concerned sensitive equipment failures may occur due to an unusual cold spell in the coming weeks. They presented their unquantified concerns of the cold temperature risk in a report to the company leadership. The equipment manufacturers were also consulted and advised the equipment will perform adequately in the cold. The contrasting advise has prompted leadership to direct an internal investigation to quantify this risk.

They compiled data on past incidents under similar weather conditions and performed a statistical analysis. The statistical analysis by the company’s data experts lead to the conclusion that there was no evidence for an association between cold weather and workplace incidents due to equipment failure. Based on this analysis, and the manufacturers’ advice, leadership wishes to move forward with the project. To be absolutely certain that the internal statistical advice was sound, the company has requested a rapid independent audit - supplying the same data - before moving forward or delaying their sensitive operation.

You are hired as a statistical expert, therefore, your foremost goal is to asses the statistical evidence for a relationship between incidents and cold weather. Second, you are requested to provide your assessment of the appropriate decision based on the evidence in the data. You will base your advice on the data and statistical risks of type I and type II errors only. Do not put yourself in the role of the company leadership. You are not an expert on equipment (as the engineers, and manufacturers), or on operational procedures (as the company leadership). Any advice influenced by things other than your expertise risks litigation from the company towards your own organization (a University, or consultancy firm).

Your responsibilities:

  1. Test for a relationship between workplace incidents and temperature, using the most appropriate test.
  2. Predict if the expected incident rate will be significantly greater using the weather forecast compared to normal conditions.
  3. Advise, based on your analysis, whether the company should “delay” or “move forward”.

The key point here is that this is a statistical consult. You must find out if there is a significantly greater risk than normal - and if so - if this increased risk is practically meaningful. If no significant and meaningful increased risk exists then there is no statistical basis for delay. However, If a significant and meaningful increased risk exists then there is a statistical basis for delay: evidence does exist for an real increase in risk compared to the normal risk for daily operations.

Hypotheses and Alpha Level

Hypotheses
  1. H0: Temperature has no effect on expected incident rate compared to normal operating conditions.
  2. HA: Lower temperatures increase the expected incident rate compared to normal operating conditions.

The null hypothesis states that temperature has no effect on the expected incident rate, meaning the regression slope coefficient equals zero (or is not significant) and temperature changes do not predict incident rate changes. The alternative hypothesis proposes that lower temperatures increase the expected incident rate, represented by a negative slope coefficient indicating an inverse relationship (colder conditions = more incidents). This one-tailed test examines whether cold increases risk. Testing involves regression analysis with incident rate as the response variable and temperature as the predictor, examining the p-value for the temperature coefficient.

Alpha Level

As this is a serious decision, you need to be prudent in your advise to the company. This means it may be appropriate to adjust the level of evidence you accept. Here, you should consider the costs of making type I and type II statistical errors.

Type I and Type II error matrix
Type I and Type II error matrix
  • Type I error (\(alpha\)): Several millions lost by company (US$450 million) and future layoffs
    • Concluding that coldspell is dangerous when it actually isn’t –> false positive
    • Deciding to delay the company’s project unnecessarily
  • Type II error (\(beta\)): Serious workplace incidents and even employee deaths
    • Concluding that coldspell is not dangerous when it actually is –> false negative
    • Deciding to move forward despite real danger to employees

Conclusion for statistical test: The consequences of making a Type II error (employee deaths) evidently outweigh those of making a Type I error (financial loss). Given this asymmetric cost scenario, minimizing the probability of missing a true danger (\(beta\)) takes priority over avoiding false alarms (\(alpha\)). This necessitates adopting a more flexible significance threshold and adjusting the critical \(alpha\) level from the conventional P = 0.05 to P = 0.10. This approach prioritizes worker safety over cost considerations, meaning even modest evidence of temperature effects warrants recommending delaying the project.

Data Exploration

Loading Data
setwd("~/OneDrive - Universiteit Leiden/Quantitative Research Skills/Mock Assignments")
incidents <- read.csv("QRS_consult.csv")

Data Overview
# checking structure of the data
str(incidents)
## 'data.frame':    8 obs. of  3 variables:
##  $ date     : chr  "12/11" "03/02" "06/04" "30/08" ...
##  $ temp     : num  70 57 63 70 53.1 ...
##  $ incidents: int  1 1 1 1 2 2 1 3
summary(incidents)
##      date                temp         incidents  
##  Length:8           Min.   :53.06   Min.   :1.0  
##  Class :character   1st Qu.:56.52   1st Qu.:1.0  
##  Mode  :character   Median :60.44   Median :1.0  
##                     Mean   :62.62   Mean   :1.5  
##                     3rd Qu.:69.98   3rd Qu.:2.0  
##                     Max.   :75.02   Max.   :3.0
# observations:
#   - only N = 8 recorded incidents! --> tests have very low statistical power
#   - incidents range 1 - 3 (discrete counts, not continuous rates)

# graphically checking for correlation temperature x incidents and testing assumptions
require(car)
## Loading required package: car
## Loading required package: carData
par(mfrow=c(3,1))
plot(incidents~temp, data=incidents, xlab="Temperature (F)", pch=16, col="blue", ylab="Incidents 
     (count)", main="Effect of Temperature on Incidents") # testing for heteroscadicity
qqPlot(incidents$temp, ylab="temp quantiles", main="QQ-Plot: Temperature") # testing for normality
## [1] 6 5
qqPlot(incidents$incidents, ylab= "incident quantiles", main="QQ-Plot: Incidents") 

## [1] 8 1

Assumptions test results: The QQ-plots reveal violations of normality assumptions required for Pearson correlation. Temperature data shows deviation at the extremes (points 5, 6), while incident data exhibits clear non-normality (point 8 far from the line), expected given the discrete count nature (values 1, 2, 3 only). Spearman’s rank-based approach (non-parametric) is robust to these violations, making no assumptions about data distribution and providing valid inference despite the small sample size and discrete incident counts.


Question 1: Test for a relationship between workplace incidents and temperature

# setting corrected significance threshold
alphaLev <- 0.10

# both heteroscadicity and normality violated so we run a Spearman's rank test
cor.test(incidents$temp, incidents$incidents, method="spearman")
## Warning in cor.test.default(incidents$temp, incidents$incidents, method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  incidents$temp and incidents$incidents
## S = 113.04, p-value = 0.4016
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##        rho 
## -0.3457249

Spearman rank test results: The Spearman correlation test yielded P = 0.4016, exceeding the adjusted threshold of α = 0.10, and therefore resulting in failure to reject the null hypothesis. No statistically significant evidence exists for a temperature-incident relationship. However, absence of significance does not confirm absence of effect, since the sample size of 8 observations provides insufficient power to detect such relationships. The correlation coefficient (rho = -0.345) suggests the possibility of a moderate negative association between temperature and incidents. This pattern could reflect random chance, genuine absence of effect, or a real relationship that the low sample size cannot detect, due to Type II error probability.


Question 2 & 3:

# setting up a simple regression model
inciMod <- lm(incidents~temp, data=incidents)
qqPlot(residuals(inciMod))

## [1] 8 6
summary(inciMod)
## 
## Call:
## lm(formula = incidents ~ temp, data = incidents)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.6491 -0.5244 -0.3040  0.3917  1.2973 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  3.16744    2.28776   1.385    0.215
## temp        -0.02663    0.03627  -0.734    0.490
## 
## Residual standard error: 0.7821 on 6 degrees of freedom
## Multiple R-squared:  0.08244,    Adjusted R-squared:  -0.07048 
## F-statistic: 0.5391 on 1 and 6 DF,  p-value: 0.4905
plot(inciMod, ask=FALSE)

# creating prediction data based on 90% accurate weather forecast days (Fig 1.1)
weather <- seq(20,60,0.5)
meanTemp <- 52 # temperature within this period normally averages 52 degrees (Fig 1.1)
forecast <- data.frame(temp=c(weather))

# calculating confidence and prediction intervals around predicted values
predictionCI <- predict(inciMod, newdata=forecast, interval="confidence", level=0.90)
predictionCI
##         fit          lwr      upr
## 1  2.634863 -0.416283297 5.686009
## 2  2.621548 -0.394917769 5.638014
## 3  2.608234 -0.373565303 5.590033
## 4  2.594920 -0.352226361 5.542066
## 5  2.581605 -0.330901425 5.494112
## 6  2.568291 -0.309591002 5.446173
## 7  2.554977 -0.288295621 5.398249
## 8  2.541662 -0.267015839 5.350340
## 9  2.528348 -0.245752239 5.302448
## 10 2.515033 -0.224505434 5.254572
## 11 2.501719 -0.203276067 5.206714
## 12 2.488405 -0.182064816 5.158874
## 13 2.475090 -0.160872391 5.111053
## 14 2.461776 -0.139699544 5.063252
## 15 2.448462 -0.118547061 5.015470
## 16 2.435147 -0.097415775 4.967710
## 17 2.421833 -0.076306563 4.919972
## 18 2.408519 -0.055220350 4.872258
## 19 2.395204 -0.034158113 4.824567
## 20 2.381890 -0.013120884 4.776901
## 21 2.368576  0.007890244 4.729261
## 22 2.355261  0.028874118 4.681648
## 23 2.341947  0.049829512 4.634064
## 24 2.328632  0.070755131 4.586510
## 25 2.315318  0.091649599 4.538987
## 26 2.302004  0.112511456 4.491496
## 27 2.288689  0.133339150 4.444040
## 28 2.275375  0.154131032 4.396619
## 29 2.262061  0.174885346 4.349236
## 30 2.248746  0.195600223 4.301892
## 31 2.235432  0.216273668 4.254590
## 32 2.222118  0.236903553 4.207332
## 33 2.208803  0.257487605 4.160119
## 34 2.195489  0.278023394 4.112954
## 35 2.182174  0.298508316 4.065841
## 36 2.168860  0.318939585 4.018781
## 37 2.155546  0.339314210 3.971777
## 38 2.142231  0.359628978 3.924834
## 39 2.128917  0.379880438 3.877954
## 40 2.115603  0.400064873 3.831141
## 41 2.102288  0.420178279 3.784398
## 42 2.088974  0.440216336 3.737732
## 43 2.075660  0.460174377 3.691145
## 44 2.062345  0.480047354 3.644643
## 45 2.049031  0.499829800 3.598232
## 46 2.035717  0.519515787 3.551917
## 47 2.022402  0.539098877 3.505705
## 48 2.009088  0.558572069 3.459604
## 49 1.995773  0.577927739 3.413619
## 50 1.982459  0.597157571 3.367761
## 51 1.969145  0.616252485 3.322037
## 52 1.955830  0.635202547 3.276458
## 53 1.942516  0.653996877 3.231035
## 54 1.929202  0.672623536 3.185780
## 55 1.915887  0.691069407 3.140705
## 56 1.902573  0.709320053 3.095826
## 57 1.889259  0.727359564 3.051158
## 58 1.875944  0.745170376 3.006718
## 59 1.862630  0.762733075 2.962527
## 60 1.849316  0.780026165 2.918605
## 61 1.836001  0.797025820 2.874976
## 62 1.822687  0.813705591 2.831668
## 63 1.809372  0.830036086 2.788709
## 64 1.796058  0.845984609 2.746132
## 65 1.782744  0.861514761 2.703973
## 66 1.769429  0.876585991 2.662273
## 67 1.756115  0.891153117 2.621077
## 68 1.742801  0.905165800 2.580435
## 69 1.729486  0.918567983 2.540405
## 70 1.716172  0.931297323 2.501047
## 71 1.702858  0.943284606 2.462431
## 72 1.689543  0.954453204 2.424633
## 73 1.676229  0.964718600 2.387739
## 74 1.662914  0.973988045 2.351841
## 75 1.649600  0.982160434 2.317040
## 76 1.636286  0.989126485 2.283445
## 77 1.622971  0.994769355 2.251173
## 78 1.609657  0.998965806 2.220348
## 79 1.596343  1.001588069 2.191097
## 80 1.583028  1.002506485 2.163550
## 81 1.569714  1.001592981 2.137835
predictionPI <- predict(inciMod, newdata=forecast, interval="prediction", level=0.90)
predictionPI
##         fit          lwr      upr
## 1  2.634863 -0.773840739 6.043566
## 2  2.621548 -0.756148363 5.999245
## 3  2.608234 -0.738539720 5.955008
## 4  2.594920 -0.721017150 5.910856
## 5  2.581605 -0.703583079 5.866794
## 6  2.568291 -0.686240014 5.822822
## 7  2.554977 -0.668990552 5.778944
## 8  2.541662 -0.651837381 5.735162
## 9  2.528348 -0.634783281 5.691479
## 10 2.515033 -0.617831136 5.647898
## 11 2.501719 -0.600983928 5.604422
## 12 2.488405 -0.584244747 5.561054
## 13 2.475090 -0.567616796 5.517798
## 14 2.461776 -0.551103389 5.474655
## 15 2.448462 -0.534707963 5.431631
## 16 2.435147 -0.518434077 5.388729
## 17 2.421833 -0.502285423 5.345951
## 18 2.408519 -0.486265822 5.303303
## 19 2.395204 -0.470379240 5.260788
## 20 2.381890 -0.454629783 5.218410
## 21 2.368576 -0.439021710 5.176173
## 22 2.355261 -0.423559436 5.134082
## 23 2.341947 -0.408247537 5.092141
## 24 2.328632 -0.393090759 5.050356
## 25 2.315318 -0.378094020 5.008730
## 26 2.302004 -0.363262421 4.967270
## 27 2.288689 -0.348601249 4.925980
## 28 2.275375 -0.334115985 4.884866
## 29 2.262061 -0.319812310 4.843934
## 30 2.248746 -0.305696116 4.803189
## 31 2.235432 -0.291773507 4.762637
## 32 2.222118 -0.278050809 4.722286
## 33 2.208803 -0.264534579 4.682141
## 34 2.195489 -0.251231609 4.642209
## 35 2.182174 -0.238148935 4.602498
## 36 2.168860 -0.225293844 4.563014
## 37 2.155546 -0.212673879 4.523765
## 38 2.142231 -0.200296851 4.484760
## 39 2.128917 -0.188170841 4.446005
## 40 2.115603 -0.176304207 4.407510
## 41 2.102288 -0.164705592 4.369282
## 42 2.088974 -0.153383931 4.331332
## 43 2.075660 -0.142348450 4.293668
## 44 2.062345 -0.131608680 4.256299
## 45 2.049031 -0.121174453 4.219236
## 46 2.035717 -0.111055909 4.182489
## 47 2.022402 -0.101263498 4.146068
## 48 2.009088 -0.091807981 4.109984
## 49 1.995773 -0.082700429 4.074247
## 50 1.982459 -0.073952227 4.038870
## 51 1.969145 -0.065575061 4.003865
## 52 1.955830 -0.057580926 3.969242
## 53 1.942516 -0.049982109 3.935014
## 54 1.929202 -0.042791188 3.901195
## 55 1.915887 -0.036021018 3.867796
## 56 1.902573 -0.029684718 3.834831
## 57 1.889259 -0.023795661 3.802313
## 58 1.875944 -0.018367446 3.770256
## 59 1.862630 -0.013413887 3.738674
## 60 1.849316 -0.008948981 3.707580
## 61 1.836001 -0.004986886 3.676989
## 62 1.822687 -0.001541888 3.646915
## 63 1.809372  0.001371633 3.617373
## 64 1.796058  0.003739241 3.588377
## 65 1.782744  0.005546484 3.559941
## 66 1.769429  0.006778941 3.532080
## 67 1.756115  0.007422267 3.504808
## 68 1.742801  0.007462247 3.478139
## 69 1.729486  0.006884848 3.452088
## 70 1.716172  0.005676278 3.426668
## 71 1.702858  0.003823047 3.401892
## 72 1.689543  0.001312023 3.377774
## 73 1.676229 -0.001869495 3.354327
## 74 1.662914 -0.005733725 3.331563
## 75 1.649600 -0.010292325 3.309493
## 76 1.636286 -0.015556339 3.288128
## 77 1.622971 -0.021536125 3.267479
## 78 1.609657 -0.028241300 3.247555
## 79 1.596343 -0.035680675 3.228366
## 80 1.583028 -0.043862206 3.209919
## 81 1.569714 -0.052792935 3.192221
# plotting model with confidence and prediction intervals
plot(forecast$temp,predictionCI[,"fit"], type="l", lwd=2, lty=2, ylim=c(-2,5), 
     xlab="Temperature (F)", ylab="Incidents (count)", main="Effect of Temperature on Incidents")
lines(forecast$temp, predictionCI[,"lwr"], lwd=2, lty=3, col="blue")
lines(forecast$temp, predictionCI[,"upr"], lwd=2, lty=3, col="blue")
lines(forecast$temp, predictionPI[,"lwr"], lwd=2, lty=3, col="darkgreen")
lines(forecast$temp, predictionPI[,"upr"], lwd=2, lty=3, col="darkgreen")
abline(v=c(31,52), lwd=2, lty=4, col=c("red","darkred"))

# calculating range of incidents for 31 degrees F (Monday)
predictionCI[which(forecast$temp==31),]
##        fit        lwr        upr 
## 2.34194679 0.04982951 4.63406408
predictionPI[which(forecast$temp==31),]
##        fit        lwr        upr 
##  2.3419468 -0.4082475  5.0921411
# comparing predicted incidents at monday expected temp to under normal conditions
difference <- round(predictionCI[which(forecast$temp==52), "fit"] -
                      predictionCI[which(forecast$temp==31),"fit"],2) 
difference # how different?
## [1] -0.56
comparison <- data.frame(
  temp = forecast$temp,
  fit = predictionCI[, "fit"],
  CI_lower = predictionCI[, "lwr"],
  CI_upper = predictionCI[, "upr"],
  PI_lower = predictionPI[, "lwr"],
  PI_upper = predictionPI[, "upr"]
)
comparison # checking how much CIs overlap to determine whether incidence rate is higher than normal
##    temp      fit     CI_lower CI_upper     PI_lower PI_upper
## 1  20.0 2.634863 -0.416283297 5.686009 -0.773840739 6.043566
## 2  20.5 2.621548 -0.394917769 5.638014 -0.756148363 5.999245
## 3  21.0 2.608234 -0.373565303 5.590033 -0.738539720 5.955008
## 4  21.5 2.594920 -0.352226361 5.542066 -0.721017150 5.910856
## 5  22.0 2.581605 -0.330901425 5.494112 -0.703583079 5.866794
## 6  22.5 2.568291 -0.309591002 5.446173 -0.686240014 5.822822
## 7  23.0 2.554977 -0.288295621 5.398249 -0.668990552 5.778944
## 8  23.5 2.541662 -0.267015839 5.350340 -0.651837381 5.735162
## 9  24.0 2.528348 -0.245752239 5.302448 -0.634783281 5.691479
## 10 24.5 2.515033 -0.224505434 5.254572 -0.617831136 5.647898
## 11 25.0 2.501719 -0.203276067 5.206714 -0.600983928 5.604422
## 12 25.5 2.488405 -0.182064816 5.158874 -0.584244747 5.561054
## 13 26.0 2.475090 -0.160872391 5.111053 -0.567616796 5.517798
## 14 26.5 2.461776 -0.139699544 5.063252 -0.551103389 5.474655
## 15 27.0 2.448462 -0.118547061 5.015470 -0.534707963 5.431631
## 16 27.5 2.435147 -0.097415775 4.967710 -0.518434077 5.388729
## 17 28.0 2.421833 -0.076306563 4.919972 -0.502285423 5.345951
## 18 28.5 2.408519 -0.055220350 4.872258 -0.486265822 5.303303
## 19 29.0 2.395204 -0.034158113 4.824567 -0.470379240 5.260788
## 20 29.5 2.381890 -0.013120884 4.776901 -0.454629783 5.218410
## 21 30.0 2.368576  0.007890244 4.729261 -0.439021710 5.176173
## 22 30.5 2.355261  0.028874118 4.681648 -0.423559436 5.134082
## 23 31.0 2.341947  0.049829512 4.634064 -0.408247537 5.092141
## 24 31.5 2.328632  0.070755131 4.586510 -0.393090759 5.050356
## 25 32.0 2.315318  0.091649599 4.538987 -0.378094020 5.008730
## 26 32.5 2.302004  0.112511456 4.491496 -0.363262421 4.967270
## 27 33.0 2.288689  0.133339150 4.444040 -0.348601249 4.925980
## 28 33.5 2.275375  0.154131032 4.396619 -0.334115985 4.884866
## 29 34.0 2.262061  0.174885346 4.349236 -0.319812310 4.843934
## 30 34.5 2.248746  0.195600223 4.301892 -0.305696116 4.803189
## 31 35.0 2.235432  0.216273668 4.254590 -0.291773507 4.762637
## 32 35.5 2.222118  0.236903553 4.207332 -0.278050809 4.722286
## 33 36.0 2.208803  0.257487605 4.160119 -0.264534579 4.682141
## 34 36.5 2.195489  0.278023394 4.112954 -0.251231609 4.642209
## 35 37.0 2.182174  0.298508316 4.065841 -0.238148935 4.602498
## 36 37.5 2.168860  0.318939585 4.018781 -0.225293844 4.563014
## 37 38.0 2.155546  0.339314210 3.971777 -0.212673879 4.523765
## 38 38.5 2.142231  0.359628978 3.924834 -0.200296851 4.484760
## 39 39.0 2.128917  0.379880438 3.877954 -0.188170841 4.446005
## 40 39.5 2.115603  0.400064873 3.831141 -0.176304207 4.407510
## 41 40.0 2.102288  0.420178279 3.784398 -0.164705592 4.369282
## 42 40.5 2.088974  0.440216336 3.737732 -0.153383931 4.331332
## 43 41.0 2.075660  0.460174377 3.691145 -0.142348450 4.293668
## 44 41.5 2.062345  0.480047354 3.644643 -0.131608680 4.256299
## 45 42.0 2.049031  0.499829800 3.598232 -0.121174453 4.219236
## 46 42.5 2.035717  0.519515787 3.551917 -0.111055909 4.182489
## 47 43.0 2.022402  0.539098877 3.505705 -0.101263498 4.146068
## 48 43.5 2.009088  0.558572069 3.459604 -0.091807981 4.109984
## 49 44.0 1.995773  0.577927739 3.413619 -0.082700429 4.074247
## 50 44.5 1.982459  0.597157571 3.367761 -0.073952227 4.038870
## 51 45.0 1.969145  0.616252485 3.322037 -0.065575061 4.003865
## 52 45.5 1.955830  0.635202547 3.276458 -0.057580926 3.969242
## 53 46.0 1.942516  0.653996877 3.231035 -0.049982109 3.935014
## 54 46.5 1.929202  0.672623536 3.185780 -0.042791188 3.901195
## 55 47.0 1.915887  0.691069407 3.140705 -0.036021018 3.867796
## 56 47.5 1.902573  0.709320053 3.095826 -0.029684718 3.834831
## 57 48.0 1.889259  0.727359564 3.051158 -0.023795661 3.802313
## 58 48.5 1.875944  0.745170376 3.006718 -0.018367446 3.770256
## 59 49.0 1.862630  0.762733075 2.962527 -0.013413887 3.738674
## 60 49.5 1.849316  0.780026165 2.918605 -0.008948981 3.707580
## 61 50.0 1.836001  0.797025820 2.874976 -0.004986886 3.676989
## 62 50.5 1.822687  0.813705591 2.831668 -0.001541888 3.646915
## 63 51.0 1.809372  0.830036086 2.788709  0.001371633 3.617373
## 64 51.5 1.796058  0.845984609 2.746132  0.003739241 3.588377
## 65 52.0 1.782744  0.861514761 2.703973  0.005546484 3.559941
## 66 52.5 1.769429  0.876585991 2.662273  0.006778941 3.532080
## 67 53.0 1.756115  0.891153117 2.621077  0.007422267 3.504808
## 68 53.5 1.742801  0.905165800 2.580435  0.007462247 3.478139
## 69 54.0 1.729486  0.918567983 2.540405  0.006884848 3.452088
## 70 54.5 1.716172  0.931297323 2.501047  0.005676278 3.426668
## 71 55.0 1.702858  0.943284606 2.462431  0.003823047 3.401892
## 72 55.5 1.689543  0.954453204 2.424633  0.001312023 3.377774
## 73 56.0 1.676229  0.964718600 2.387739 -0.001869495 3.354327
## 74 56.5 1.662914  0.973988045 2.351841 -0.005733725 3.331563
## 75 57.0 1.649600  0.982160434 2.317040 -0.010292325 3.309493
## 76 57.5 1.636286  0.989126485 2.283445 -0.015556339 3.288128
## 77 58.0 1.622971  0.994769355 2.251173 -0.021536125 3.267479
## 78 58.5 1.609657  0.998965806 2.220348 -0.028241300 3.247555
## 79 59.0 1.596343  1.001588069 2.191097 -0.035680675 3.228366
## 80 59.5 1.583028  1.002506485 2.163550 -0.043862206 3.209919
## 81 60.0 1.569714  1.001592981 2.137835 -0.052792935 3.192221

Regression test results: The regression model predicts an expected incident count of 2.34 incidents for the project launch on Monday at 31°F (90% CI: 0.05-4.63 incidents). Under normal conditions at 52°F, the model predicts 1.78 incidents (90% CI: 0.86-2.70). The forecasted Monday temperature yields a predicted incident rate approximately 0.56 incidents higher than under normal conditions.

However, the 90% prediction intervals substantially overlapMonday’s interval spans -0.41 to 5.09 incidents while the normal interval ranges from 0.01 to 3.56 incidents — indicating no statistically distinguishable difference between them. This aligns with the regression model’s lack of statistical significance (P = 0.49, well above α = 0.10), though it may reflect the severe limitations of the N = 8 sample size. While the negative correlation (rho = -0.345) may suggest lower temperatures are associated with more incidents, this pattern remains statistically unconfirmed.

Executive Summary

Statistical Assessment of Coldspell Risk on Project Launch

Introduction
This independent statistical audit evaluates whether forecasted cold weather conditions (31°F on Monday launch date) pose significantly elevated workplace incident risk compared to normal operating temperatures (52°F seasonal mean) for a $450 million project.

Statistical test results
Analysis revealed no statistically significant temperature-incident relationship (Spearman rho = -0.345, P = 0.40; regression β = -0.027, P = 0.49). Monday’s 31°F predicts 2.34 incidents (90% PI: -0.41 to 5.09) versus 1.78 incidents (90% PI: 0.01-3.56) at 52°F. The 0.56 incident difference shows substantial interval overlap with no statistical distinction. Monday’s prediction interval upper bound reaches 5.09 incidents, reflecting extreme uncertainty that cannot rule out substantially elevated risk. With only 8 observations, statistical power is severely compromised, creating high Type II error risk.

Critical data flaw: Sampling selection bias The incident log contains a fatal limitation: it records only the 8 temperatures when incidents occurred, excluding all days when operations proceeded incident-free. This sampling selection bias invalidates temperature-incident analysis—we cannot determine whether cold temperatures cause incidents or merely coincided with them. Without knowing incident rates across all operating temperatures, the data cannot distinguish correlation from causation, rendering any safety conclusion statistically meaningless.

Recommendation: DELAY
From a purely statistical perspective, the data provide insufficient evidence to rule out elevated risk given no finding of a statistically significant relationship between temperature and incidents.
However, this does not guarantee that proceeding is safe. The sampling selection bias makes the data unsuitable for safety assessment. Even setting aside this flaw, the extremely wide prediction intervals (Monday’s upper bound: 5.09 incidents) indicate the data cannot support confident safety decisions. Proceeding based on fundamentally biased data with massive uncertainty is unjustifiable—absence of statistical significance reflects data inadequacy, not confirmed safety. Type I error costs millions; Type II error costs lives.