SE_003399  mh1823 logo

"Nondestructive Evaluation System
Reliability Assessment"

mh1823 Site Map

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.


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

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 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 (* 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
  5. 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.
  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 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(! 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( = TRUE, plot.POD = FALSE, CARTESIAN.X) into a simplified code plus, plot.GML.fits(), plot.POD.fits() as required.
  11. 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 ‚ 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:

  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.fn which 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.

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.

Changes in version 3.1 from 3.0 (8 August 2011)

  1. Combined new,,, and into relying on logical CSV and response (either "hit.miss" or "a.hat")
  2. Completely re-wrote,,, and to provide data input error checking and provide better input data summaries. and now use xlsx2 which is must faster than earlier methods for reading xls files.

Created version 3.0 from version (June 2011)  Version 3.0 is 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 from (11 November, 2011)

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

Changes in version from (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 from (12 October, 2010)

  1. Fixed file misspecification in routine that under certain conditions caused the routine to hang.
  2. Fixed calculation for a50 for asymmetric link functions.

Changes in version from (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 from (8 January, 2010)

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

Changes in version 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.
  3. Made the supporting changes to the drop-down menu.

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 "‚" 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
    21. plot.threshold.tradeoff
    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".
  3. Improved arrowhead renderings ("arrowhead") in routine "plot.threshold.tradeoff".
  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 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 function compute.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 ‚ 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.

Version 2.4.3 was submitted to the U.S. Air Force on 28 February, 2007 with the DRAFT of MIL-HDBK-1823.

Click here to return to the Background page, or here to return to the mh1823 home page.