Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

weergeven van exacte aantallen en/of intervallen: wat als beide voorkomen? #92

Open
ElsLommelen opened this issue Aug 4, 2021 · 10 comments
Assignees

Comments

@ElsLommelen
Copy link
Collaborator

Als afgesproken heb ik in load_data_regeneration() een onderscheid gemaakt tussen de exact getelde aantallen (nr_of_regeneration) en de aantallen die geschat zijn door een interval (min/max/mid_number_of_regeneration) (commit e160246). Maar bij het aanpassen van de calculate-functies die deze gegevens gebruiken, merkte ik dat soms beide (exact aantal en schatting) opgegeven zijn voor eenzelfde record, en soms is binnen eenzelfde plot, periode en hoogteklasse voor bv. verschillende soorten een verschillende methode gebruikt is (aantal of schatting). Hoe ga ik hier best mee om?

  • voor load_data_regeneration(): geef ik hier beiden weer als ze beiden in de databank staan?
    • voordeel hiervan is dat ze allebei beschikbaar zijn en de gebruikers (of wij in de calculate-functies) kunnen kiezen welke gegevens we willen gebruiken
    • nadeel is dat het verwarrend is, want het is voor een gebruiker niet direct duidelijk dat het over tweemaal dezelfde gegevens gaat, hij/zij zou ook kunnen denken dat de 2 getallen opgeteld moeten worden om het totaal aantal jonge bomen te krijgen
  • voor de calculate-functies:
    • (enkel als in de vorige vraag beslist is om beiden te behouden:) voor de records waar beide opties in load_data_regeneration() weergegeven zijn, welke kies ik voor de berekeningen? Altijd het exacte getal, of liever het interval gebruiken als voor de andere records binnen de groep ook het interval gegeven is? (Te beslissen samen met volgende vraag.)
    • hoe omgaan met groepen waarin zowel exacte getallen als intervallen als observaties opgegeven zijn? Ze afzonderlijk behandelen en telkens de NA's negeren, geeft als resultaat weer zowel een getal bij nr_of_regeneration_ha als het interval met o.a. mean_number_of_regeneration_ha, maar in tegenstelling tot load_data_regeneration() zou het hier wel gaan over getallen die opgeteld moeten worden om het totaal te krijgen (dus beide behouden zowel hier als bij load_data_regeneration() zou ik zeker niet doen). De andere optie is om de volledige som weer te geven onder het interval en nr_of_regeneration_ha de waarde NA te geven.

(Dit issue is aangemaakt n.a.v. het herwerken van de functie calculate_regeneration_plot_height() en het is nog niet duidelijk of het tweede deel voor alle calculate-functies van toepassing is. In elk geval lijkt het zinvol om hier een generieke keuze te maken en dit voor alle functies op te vangen, ook al zijn er nog niet voor alle functies concrete voorbeelden van gemixte groepen.)

@ElsLommelen
Copy link
Collaborator Author

@leymanan toegewezen omdat ik een reactie verwacht.

@leymanan
Copy link
Collaborator

voor load_data_regeneration(): geef ik hier beiden weer als ze beiden in de databank staan?

  • voordeel hiervan is dat ze allebei beschikbaar zijn en de gebruikers (of wij in de calculate-functies) kunnen kiezen welke gegevens we willen gebruiken
  • nadeel is dat het verwarrend is, want het is voor een gebruiker niet direct duidelijk dat het over tweemaal dezelfde gegevens gaat, hij/zij zou ook kunnen denken dat de 2 getallen opgeteld moeten worden om het totaal aantal jonge bomen te krijgen

Ik denk niet dat men de 2 getallen gaat optellen, dus best beide weergeven
(zie ook mijn opmerkingen bij de PR statistics_and_other_issues)

