c Carol
on

 

Hello,

I've ran across a similar posting and I was hoping you could help me address this issue.
I still get this error in both validators, 1.4.1 and 1.5. My lab data is out to 12+ decimal places and uses average values for baseline, so CHG is super tiny. From the report below:

BASE, CHG, AVAL 11.58300018, -0.00000095, 11.58299923

Thanks,
Carol

Forums: ADaM

s Sergiy
on May 1, 2014

Hi Carol, 

We cannot reproduce your false-positive messages using your example values.

Could you share your sample data?

Thank you,

Sergiy

sergiy at opencdisc dot org 

 

c Carol
on May 5, 2014

Hi Sergiy,

Thank you for the follow-up. I looked into the data more and I think the issue relates to how SAS stores the numeric value. For instance, in SAS, the average value of 3.6 (i.e., average of 3.4 and 3.8) is not stored the same as an individual value of 3.6. The validation check fires because it thinks the change from baseline value should be 0, whereas the stored SAS value for CHG is 4.440892E-16. I'm not sure if there's a work around this at all. Let me know if you would like a sample dataset and the report.

Thanks,

Carol

s Sergiy
on May 5, 2014

Hi Carol, 

OpenCDISC engine should take care about this issue by rounding original values with some meaningful accuracy.

Please confirm that you are using any of the recent versions of validator?

Thank you,

Sergiy 

c Carol
on May 5, 2014

Hi Sergiy,

Yes, I'm using validator 1.4.1.

Thanks,

Carol

j Joan
on November 24, 2014

Hi Sergiy,

We find we need to apply a precise rounding function, like       

y=round(x, .0000000001)

 

and if we don't  do that, we hit the error for zero calculations.  Should this be necessary, since you say OpenCDISC is supposed to handle it?

We are using validator 1.5.

Thanks,

Joan

s Sergiy
on November 24, 2014

Hi Joan, 

I think OpenCDISC current algorithm has a bug. Actually it looks at two digits after a decimal point. That's why in some cases you recieve false-positive messages. E.g., for numbers like 1234567 you need to provide accuracy up to 9 digits.

We'll fix this bug soon.

Thanks,

Sergiy 

t Thierry
on September 27, 2015

Hi Sergiy,

The problem is still present in 2.0.2. Below is a small SAS program to reproduce the problem.

Cheers
-- Thierry

data _null_;

  put / 'values in the dataset:';
  AVAL = input('4058E02850F3AA6E', hex16.);
  BASE = input('4058E0290C7CA5AC', hex16.);
  CHG = input('BF07711F67C00000', hex16.);
  delta = (AVAL - BASE) - CHG;
  put AVAL=32.29 / BASE=32.29 / CHG=32.29 / delta=;

  put / 'with values dispayed by SAS:';
  AVAL = 99.50246070666770000000000000000;
  BASE = 99.50250541851590000000000000000;
  CHG = -0.00004471184817589340000000000;
  delta = (AVAL - BASE) - CHG;
  put AVAL=32.29 / BASE=32.29 / CHG=32.29 / delta=;

  put / 'with values dispayed by OpenCDISC:';
  AVAL = 99.50246071;
  BASE = 99.50250542;
  CHG = -0.00004471;
  delta = (AVAL - BASE) - CHG;
  put AVAL=32.29 / BASE=32.29 / CHG=32.29 / delta=;

run;

result (SAS 9.2 32-bit):

values in the dataset:
AVAL=99.50246070666770000000000000000
BASE=99.50250541851590000000000000000
CHG=-0.00004471184817589340000000000
delta=0

with values dispayed by SAS:
AVAL=99.50246070666770000000000000000
BASE=99.50250541851590000000000000000
CHG=-0.00004471184817589340000000000
delta=-2.84218E-14

with values dispayed by OpenCDISC:
AVAL=99.50246071000000000000000000000
BASE=99.50250542000000000000000000000
CHG=-0.00004471000000000000000000000
delta=-1.16052E-14

j Jeroen
on December 21, 2016

Dear all,

The problem is still present in 2.2.0 too.

How is the rounding actually done in the validator when determining CHG ?

eg, AVAL=0.064835164800 , BASE=0.064676616900, CHG=0.000158547900 but the error still fires.

Thanks for looking into this,

Jeroen

Want a demo?

Let’s Talk.

We're eager to share and ready to listen.

Cookie Policy

Pinnacle 21 uses cookies to make our site easier for you to use. By continuing to use this website, you agree to our use of cookies. For more info visit our Privacy Policy.