Skip to content

HSS enhancement, configurable option for statistical calculation #1749

@j-opatz

Description

@j-opatz

Describe the New Feature

In MET, we currently calculate HSS with the following equation:

HSS = ((n_11 + n_00) - C_2) / (T-C_2) --- link here for better written version

Where n_11 is correct hits, n_00 is correct misses, T is the total number of observations, and C_2 is derived from the nxn contingency table.

With the new enhancement, CPC would have a way to control the value of C_2 independent from the contingency table. This stems from their calculation of a HeidkenoEC and HeidkewithEC, which have the following two equations:

HeidkenoEC=(numCorrect - numExpected)/(count - numExpected)

HeidkewithEC=((numCorrect of nonEC fcsts + numCorrect of EC fcsts) - numExpected)/(count - numExpected)

The significant (and impacted) variable from these equations is numExpected, which is defined as count / number of categories. Count is the number of valid fcst-ob pairs (for HeidkewithEC, count is sum of valid EC and non EC fcst-ob pairs).

Based on comment below (#1749 (comment)), @JohnHalleyGotway recommends that we:

  • add a configurable option to Point-Stat and Grid-Stat for setting an HSS C2 value to be used as a number between 0 and 1. When computing the modified HSS, compute C2 as the configurable values * the number of pairs. Be sure let the HSS C2 rate be specified separately for each verification task to enable flexibility.
  • add 2 MCTS output columns to indicate the constant HSS C2 value used (the rate or actual integer?) and the modified HSS value computed.
  • add a configurable option to Series-Analysis to enable the C2 rate to either be set as a constant value between 0 and 1 or as a grid of such values. If the latter, then let the C2 rate vary for each grid point at which the modified HSS is computed.

Acceptance Testing

The dataset to test against will be a POE precipitation for 2-week forecast leads, with a focus on terciles (i.e. 3 categories). These files contain 19 percentile thresholds, with each percentile having its own probability field of exceeding that climatology percentile.
Success of this issue will be determined on the replication of CPC in-house HSS calculations in a medium (values, images, etc) they find most useful.

Time Estimate

Unknown, need more input from engineer/need more project definition

Sub-Issues

Consider breaking the new feature down into sub-issues.
No sub-issues needed.

Relevant Deadlines

List relevant project deadlines here or state NONE.

Funding Source

Define the source of funding and account keys here or state NONE.

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required: John HG
  • Select scientist(s) or no scientist required: John O and Eric

Labels

  • Select component(s)
  • Select priority
  • Select requestor(s)

Projects and Milestone

  • Review projects and select relevant Repository and Organization ones or add "alert:NEED PROJECT ASSIGNMENT" label
  • Select milestone to next major version milestone or "Future Versions"

Define Related Issue(s)

Consider the impact to the other METplus components.

New Feature Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s), Project(s), Milestone, and Linked issues
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions