mh1823 History
MILHDBK1823
POD software version history
Current version is mh1823_v7.3.0 (01 January 2023)
How to get, install, and use the mh1823 POD Software:
Windows users, click here: Mac users, click here:
Version History:
 v7.3.0 (01 January 2023) was built on R4.2.2 and will run on R>=4.1.1. Changes in R between R4.1.2 and 4.1.3 (specifically changes to survReg routine in the survival package) caused mh1823POD v6.0. 5 to fail because survReg would not return the noise parameter estimates. This version also has added capabilities to export POD vs size plot data to EXCEL or CSV files, and plot residuals for \(\hat{a} \space \textit{vs} \space a\) diagnostic among other changes, including an expanded menu layout. The \(\hat{a} \space \textit{vs} \space a\) noise analysis algorithms have new capabilities.
 December 2022 NOTICE: R4.2.x are compiled using the rtools42, and as with many R changes this results in some annoying quirks that are usually remedied with later revisions of R. An example is the rendering of graphical presentations using bgroup that results in tiny boxes where brackets should be.
 Rebuilt package mh1823POD to be compatible with R4.1.x. With R4.1.x the .First() function has been hardwired to refer to user profiles, and thus no longer can be defined by an individual package like mh1823. That means mh1823POD v6.0.4 will only run on R3.0.0 < R < R.4.1.x and mh1823POD v6.0.5 will only run on R >= R.4.1.1.
 v.6.04 27 June 2020, Spelling corrections.
 v.6.03 23 June 2020, compiled on R4.0.2. v.6.01, compiled on R4.0.0, worked on R4.0.0 but would not load on R4.01 due to a problem with TclTk. That problem also prevented several other R packages, including Rcmndr, from loading.
 v.5.5.x 27 April 2020, Requires R4.0.0 or greater. Corrected some ‘possible errors’ in function calls. removed unused, obsolete functions:plot.GLM.log.LR.tolerance.bounds(), plot.POD.Cartesian.LR.tolerance.bounds(), plot.POD.log.x.LR.tolerance.bounds(),plot.repeated.measures.GLMs(). Added print of EPRI criterion when changed. Added plotting of ahat regression loglikelihood surface. Cleaned up TclTkMenu which had become an unmanageable kluge.
 v5.4.5 15 May 2018, Version R3.5.0 now has a locked binding for “.Date” necessitating a change to the mh1823 routine “establish.version()” which used it for the mh1823 version date.
 v5.4.4 02 January 2018, Updated website info to StatisticalEngineering.com (The nonhyphenated version is still functional.) Made cosmetic changes to Workshop Addendum software.
 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.4.1 Added TclTk preface that allows Windows menu access upon loading. New splash screen for Apple and Lunix users.
 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
 v.5.3.4 21 Feb, 2017 installed stop load of addentum if(!exists(“STOP.LOAD.WORKSHOP”))
 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.5 discard, v5.2.6 omitted.
 v5.2.4 13 October, compiled on HPUbuntu
 v5.2.3 5 October, added savePlot2 to TckTl menu. Employed tk_choose.files() for TclTk menu
 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 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 \(\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:
 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.fnwhich 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.
 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)
 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.0is 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 “\(\hat a\)” 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 \(\hat a\) 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.
To return to the MILHDBK1823A background page, click here.