Simulates fake O-ring thermal distress data for Challenger Space Shuttle launches at different launch temperatures. The simulated data are based on a linear logistic regression model fitted to the real data from the 23 (pre-disaster) launches.
Arguments
- n_sim
A integer scalar. The number of fake datasets to simulate.
- temperature
A numeric vector of launch temperatures.
If
temperatureis not supplied then the 23 launch temperatures from the real dataset are used.If
temperatureis supplied then it must be a vector of length one (i.e. a scalar). In this eventn_simgives the number of simulated numbers of damaged O-rings at launch temperaturetemperature. Iftemperaturehas length greater than one then only the first element oftemperatureis used and a warning is given.
Value
The output depends on whether or not temperature is supplied by
the user.
If temperature is supplied then shuttle_sim
returns a dataframe with 2 + n_sim columns.
Column 1 contains the launch temperatures, column 2 contains the numbers
of distressed O-rings in the real data and columns 3 to
2 + n_sim the n_sim simulated datasets.
If temperature is not supplied then shuttle_sim
returns a vector of length n_sim.
Details
The data are simulated from a linear logistic regression model
fitted to the real (pre-disaster) O-ring distress and launch
temperature data. For a given launch temperature \(t\) this model
provides an estimate, \(\hat{p}(t)\) say, of the probability that an
O-ring suffers thermal distress. Then the number of the 6 O-rings
that suffers from thermal distress is simulated from a
binomial(6, \(\hat{p}(t)\)) distribution, under an assumption that
the fates of the O-rings are independent. This is repeated for each of
the launch temperatures in temperatures.
For further details see the
Challenger Space Shuttle Disaster
vignette.
See also
The Challenger Space Shuttle Disaster vignette.
shuttle_sim_plot for assessing uncertainty concerning
the modelling of the space shuttle data using simulation.
Examples
# Simulate 10 fake datasets of size 23, using the real temperatures.
res <- shuttle_sim(n_sim = 10)
res
#> temps real sim1 sim2 sim3 sim4 sim5 sim6 sim7 sim8 sim9 sim10
#> 1 66 0 1 0 0 1 0 0 1 1 0 0
#> 2 70 1 1 0 0 0 0 0 1 0 0 1
#> 3 69 0 0 1 0 0 3 0 0 0 0 0
#> 4 68 0 0 1 1 0 0 0 0 0 0 1
#> 5 67 0 0 0 1 0 0 0 1 0 0 1
#> 6 72 0 0 0 0 0 0 0 0 0 0 0
#> 7 73 0 0 0 0 1 0 1 0 0 0 0
#> 8 70 0 0 0 0 1 0 0 0 1 1 1
#> 9 57 1 3 0 1 1 1 0 4 1 1 1
#> 10 63 1 1 3 0 0 0 0 0 3 1 2
#> 11 70 1 0 0 1 0 0 1 0 0 1 0
#> 12 78 0 0 0 1 0 0 0 0 0 0 0
#> 13 67 0 0 0 0 1 1 2 3 1 1 0
#> 14 53 3 4 2 4 3 1 2 3 4 1 2
#> 15 67 0 0 0 0 2 0 1 0 1 0 0
#> 16 75 0 0 0 0 0 0 0 0 0 0 0
#> 17 70 0 0 0 0 0 0 0 0 0 0 0
#> 18 81 0 0 0 0 0 0 0 0 0 0 0
#> 19 76 0 0 0 0 0 1 1 0 0 0 0
#> 20 79 0 1 0 0 0 0 0 0 1 0 0
#> 21 75 2 0 0 1 0 0 0 0 1 0 0
#> 22 76 0 0 1 0 0 0 0 0 0 0 0
#> 23 58 1 1 2 2 2 1 0 2 1 0 1
# Simulate the number of distressed O-rings for 1000 launches at 31 deg F.
res <- shuttle_sim(n_sim = 1000, temperature = 31)
res[1:100]
#> [1] 5 4 6 6 4 5 5 6 6 4 6 6 6 6 6 6 6 6 6 6 5 6 6 6 4 6 6 6 6 5 6 6 5 6 5 6 6
#> [38] 6 5 5 4 6 5 5 6 6 6 5 5 6 5 6 6 6 5 6 6 6 4 5 6 5 5 5 6 6 6 6 6 5 6 6 6 6
#> [75] 4 6 4 5 6 6 6 6 6 6 6 6 5 5 6 4 5 6 6 4 6 6 6 6 6 5
table(res)
#> res
#> 2 3 4 5 6
#> 13 189 1571 7379 13848