MILHDBK1823
POD software version history
Current version is mh1823_v5.2.1
(18 September, 2016)
mh1823POD version 5 was a major update to run on both Windows and
Macs. See notes.
Windows users, click
here:
Mac users, click
here:
Version History:
Changes in Version 5.2.1 from v4.4.2 (18
September, 2016)  Modified code to run on Windows and nonWindows machines.
 Created ancillary code to check of OS, and use X11 menus for nonWindows.
 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:
 23 June, 2014 v4.4.2 Changed .version to version in establish.version(),
 20 June, 2016 v4.4.1 Cleaned up mh1823Menu spaghetti code so can revert from Workshop menu without crashing X64.
 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().
 10 October, 2015 v4.3.1 removed superflous routine. Corrected draw.Cartesian.GLM.grid(): removed double 0.1 in logistic probs
 24 September, 2015 v4.2.8 from v4.2.7 changed load.addendum() to first run addendum::remove.old.session.values() This forces compatibility with new addendum F/C capabilities.
 16 February 2015 v2.4.7 from v2.4.6 Updated R library packages.
 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])"
 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]) ...)
 Internal cosmetics  corrected spelling from estimate.POD.parmeters() to estimate.POD.parameters()
 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 illbehaved binaryresponse data.
This required a rewrite 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:)

This new version has improved stability and faster execution, especially for illbehaved binaryresponse data. This required a rewrite 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.

Fixed a bug in the â vs. a noise evaluation routine for computing Noise vs.
â decision tradeoff. Prior version (4.01) would not produce an output.
Changes in Version 4 from v3.1.4 (30 September, 2013) are extensive:

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 MILHDBK1823A criteria (critical.POD = 0.9, confidence = 95%,
critical size, a90/95). The selection is made from the mh1823 menu.

I completely rewrote 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, pointbypoint, 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.)

Version 4 uses the GLM (beta.0, beta.1) parameterization. Rather than interrogate the loglikelihood surface
pointbypoint 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.

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.

Earlier software versions used separate logic for each of the 4 link functions, logit, probit,
complementaryloglog, and loglog). Updated code uses a generic link.fn and
invlink.fn which are
defined when the link function is selected by the user.

Fixed an annoying glitch in ellipse.fn that would return an
error message, but otherwise had no effect.

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.
Changes in mh1823 version 3.1.4 from 3.1.2
(08 April, 2013)
 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)
 Added loglikelihood ratio contours to the GLM parameterization of the LLR plot.
 Correct misplotted a.90.95 point on loglikelihood surface, glm parameterization. This is a cosmetic change only.
 Added code to check for obvious need for POD ceiling and write warning on plot.
 Rewrote read.noise to accept .csv, .xls, and .xlsx files. All must have a header.
Changes in version 3.1 from 3.0 (8 August 2011)
 Combined new read.csv.hit.miss.data, read.csv.a.hat.vs.a.data,
read.xls.hit.miss.data, and read.xls.a.hat.vs.a.data into
read.csv.xlsx.data relying on logical CSV and response (either "hit.miss" or "a.hat")
 Completely rewrote read.csv.hit.miss.data, read.csv.a.hat.vs.a.data,
read.xls.hit.miss.data, and read.xls.a.hat.vs.a.data to provide
data input error checking and provide better input data summaries.
read.xls.hit.miss.data and read.xls.a.hat.vs.a.data now use xlsx2 which is
must faster than earlier methods for reading xls files.
Created version 3.0 from version 2.5.4.6 (June 2011) Version 3.0
is a major update.
 Now show the Deviance in bold large type on the hit/miss diagnostic plots.
 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)
 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)
 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)
 Fixed file misspecification in routine read.csv.hit.miss.data that under certain conditions caused the routine to hang.
 Fixed calculation for a_{50} for asymmetric link functions.
Changes in version 2.5.4.4 from 2.5.4.2 (6
August, 2010)
 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.
 Removed redundant code that wrote the yaxis label twice
on the log(likelihood ratio) surface plot.
Changes in version 2.5.4.2 from 2.5.4.1 (8
January, 2010)
 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)
 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.
 Removed print.hardcopy, and print.a.hat.vs.a.hardcopy routines. The instructions now print to the screen.
 Made the supporting changes to the dropdown menu.
Changes in version 2.5.4 from 2.5.2 (17 November, 2008)
 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 "â"
correctly and substituted a strange 2character symbol. (This
did not occur in all geographical locales.)
 Corrects incompatibility with versions 2.7.x of R that no
longer supply the filetype 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.
 Adds capability to turn off/on jpg graphics.
 The dropdown menu has added a choice that makes updating to
new mh1823 POD versions easier. Just click on "remove package
mh1823" and follow the directions.
 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)
 Corrected incompatibility with versions 2.7.x of R that no
longer supplies the filetype suffix in savePlot() if ".xls" or
".csv" is part of the filename. This necessitated changes to 26
routines:
 add.individuals.save.GLM.plot
 add.individuals.save.POD.plot
 diagnostic.a.hat.vs.a.plots
 diagnostic.hit.miss.plots
 execute.Cartesian.x.POD.algorithms
 execute.GLM.algorithms
 execute.log.x.POD.algorithms
 execute.POD.algorithms
 fit.and.plot.individual.censored.regressions
 fit.and.plot.individual.POD.models
 plot.all.a.hat.vs.a
 plot.all.Cartesian.x.POD
 plot.all.log.x.POD
 plot.choices
 Plot.loglikelihood.surface.glm.parameterization.setup
 Plot.loglikelihood.surface.setup
 plot.noise.analysis
 plot.noise.cdfs
 plot.noise.censored.regression
 plot.noise.vs.size
 plot.threshold.tradeoff
 solo.plot.exponential.noise
 solo.plot.Gaussian.noise
 solo.plot.lognormal.noise
 solo.plot.noise
 solo.plot.Weibull.noise
 Changed "mh1823Menu" to use ASCII character for "a.hat".
 Improved arrowhead renderings ("arrowhead") in routine
"plot.threshold.tradeoff".
 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)
 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.
 Updated splash screen to acknowledge version 2.5.1.
Changes in version 2.5 from 2.4.4 (25 December, 2007)
 Fixed double bookkeeping of repeated measures in function
compute.a.90.etc. that caused the (2 mil) discrepancy in the two
a_{90/95} values in figures G27 and G28.
 Fixed difficulties in reading exogenous â noise data, which
must be in column 1 on "Sheet1" if the input uses an
Excel format.
 Allowed for readin noise to contain NA for leftcensored
observations.
 Restricted use of column 1 in input datasets to row
identification only; column 1 cannot be used for either size or
response.
 Updated splash screen to acknowledge version 2.5
 Removed the cause of an annoying but harmless recurring error
message associated with plotting noise data.
 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)
 Corrected misspelling of David Forsyth.
 Corrected typo: "plot.noise.analyis" to "plot.noise.analysis"
that had caused "could not find function" error.
 Updated disclaimer.
Version 2.4.3 was submitted to the U.S. Air Force on
28 February, 2007 with the DRAFT of MILHDBK1823.
Click here to return to the Background page, or
here to return to
the mh1823 home page.