## MIL-HDBK-1823 POD software version history

### How to get, install, and use the mh1823 POD Software:

#### Version History:

• v5.4.3 25 November 2017 (Boston) corrected plot of four possible $$\hat a \text{ vs a}$$ titles which used ASCII $$\hat a$$ incorrectly. Changed TclTk menu color from ‘beige’ to ‘old lace’
• v5.4.2 September, 2017 Corrected FACTOR names being erronously assigned as “hit.miss”
• v.5.3.7 Fixed glitch in load.addendum() Added model.glm$coef, AIC, a50, a90 to individual.summary matrix for individual fits. • v.5.3.6 04 March 2017 removed obsolete “generate.all.plausible.POD.curves” Added AIC calculation to glm summary in generate.all.plausible.POD.curves.0.0() put AIC on POD plot • v.5.3.5 27 Feb, 2017 plot censored points red in plot.a.hat.vs.a.data To read.csv.xlsx.data added left.censor <<- min(size.vs.response.data$a.hat) Created find.binomial.ceiling.R
• v5.3.3 16 Feb 2017, changed draw.diagnostic.POD.Cartesian.x.grid to use max.x = 2*max.x
• v5.3.2 07 Feb 2017, changed interrogate.criterion.contour to use override limits on x.min, x.max for better plotting precision.
• v5.3.0 01 January 2017 Fix Ubuntu load.addendum to avoid error message
• v5.2.7 17 December 2016 TclTk preface
• v5.2.4 13 October, compiled on HP-Ubuntu
• v5.2.2 3 October, 2016 PBG, Increased TclTkMenu width to 160 characters for Linux.
• v5.2.1 19 September, 2016 Boston, retro to earlier versions such that Mac version will run with menus.

Changes in Version 5.2.1 from v4.4.2 (18 September, 2016) – Modified code to run on Windows and non-Windows machines.

1. Created ancillary code to check of OS, and use X11 menus for non-Windows.
2. R3.3.1 now permits Windows to load tarballs (*.tar.ng) as well as *.zip files.  Macs require tarballs.

#### Changes in Version 4.4.2 from v4.4.1 (23 June, 2016) – Mostly houskeeping changes, like:

1. 23 June, 2014 v4.4.2 Changed .version to version in establish.version(),
2. 20 June, 2016 v4.4.1 Cleaned up mh1823Menu spaghetti code so can revert from Workshop menu without crashing X64.
3. 12 June, 2016 v4.4.0 Repackaged due to change in R3.3.0 using “sigma” as stats package routine, thus prohibiting my use as a global variable. Changed “sigma” to “SIGMA” except in calls to bquote() and expression().
4. 10 October, 2015 v4.3.1 removed superflous routine. Corrected draw.Cartesian.GLM.grid(): removed double 0.1 in logistic probs
6. 16 February 2015 v2.4.7 from v2.4.6 Updated R library packages.
7. 3 February 2015, v4.2.6 from v4.2.5 Replaced obsolete draw.POD.log.x.grid() with draw.Napierian.log.x.POD.grid() Removed obsolete OLDmh1823Menu() and verbose.mh1823.menu(). Corrected spelling of “Naperian” to “Napierian.” Cleaned up logic to “criterion <- ifelse(SIMULTANEOUS, criteria[2], criteria[1])”
8. 25 January 2015 Cosmetic fixes to draw.bounds() to avoid printing a.90 and a.90.95 in the upper margin of the GLM and POD plots when they do not exist. (The value is NA which interpreted as centering in a call to mtext().) if(exists(a.90)) if(!is.na(a.90)) mtext(text = expression(a[90]) …)
9. Internal cosmetics – corrected spelling from estimate.POD.parmeters() to estimate.POD.parameters()
10. Broke up kludge routine estimate.POD.parameters(plot.GML.fit = TRUE, plot.POD = FALSE, CARTESIAN.X) into a simplified code plus, plot.GML.fits(), plot.POD.fits() as required.

This new version has improved stability and faster execution, especially for ill-behaved binary-response data.  This required a re-write of the loglikelihood interrogation routines so that most of the interrogation points are located in the region of interest.  You can see this by superimposing the interrogation points on the plot of the loglikelihood surface.

#### Changes in Version 4.2.5 from v4.0.1 (6 October, 2014:)

1. This new version has improved stability and faster execution, especially for ill-behaved binary-response data.  This required a re-write of the loglikelihood interrogation routines so that most of the interrogation points are located in the region of interest.  You can see this by superimposing the interrogation points on the plot of the loglikelihood surface.
2. Fixed a bug in the $$\hat a \text{ vs a}$$ noise evaluation routine for computing Noise vs $$\hat a$$ decision tradeoff.  Prior version (4.01) would not produce an output.