@leymanan
Copy link
Collaborator

  • voor de calculate-functies:

    • (enkel als in de vorige vraag beslist is om beiden te behouden:) voor de records waar beide opties in load_data_regeneration() weergegeven zijn, welke kies ik voor de berekeningen? Altijd het exacte getal, of liever het interval gebruiken als voor de andere records binnen de groep ook het interval gegeven is? (Te beslissen samen met volgende vraag.)
    • hoe omgaan met groepen waarin zowel exacte getallen als intervallen als observaties opgegeven zijn? Ze afzonderlijk behandelen en telkens de NA's negeren, geeft als resultaat weer zowel een getal bij nr_of_regeneration_ha als het interval met o.a. mean_number_of_regeneration_ha, maar in tegenstelling tot load_data_regeneration() zou het hier wel gaan over getallen die opgeteld moeten worden om het totaal te krijgen (dus beide behouden zowel hier als bij load_data_regeneration() zou ik zeker niet doen). De andere optie is om de volledige som weer te geven onder het interval en nr_of_regeneration_ha de waarde NA te geven.

(Dit issue is aangemaakt n.a.v. het herwerken van de functie calculate_regeneration_plot_height() en het is nog niet duidelijk of het tweede deel voor alle calculate-functies van toepassing is. In elk geval lijkt het zinvol om hier een generieke keuze te maken en dit voor alle functies op te vangen, ook al zijn er nog niet voor alle functies concrete voorbeelden van gemixte groepen.)

Ik zou één afgeleide variabele maken die gebaseerd is op beide mogelijkheden en daarmee verder gaan.
Dus ofwel min/max/mid ook voor de exacte aantallen berekenen.
Ofwel met de mid-waarde van het interval verder rekenen.

@leymanan
Copy link
Collaborator

zie dus ook de PR! (daar ben ik bijna mee rond)

@ElsLommelen
Copy link
Collaborator Author

Ik zou één afgeleide variabele maken die gebaseerd is op beide mogelijkheden en daarmee verder gaan.
Dus ofwel min/max/mid ook voor de exacte aantallen berekenen.
Ofwel met de mid-waarde van het interval verder rekenen.

Ok, even checken of ik het juist begrepen heb. Dus ingeval van een mix van exacte getallen en intervallen, geef ik het totaal weer in mean_number_or_regeneration_ha, en krijgt nr_of_regeneration_ha de waarde NA?
(de terminologie min/max/mid wordt normaal niet meer gebruikt als gegevens geaggregeerd zijn in calculate-functies.)

@leymanan
Copy link
Collaborator

Om het nog een beetje te kaderen.

Ik ben nog eens in oude code gaan kijken, en daar hadden we in de load_functie een min/max/mean _number_of_trees die afgeleid werd van de aantalsklasse of van het exact aantal.
Bij de calc_functies werd dan mbv summarize het volgende berekend:

mean_number_of_trees_ha = sum(.data$mean_number_of_trees / .data$plotarea_ha),
      min_number_of_trees_ha = sum(.data$min_number_of_trees / .data$plotarea_ha),
      max_number_of_trees_ha = sum(.data$max_number_of_trees / .data$plotarea_ha)

Dat vond ik wel OK. Daar had je dus wel nog min en max als de gegevens geaggregeerd waren in de calc-functies.

In de nieuwe code worden volgende variabelen berekend

  • nr_of_regeneration_ha enkel obv exact aantal
  • mean_number_of_regeneration_ha enkel obv aantalsklasse
    (ook dat is verwarrend voor derden, en zelfs voor mij ...)

Dan kan je niet rekenen over beide heen, dus we hebben één waarde nodig die ingevuld is voor allebei.
En dan zou ik niet kijken naar of er al dan niet een mix is van exacte getallen en intervallen. Gewoon zelfde in alle situaties.
Klopt toch dat bij exacte getallen nr_of _regeneration_ha = mean_number_of_regeneration_ha ?
Dan zou ik verder gaan met mean_number_of_regeneration_ha .
Maar ik zou dan nr_of _regeneration_ha niet NA maken, als die ingevuld is, zou ik dat zo laten.

@ElsLommelen
Copy link
Collaborator Author

Dus:

  • nr_of_regeneration_ha invullen op basis van de exacte waarden, en leeg laten (NA) als er geen exacte waarden zijn en
  • mean_number_of_regeneration_ha altijd invullen, hetzij met de exacte waarde, hetzij met de som van exacte waarde en gemiddelde van interval, hetzij het gemiddelde van het interval?
  • en dan uiteraard bij de lci en uci ook de exacte waarde optellen als er zowel exacte waarden en intervallen zijn?

