Площадь под кривой выше базисного уровня
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | *(Вопрос) Нужен синтаксис для расчёта прироста площади под кривой не относительно нуля, а относительно какого-то базисного уровня. * Численные примеры можно найти на http://www.fao.org/docrep/w8079e/w8079e0a.htm и на http://www.fao.org/docrep/w8079e/w8079e00.gif. *(Ответ) Помещён в SPSSX-L, Raynald Levesque, 19.06.2002. * Следующий пример данных взят с указанного выше веб-сайта. DATA LIST LIST /id meas0 meas15 meas30 meas45 meas60 meas90 meas120 iauc1 (9F8.1). BEGIN DATA 0 4,3 6,3 7,9 5,3 4,1 4,6 4,9 114 1 4 6 6,7 5,5 5,3 5 4,2 155 2 4,1 5,8 8 6,5 5,9 4,8 3,9 179 3 4 5 5,8 5,4 4,8 4,2 4,4 93 4 4,1 6,3 9 8,7 6,7 5,7 3,9 279 5 5 7,1 8,8 8 5,6 5,4 4,2 155 END DATA. LIST. * Установка моментов времени для горизонтальной оси. DO REPEAT h = h0 h15 h30 h45 h60 h90 h120 / t = 0 15 30 45 60 90 120. COMPUTE h = t. END REPEAT. EXECUTE. * Интегрирование кривой функции gluс = f(time) по формуле трапеции; gluc - уровень глюкозы, time - время. VECTOR time = h0 to h120. VECTOR gluc = meas0 to meas120 . COMPUTE iauc2 = 0. LOOP #k = 2 to 7. - IF #k=2 inival = gluc(1). - DO IF (NOT(MISSING(gluc(#k)))). - COMPUTE minval=MIN(gluc(#k-1),gluc(#k)) - inival. - COMPUTE maxval=MAX(gluc(#k-1),gluc(#k)) - inival. - DO IF minval>0. - COMPUTE iauc2 = iauc2 + (time(#k) - time(#k -1)) * ((gluc(#k -1) + gluc(#k))/2-inival). - ELSE IF maxval>0. - COMPUTE iauc2 = iauc2 + (time(#k) - time(#k -1))* (maxval / (maxval - minval)*maxval/2) . - END IF. - END IF. END LOOP. * Убираем лишнее. MATCH FILES FILE=* /DROP=h0 h15 h30 h45 h60 h90 h120 minval maxval inival. EXECUTE. |