预测性“血糖”算法?

9
我正在编写一款应用程序,让糖尿病患者输入他/她的“血糖”读数,并在从左到右的图表上绘制它们。由于血糖读数只会进行几次,因此需要一个算法来:
a) 填补读数之间的空白(曲线比抖动的直线更真实),并允许更精确的“血糖水平”日均值
b) 粗略预测未来会发生什么(如果用户没有吃任何影响血糖水平的东西)
我不擅长微积分。我希望这里有人知道这方面的库?我希望有人知道已经为这个特定问题量身定制的算法(例如:有人将其与糖尿病患者的真实数据进行了比较)。
免责声明:我非常清楚任何这样的算法都会根据用户而异。我只是想改进直角线。无论糖尿病患者如何,血糖升降的速率都有限制。
我正在使用Javascript,但由于这只是数学问题,所以我可以从C、Java或其他语言转移。
4个回答

43

血糖行为非常复杂。它受到以下因素的影响:

  • 当前的血糖(如果患者高血糖可能会复杂化,因为可能存在酮体)
  • 最近的食物(根据种类和数量可能会持续几个小时)
  • 最近使用的快速作用胰岛素(具有45分钟至2小时不等的反应时间和交付机制)
  • 长效胰岛素可以持续12小时以上(同样取决于患者和种类)
  • 活动水平
  • 压力水平
  • 疾病
  • 如果患者使用泵,则包括基础胰岛素率
  • 等等

这是一个非常棘手的问题。任何启发式算法——任何 启发式算法——都可能极大地误导人。简而言之:

别试了。


这部分内容,部分来源于将糖尿病患者24小时持续葡萄糖日志与同一时间采集的约10个指尖取血数据进行比较。我的建议基于数据。


编辑: 显然我没有表述清楚。

你甚至无法接近。

使用指尖取血数据无法得到可靠的结果。

用任何方式连接这些点(甚至是直线)都是完全错误。这不反映现实。一点也不。

我是一名实验粒子物理学家,复杂的数据集是我的工作。有一个糖尿病患者在我的生活中(你猜到了吗?)。这对我很重要。

但是我已经看到了高频数据日志,并将其与当天指尖取血、运动、饮食和胰岛素日志进行了比较。

如果您能获取每15分钟的数据,那么请继续使用样条曲线。它不会危险地误导人。但是,如果您一天只有6-10次血糖测量,您就什么都不知道。


好消息:持续监测正在降价。现在,它已经走出实验室,有一些泵甚至可以使用。


对于不熟悉此项技术的人:遵守糖尿病患者(非科学调查的结果)每天进行4-6次以上的葡萄糖测试是常规操作,任何意外变化后的1-2小时内还要进行数次测试(他们会出现身体症状以便检测极端突发情况)。

这样做可以让患者大致了解他们控制血糖水平的情况,但他们还需要去实验室每季度(或更频繁)抽取一个血红蛋白A1C值。 A1C结果主要取决于他们的平均血糖水平。

我曾经与那些每天四次记录80-110(相当良好的数据)的人交谈过几次,但得到的A1C指标却表明其平均高于150(完全不理想)。这些人可能夜间血糖值上升。我也听说过类似的故事,其中一些人可能在睡眠中患有低血糖症。

教训是:

指尖测试具有一定价值,但不要尝试将其外推到未被充分取样的时间。


3
不是的。把数据点放在图表上,不要连接它们。这是显示数据的唯一正确方式 - dmckee --- ex-moderator kitten
5
同意。我的第一家创业公司是一款PalmPilot血糖管理系统,作为一个15年以上的1型糖尿病患者,我可以告诉你,不要做这个。它行不通,如果有人受伤,它会让你陷入法律困境。话虽如此,你可以考虑使用对数趋势线就行了。 - Scott Hanselman
10
糟糕的估计比没有估计还要糟糕。 - Loren Pechtel
1
没错。先不要想着糖尿病,想象一下如果你的血糖读数是你在飞行期间仅采样5-10次的高度,否则你肯定在说谎。 - Scott Hanselman
4
@用户名:我认为你忽略了一个重要的问题,那就是你所说的“改善”对糖尿病患者来说非常具有误导性。如果你告诉糖尿病患者他们的血糖水平得到了控制,而实际上他们的血糖可能在30到300之间波动得很大,这可能会给他们带来(潜在的严重)伤害。 - jasonh
显示剩余8条评论

2
如果您只想直接拟合数据以使查看更容易,那么像Charlie Martin推荐的东西可能会很好地起作用。然而,正如dmckee所指出的那样,这些数据确实没有什么意义。
实际上,您正在尝试做的事情更符合药代动力学的研究范畴,这本身就是一门完整的科学研究。在这种情况下,除了在I型糖尿病的情况下,我甚至不确定它是否完全适用,因为我所知道的药代动力学大多只适用于药物研究,但如果某些物质是由身体产生的,那么您可能正在寻找完全不同类型的分析。如果您对此感兴趣,则Google Books上有相当多的书籍预览,如果您搜索“药代动力学”,但由于主题的性质,它们非常注重数学,并假设您对化学和生物学有一定的了解。

1

好的,你需要寻找一些拟合曲线。问题在于,对于n个点,有n-1次拟合多项式。我想是这样的。没错,我说得对。当你有很多点并且不想要一个复杂的函数(你不想要),通常使用最小二乘逼近

可能最好的方法是寻找一个可以使用的预设程序;这些程序在大多数统计软件包中都存在。告诉我们你想要的环境的更多细节,我们可能能够更准确地指向适合你的东西。


1

这很可能行不通,但是人工神经网络可能(我重申一遍)能够从一个好的数据集中得到一些东西。所谓好的数据集,是指连续记录了几周或几个月的数据,即使如此,除非我有非常充分的理由,否则我也不会相信这个数据集。我也不认为你会从中获得预测性数据,但这可能取决于你如何实现它。总的来说,如果你要这样做,似乎更像是一种业余爱好,看看它是否能接近,比如“哦,很棒,我让神经网络达到了X的准确度”。再次强调,不要在任何生产环境或可能伤害或杀死他人的地方使用它!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接