Voor nr_of_regeneration_ha zou het verwarrend kunnen overkomen bij de combinatie van exacte waarden en intervallen: in dat geval is die waarde nl. verschillend van mean_number_of_regeneration_ha. Anderzijds is dit de enige manier om ook de exacte waarde mee te geven. Dus ok om het toch te doen en goed te documenteren?

In geval van de exacte waarde: lci en uci waarde NA geven omdat een BI geen zin heeft voor exacte waarden?

@leymanan
Copy link
Collaborator

Dus:

  • nr_of_regeneration_ha invullen op basis van de exacte waarden, en leeg laten (NA) als er geen exacte waarden zijn en
  • mean_number_of_regeneration_ha altijd invullen, hetzij met de exacte waarde, hetzij met de som van exacte waarde en gemiddelde van interval, hetzij het gemiddelde van het interval?
  • en dan uiteraard bij de lci en uci ook de exacte waarde optellen als er zowel exacte waarden en intervallen zijn?

Inderdaad

Voor nr_of_regeneration_ha zou het verwarrend kunnen overkomen bij de combinatie van exacte waarden en intervallen: in dat geval is die waarde nl. verschillend van mean_number_of_regeneration_ha. Anderzijds is dit de enige manier om ook de exacte waarde mee te geven. Dus ok om het toch te doen en goed te documenteren?

OK!

In geval van de exacte waarde: lci en uci waarde NA geven omdat een BI geen zin heeft voor exacte waarden?

BI inderdaad geen zin bij exacte waarden, maar dan toch wel bij de combinatie van exacte waarden en intervallen?
Gaat enkel over de plot-level resultaten, toch?
En voor statistieken over meerdere plots heen (create_statistics) wordt toch enkel met mean gerekend? Of zijn lci en uci dan ook van belang?
Want wat als er in een bosreservaat plots zijn met exacte aantallen en andere plots met intervallen, dan kan je geen statistieken berekenen over beide heen?

@ElsLommelen
Copy link
Collaborator Author

BI inderdaad geen zin bij exacte waarden, maar dan toch wel bij de combinatie van exacte waarden en intervallen?

Jaja, BI is dan uiteraard wel enkel gebaseerd op de onzekerheid van de intervallen (want de exacte getallen hebben geen BI nodig), maar ik ga de exacte waarden hierbij optellen zodat mean en lci en uci het volledige resultaat weergeven

Gaat enkel over de plot-level resultaten, toch?

Euh, ik wou dit toepassen voor alles waar (gedeeltelijke) interval-gegevens geaggregeerd worden. Dus voor regeneratie gaat dat idd. onder andere over plotniveau (en plot_height,...)

En voor statistieken over meerdere plots heen (create_statistics) wordt toch enkel met mean gerekend? Of zijn lci en uci dan ook van belang?

Daar kiest een gebruiker zelf wat hij/zij doet. Er is in elk geval een optie om voor variabelen intervallen in te geven met min en max, en dan wordt hier dezelfde rekenmethode toegepast. Dit is geïllustreerd met een bv. van bedekking.

Want wat als er in een bosreservaat plots zijn met exacte aantallen en andere plots met intervallen, dan kan je geen statistieken berekenen over beide heen?

Een rekenmethode startend van een gemiddelde met BI is niet voorzien in create_statistics(), merk ik. Ik zal nagaan in hoeverre het wenselijk is om het BI als interval te gebruiken om te rekenen (is eigenlijk iets kleiner dan min-max). Zo ja, dan ga ik dit expliciet aangeven in de functie-documentatie (en best later ook in de handleiding). Zo nee, dan zoek ik uit hoe het wel kan en voeg ik die optie toe aan de code. En ik zoek meteen ook uit hoe die exacte getallen best meegenomen worden.

@ElsLommelen
Copy link
Collaborator Author

In verband met m'n laatste opmerking: dat lukt inderdaad, ik bereken de variantie uitgaande van het idee dat de min-max een BI is, dus je kan hier evengoed een BI met lci en uci meegeven.

Nota aan zelf: na het in orde brengen van de berekeningen de tabel class_data.csv nog aanvullen met alle lci en uci die in forresdat komen!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants