Quantcast
Viewing all articles
Browse latest Browse all 1863

DHIS2 Predictor

Hello out there Image may be NSFW.
Clik here to view.
:slight_smile:

While working on a LMIS project, I’m trying to use the predictor to generate an average monthly consumption value.

My generator is as follow:
sum(#{Monthly_consumption})*30.5/(sum([days])-#{Days_of_stock_out})

With Sample skip Test being:
isNull( #{Monthly_consumption} )

Period type is monthly and my Sequential sample count is set to 3

I noticed two strange things but I’m not sure I’m facing a bug…

1/ The documentation says that (sum([days]) “is the number of days in all sample periods

What I observe is that (sum([days]) is actually the number of days in the reporting period multiplied by the sequential sample count…
For example, a value predicted for April 2024 should have from my understanding
sum(#{Monthly_consumption})*30.5/(31+29+31)-#{Days_of_stock_out})

(With (31+29+31) being #of days in January + #of days in February + #of days in March.)

Instead what I observe is that it is computed like follow:
sum(#{Monthly_consumption})*30.5/(3 *30)-#{Days_of_stock_out})

(With (3*30) being 3 times #of days in April.)

I can still “escape” that by changing my generator to sum(#{Monthly_consumption})*[days]/(sum([days])-#{Days_of_stock_out}) so it’s not so problematic.

2/ Although, if I don’t have three preceding periods with data, let’s say I only have data for January and February 2024, and a stable consumption of 10 and 0 days of stock out, then Average monthly consumption predicted for March 2024 will be 6.667.
I’d expect in this situation my AMC to be 10 as well with computation being:
(10+10)*31/(2 *31)-0

At this stage I don’t know if the computation is:

(0+10+10)*31/(3 *31)-0 == 6.667 OR (10+10)*31/(3 *31)-0 == 6.667

Where in the first iteration the engine picks up a “0” because it needs three periods whatsoever; while in the second it only considers the two valid periods but, (sum([days]) being “the number of days in the reporting period multiplied by the sequential sample count” instead of being “the number of days in all sample periods”, it turns out that my numerator doesn’t take into account that the number of periods to consider is only 2 rather than 3 (so 60ish days rather than 90ish days).

If that’s a bug, I’m happy to report on JIRA, if it’s a clarification needed in the documentation as well. But maybe all this is the expected behavior and/or I’m mislead by my non-native English biases Image may be NSFW.
Clik here to view.
:upside_down_face:

Let me know what’s your interpretation of all this and/or if you need extra information/clarifications,

Thanks a lot,

Thomas

1 post - 1 participant

Read full topic


Viewing all articles
Browse latest Browse all 1863

Trending Articles