niedziela, 5 lutego 2017

Nowe podejście do kalibracji

We wrześniu i listopadzie zeszłego roku pisałem o kalibracjach wyników z sensorów Libre w rożnych aplikacjach (głównie xDrip). Temat nie jest prosty i w ramach robienia "porządków w głowie" - kilka przemyśleń:

W istniejących aplikacjach - nic sie w tym względzie nie zmieniło.

Wspominałem o pracach Pierre Vandevenne poświęconych zagadnieniom kalibracji.  Pierre - doszedł do wniosków, że jedynym nieuwzględnionym parametrem jaki różni kalibracje w programach typu xDrip, Glimp, Liapp, itp od kalibracji w fabrycznym czytniku Libre jest temperatura.

Wewnątrz sensora - są 2 elementy mierzące temperaturę. Jednym z nich jest element zewnętrzny, a drugi to wbudowany układ scalony będący jednocześnie sterownikiem NFC  i procesorem dokonującym odczytu z czujnika glikemii, obrabiającym wyniki, zapisującym do lokalnej pamięci, itp.

Każdy z pomiarów, czy to bieżących - czyli pomiary co minutę z ostatnich 15 minut, czy historycznych - 32 pomiary z co 15 minut z ostatnich 8 godzin zapisywany jest na 6 bajtach. Pierwsze 2 bajty - to wartość glikemii. Ponieważ procesor sensora zapisuje każdy wynik pomiarowy czy to zewnętrzny czy temperatury wewnętrznej na 2 bajtach - oczekiwać należy, że pozostałe 4 bajty z każdej paczki pomiarowej to właśnie te 2 temperatury. To trzeba będzie jeszcze dokładniej zbadać i zobaczyć jak jest w rzeczywistości, tzn. co w tych pozostałych 4 bajtach w rzeczywistości się znajduje i jaki ma związek ze wskazaniami na czytniku fabrycznym Libre.

Intuicyjnie - nie podoba mi sie to podejście z temperaturą. To znaczy: wydaje mi się, ze rola temperatury jest przeceniana, a nie bierze sie pod uwagę innego zagadnienia.

Tym innym zagadnieniem jest połączenie 2 stanów: znajdowania sie "pod" lub "nad" zakresem środkowym (zdefiniowanym jako przedział 90-140 mg/dL) oraz szybkości zmian, czyli siły trendu jaki w danym momencie panuje.

Dotychczasowe równanie kalibracyjne to: y = ax+b, gdzie "a" - zwykle wynosi 1 (lub coś bardzo bliskiego jedynki), natomiast "b" to różnica pomiędzy wskazaniem surowym odczytanym z sensora i pomiarem wykonanym glukometrem.

Stosując powyższe równanie - dostajemy dość dobre wyniki w środkowym zakresie glikemii. Im bardzie w górę lub w dół - tym wyniki z Libry są bardziej różne od wyników z glukometru. To "bardziej" nie jest skokowe, tylko sukcesywnie sie zwiększające i stabilizujące na pewnym poziomie różnicy. Poziom ten oraz szybkość powstawania różnicy zależą od odległości nad/pod strefę środkowa oraz od szybkości wzrostu/spadku poziomu glikemii.

Stąd mój nowy pomysł na nieco inna - dynamiczną kalibracje wyników:

Nowe równanie kalibracyjne: y = ax + (b0 + b1 +b2), gdzie:

b0 - to dotychczasowe 'b', czyli różnica pomiędzy odczytem z sensora a odczytem z glukometru, ale z takiego pomiaru, gdy jest stabilna glikemia i jest w strefie środkowej. Czyli z glukometru mamy wynik pomiędzy 90 a 140 i nie zmieniał on sie znacząco w ciągu ostatnich 15-20 minut - czyli na czytniku Libry mamy strzałkę poziomo.

b1 - jest współczynnikiem "oddalenia" - ma on uwzględniać to jak daleko jesteśmy nad/pod od przedziału bazowego

b2 - jest współczynnikiem szybkości, ma on uwzględniać wpływ siły trendu.

Współczynnik 'b0' jest wolno zmienny w czasie życia sensora i zależy (jak pokazują doświadczenia, a raczej wnioski z  tego jak on sie zmienia przy wprowadzaniu codziennych lub co-kilku-dziennych kalibracji) od stanu tkanki w której jest sensor = ogólnego stanu organizmu (choroby, wysiłek, nawodnienie, itp).

Współczynniki 'b1' i 'b2' widziałbym raczej jako stałe. Nie w znaczeniu, że na przykład maja jakąś stałą konkretną wartość typu 2 czy 5, ale stałe - w znaczeniu, że wylicza się je funkcją o stałych parametrach, w której jako zmienne wchodzą różnica pomiędzy wartością brzegową obszaru bazowego i aktualną odczytaną przez sensor oraz trend, czyli szybkość w jakiej poziom glukozy zmienia sie w czasie.

Na przykład:

zrobiliśmy "normalną" kalibrację przy stałym trendzie i w przedziale bazowym - strzałka na czytniku Libre była poziomo, czytnik Libre pokazał 125, a glukometr - 115.
Zatem wartość współczynnika 'b0' aktualnie wynosi 115-125 = -10.

W dotychczasowej kalibracji xDripa czy Glimpa - od tej chwili pokazywałyby te aplikacje wartości o 10 mniejsze od tego co odczytałyby z sensora: gdy z sensora byłoby 190 - pokazałyby 180, gdy 60 - pokazałby 50, itp. Co nie pokrywałoby się ze wskazaniami z glukometru.

Teraz - zaczynamy dodawać 'b1' i 'b2':
Czytnik Libre pokazuje nam 190 i strzałkę prosto, czyli mamy stały poziom 190 i nie zmieniał sie on od jakiegoś czasu => jesteśmy "nad" zakresem bazowym o 190-140 = 50. Gdybyśmy przyjęli, że b1 wynosi -0.1, to 50 x 0.1 = 5. Ponieważ trend jest poziomy, to b2 = 0.
Nowe wskazanie kalibracyjne wynosi więc 190 + (b0=-10) + (b1 = 50x-0.1) + (b2=0),
czyli 190 -10 - 5 = 175, co może być bliższe prawdy, bo czytnik Libre "nad" zakresem bazowym pokazuje zwykle więcej niż glukometr.

Współczynnik 'b2' - działałby tak samo, z tym że zależałby nie od różnicy pomiędzy brzegiem obszaru bazowego a aktualnym wskazaniem, ale od tego czy i o ile aktualne wskazanie zmieniło sie od poprzednich wskazań.

.... to będzie kontynuowane....






Brak komentarzy:

Prześlij komentarz