Proposal: Round Model Output

Description & Proposal

During the review of MR Update difference map bins to split around zero... (!6 - merged) a discussion began around binning model output values that have more decimal places than the break values and map labels used when cutting/binning data. For example, a model output value of x.xxxxxxx and bin value of x.xxx. If we round model output to the same number of decimals used in the breaks and labels, the binning routine will be more straightforward.

This issue proposes that we round output for models that provide output on a 0-1 scale (alligator, snail kite, Everwaders) to 2 decimal places. EverWaders is already rounded in this manner, and other models do not need to be rounded because the outputs are not 0-1, are whole numbers, or are already rounded to 2 or less decimal places. Rounding would create cleaner summary documents with easier to read bin labels in acreage tables and maps. Both the individual and difference map values would be binned and labeled with values that extend two decimal places.

The breaks and labels used for each model can be found in process_definitions.R

Individual breaks are already set to 2 decimals so these values will not change:

ind_cuts <- seq(from = 0.0, to = 1, by = 0.10)
ind_labels <- c("0.00 - 0.10", "0.11 - 0.20", "0.21 - 0.30",
                "0.31 - 0.40", "0.41 - 0.50", "0.51 - 0.60",
                "0.61 - 0.70", "0.71 - 0.80", "0.81 - 0.90", "0.91 - 1.00")

Proposed new breaks and for differences:

I think that these proposed breaks make each bin the same size. I thought about Allison's questions/comments in the MR about the positive and negative bins not looking the same so instead of using the same negative and positive break values in the cut vector, I increased the positive break values by 0.01. This means with a left break [left closed, right open) the positive bins "match" the negative bins. I've tried to calculate the number of values included in each bin a few times as well, and I am pretty sure each bin includes 20 values (except the 0 bin). I think that the labels on the map look much cleaner this way as well (example pasted below).

cut_option <- c(-1.00, -0.80, -0.60, -0.40,-0.20, 0.00,
                0.01, 0.21, 0.41, 0.61, 0.81, 1.00)
labs_option <- c("-0.81 to -1",
                 "-0.61 to -0.80",
                 "-0.41 to -0.60",
                 "-0.21 to -0.40",
                 "-0.01 to -0.20",
                 "0.00",
                 "0.01 to 0.20",
                 "0.21 to 0.40",
                 "0.41 to 0.60",
                 "0.61 to 0.80",
                 "0.81 to 1")

Here are the bins shown as [left closed, right open). This includes -1 in the smallest bin, and 1 in the largest bin. Also, the zero bin [0, 0.01) includes 0.00 as well as all values that are less than 0.01. If we round the model output to 2 decimal places as proposed in this issue, the only value that is >= 0.00 and < 0.01 is 0.00. This means that the zero bin will only include model output that has been rounded to 0.00.

 [1] "[-1,-0.8)"   "[-0.8,-0.6)" "[-0.6,-0.4)" "[-0.4,-0.2)" "[-0.2,0)"    "[0,0.01)"    "[0.01,0.21)" "[0.21,0.41)" "[0.41,0.61)"
[10] "[0.61,0.81)" "[0.81,1]"   

image.png

Notes for discussion:

@shaider @abenscoter @ldacunto @sromanach

Can at least 2 other team members please specifically comment on the following:

  1. Do you agree that we should round model output?
  2. Do you agree with the proposed difference bin breaks and labels? Do you have a different suggestion for the new breaks?

Let's use this issue to discuss to make sure our decisions are documented!

TODO:

  • Create new branch
  • Add code to round model values in workflow
  • Add code to update difference bins
  • Create MR
Edited by Hackett, Caitlin Elizabeth