#### Changes in Version 4 from v3.1.4 (30 September, 2013) are extensive:

1. Beginning with version 4 the EPRI criteria (critical POD = 0.8, confidence = 90%, critical size, a80/90) are also available in addition to the Standard MIL-HDBK-1823A criteria (critical.POD = 0.9, confidence = 95%, critical size, a90/95).  The selection is made from the mh1823 menu.
2. I completely re-wrote algorithm for computing POD confidence bounds.  All prior versions were parameterized as a (mu, sigma) pair (the size having 50% POD and the inverse “slope” of the POD vs size curve, respectively) and confidence bounds were found by searching the loglikelihood ratio surface, point-by-point, for smallest and largest sizes at a given POD, consistent with parameter values (mu, sigma) on the 95% confidence contour.There is a computational trap, however, with the (mu, sigma) parameterization: Generalized Linear Model computations use a (beta.0, beta.1) parameterization (intercept and slope of the GLM).  The conversion is mu = -beta.0/beta.1 and sigma = 1/beta.1.  So when beta.1 <  0 (negative GLM slope) the algebraic sign of mu changes, so that plots of the loglikelihood surface in (mu, sigma) are not defined for beta.1 = 0, while in the (beta0, beta.1) parameterization nothing special happens when beta.1 = 0.  That means that interrogating the (mu, sigma) loglikelihood surface is impossible when the sign of sigma can change along the confidence contour.(The (mu, sigma) parameterization was chosen originally because the covariance between mu and sigma is smaller than the covariance between beta.0 and beta.1. You can see this by plotting both loglikelihood surfaces from the menu.)
3. Version 4 uses the GLM (beta.0, beta.1) parameterization.  Rather than interrogate the loglikelihood surface point-by-point for 21 values for POD (0.001 to 0.999), the new logic fits a model to the surface making interpolation possible and producing several hundred points on the confidence isocline rather than 42 (for right and left).  Furthermore the new algorithm can identify the both 90% and 95% confidence contours simultaneously so the new algorithm is both faster and more stable.
4. The confidence bounds on the POD vs size relationship are constructed as the envelope of all feasible POD vs size curves defined by the parameter pairs on loglikelihood ratio confidence contour.  To help the user visualize that relationship, he* can plot representative feasible curves from the menu.
5. Earlier software versions used separate logic for each of the 4 link functions, logit, probit, complementary-loglog, and loglog).  Updated code uses a generic link.fn and invlink.fnwhich are defined when the link function is selected by the user.
6. Fixed an annoying glitch in ellipse.fn that would return an error message, but otherwise had no effect.
7. Added a.hat.decision and a.hat.noise to the list of POD analysis parameters that are plotted on the a.hat. vs a. POD. vs size curve.
• It is Standard English usage to use the masculine pronoun to indicate either gender.  This is much less cumbersome than the politically fashionable, but less grammatically correct, “he/she.”

#### Changes in mh1823 version 3.1.4 from 3.1.2 (08 April, 2013)

1. Rebuilt using R3.0.0.  R version 3.0.0 (03 April, 2012) requires some packages built using earlier versions of R to be rebuilt.  This version of mh1823 is compatible with R3.0

#### Changes in version 3.12 from 3.0.1 (29 January, 2012)

1. Added loglikelihood ratio contours to the GLM parameterization of the LLR plot.
2. Correct misplotted a.90.95 point on loglikelihood surface, glm parameterization.  This is a cosmetic change only.
3. Added code to check for obvious need for POD ceiling and write warning on plot.
4. Rewrote read.noise to accept .csv, .xls, and .xlsx files. All must have a header.

#### Created version 3.0 from version 2.5.4.6 (June 2011)  Version 3.0is a major update.

1. Now show the Deviance in bold large type on the hit/miss diagnostic plots.
2. Created options for Addendum functions available only with the mh1823 POD Short Course & Workshop.

#### Changes in version 2.5.4.7 from 2.5.4.6 (11 November, 2011)

1. Repackaged with a namespace to be compatible with R 2.14.0.

#### Changes in version 2.5.4.6 from 2.5.4.5 (1 November, 2010)

1. Corrected placement of the horizontal gray dashed line at 0.95 which was incorrectly drawn at 0.9 on Gaussian and Lognormal probability plots.  The line has no influence on any analysis and is drawn for reference purposes only.

#### Changes in version 2.5.4.5 from 2.5.4.4 (12 October, 2010)

1. Fixed file misspecification in routine read.csv.hit.miss.data that under certain conditions caused the routine to hang.
2. Fixed calculation for $$a_{50}$$ for asymmetric link functions.

#### Changes in version 2.5.4.4 from 2.5.4.2 (6 August, 2010)

1. Fixed sign error in plotting routine for the Cheng & Iles ellipse that resulted in improper orientation of the comparison ellipse on the log(likelihood ratio) surface plot.
2. Removed redundant code that wrote the y-axis label twice on the log(likelihood ratio) surface plot.

#### Changes in version 2.5.4.2 from 2.5.4.1 (8 January, 2010)

1. Version 2.5.4.2 is a rebuild using R2.10.1, which no longer supports compiled html (chm) help pages.

#### Changes in version 2.5.4.1 from 2.5.4 (25 May, 2009)

1. Removed requirement to use CRAN packages rcom and rscproxy. (rscproxy is a recent requirement of rcom after R2.8.0)  This should make it easier to use the mh1823 POD package on enterprise computers.  These routines were only used to clear the R console screen.
2. Removed print.hardcopy, and print.a.hat.vs.a.hardcopy routines. The instructions now print to the screen.

#### Changes in version 2.5.4 from 2.5.2 (17 November, 2008)

1. Version 2.5.4 is essentially a rebuild (using R2.8.0) of version 2.5.2 (which used R2.7.2). R2.7.x did not treat “$$\hat a$$” correctly and substituted a strange 2-character symbol. (This did not occur in all geographical locales.)
2. Corrects incompatibility with versions 2.7.x of R that no longer supply the file-type suffix in savePlot() if “.xls” or “.csv” is part of the filename and simplifies all related plotting routines. This is a consolidation of the method used in version 2.5.2.
3. Adds capability to turn off/on jpg graphics.
4. The drop-down menu has added a choice that makes updating to new mh1823 POD versions easier. Just click on “remove package mh1823” and follow the directions.
5. According to standard statistical nomenclature, carets (“hats”) have been added to the parameter labels in the loglikelihood surface plots to indicate that they are parameter estimates (rather than the parameters themselves).

#### Changes in version 2.5.2 from 2.5.1 (22 September, 2008)

1. Corrected incompatibility with versions 2.7.x of R that no longer supplies the file-type suffix in savePlot() if “.xls” or “.csv” is part of the filename. This necessitated changes to 26 routines:
3. diagnostic.a.hat.vs.a.plots
4. diagnostic.hit.miss.plots
5. execute.Cartesian.x.POD.algorithms
6. execute.GLM.algorithms
7. execute.log.x.POD.algorithms
8. execute.POD.algorithms
9. fit.and.plot.individual.censored.regressions
10. fit.and.plot.individual.POD.models
11. plot.all.a.hat.vs.a
12. plot.all.Cartesian.x.POD
13. plot.all.log.x.POD
14. plot.choices
15. Plot.loglikelihood.surface.glm.parameterization.setup
16. Plot.loglikelihood.surface.setup
17. plot.noise.analysis
18. plot.noise.cdfs
19. plot.noise.censored.regression
20. plot.noise.vs.size
22. solo.plot.exponential.noise
23. solo.plot.Gaussian.noise
24. solo.plot.lognormal.noise
25. solo.plot.noise
26. solo.plot.Weibull.noise
2. Changed “mh1823Menu” to use ASCII character for “a.hat”.
4. Updated routines “instruction.Notes” “instruction.Notes.a.hat.vs.a” “list.Note” and “mh1823Menu” to new version number.

#### Changes in version 2.5.1 from 2.5 (17 September, 2008)

1. Corrected bug in routine menu.plot.a.hat.vs.a.data that sometimes prevented a.hat vs a menu options 2.3, 2.4, 2.5 from working properly.
2. Updated splash screen to acknowledge version 2.5.1.

#### Changes in version 2.5 from 2.4.4 (25 December, 2007)

1. Fixed double bookkeeping of repeated measures in functioncompute.a.90.etc. that caused the (2 mil) discrepancy in the two a90/95 values in figures G-27 and G-28.
2. Fixed difficulties in reading exogenous $$\hat a$$ noise data, which must be in column 1 on “Sheet1” if the input uses an Excel format.
3. Allowed for read-in noise to contain NA for left-censored observations.
4. Restricted use of column 1 in input datasets to row identification only; column 1 cannot be used for either size or response.
5. Updated splash screen to acknowledge version 2.5
6. Removed the cause of an annoying but harmless recurring error message associated with plotting noise data.
7. Fixed a problem reading CSV input files.

Although these upgrades may seem modest, nevertheless they necessitated changes to 26 of the package’s 154 subroutines.

#### Changes in version 2.4.4 from 2.4.3 (26 October, 2007)

1. Corrected misspelling of David Forsyth.
2. Corrected typo: “plot.noise.analyis” to “plot.noise.analysis” that had caused “could not find function” error.
3. Updated disclaimer.