QDScore糖尿病风险指数预测算法_第1页
QDScore糖尿病风险指数预测算法_第2页
QDScore糖尿病风险指数预测算法_第3页
QDScore糖尿病风险指数预测算法_第4页
QDScore糖尿病风险指数预测算法_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

QDScore糖尿病风险指数预测算法根据发表在 BMJ 上的一项研究报道,使用一些常规收集的数据加上简单的算法便可预测10年内出现2型糖尿病的风险。在建立该预测模型时,研究者首先根据250万英国病人的电子病历数据来确定10年内发生2型糖尿病的独立预测因素 (包括年龄、身体质量指数、糖尿病家族史、吸烟状况、高血压治疗情况、糖皮质激素使用情况、是否有心血管疾病、社会经济状况以及种族分类)。然后根据这些风险值和临床结果设计出一个算法,最后在近120万的成人中验证该算法的有效性和精确性。总体上该算法非常有效,预测的风险与实际观察到的风险非常接近。作者总结认为他们的预测模型可用于及早发现高危人群并对他们进行主动干预。参考网站: /预测问卷内容: 1. 年龄 (输入范围为25至79岁之间)2. 性别 (男,女)3. 种族 (白人或不确定1,印度人2,巴基斯坦人3,孟加拉人4,其他亚洲人5,加勒比黑人6,非洲黑人7,中国人8,其他种族9)4. 是否患有糖尿病? (否0,是1)(当用户选择“是”风险预测不再进行)5. 直系亲属中是否患有糖尿病? 如:父亲,母亲,兄弟姐妹 (否0,是1)6. 是否患有心脏病,心绞痛,中风或TIA? (否0,是1)7. 是否吸烟? (否0,是1)8. 是否进行高血压治疗? (否0,是1)9. 是否使用肾上腺糖皮质激素? (否0,是1)10. BMI指数 (用户输入身高cm,体重kg,系统通过公式计算,取值范围为18至42之间)11. 贫困程度 (取值范围为-6至11之间)12. 预测未来年数 (输入范围为1至10年之间)预测风险源代码分析(C语言实现):/对女性用户预测2型糖尿病风险计算函数/参数说明:/age为年龄;/b_corticosteroids为是否使用肾上腺糖皮质激素;/b_cvd为是否患有心脏病,心绞痛,中风或TIA;/b_treatedhyp为是否进行高血压治疗;/bmi为BMI指数;/ethrisk为种族;/fh_diab为直系亲属中是否患有糖尿病;/smok为是否吸烟;/surv为预测年限(1至10年);/town为贫困程度(官方网站问卷中并没有给出贫困程度的选择项,估计设定了一个默认值);static double type2_female_raw(int age,int b_corticosteroids,int b_cvd,int b_treatedhyp,double bmi,int ethrisk,int fh_diab,int smok,int surv,double town) /预测年限参数数组,1至10年;double survivor11 = 0,0.998805761337280,0.997608065605164,0.996346592903137,0.994937002658844,0.993355870246887,0.991551995277405,0.989812076091766,0.987842559814453,0.985680699348450,0.983291983604431; /条件数组/* The conditional arrays */ /9个种族对应的参数数组double Iethrisk10 = 0,0,0.5365495202183693200000000,0.7662863026744053400000000,1.4039515607221962000000000,0.2343839843021357000000000,-0.2262477766307989200000000,-0.2175322459800286300000000,0.6734132892549344900000000,-0.1179038879534471800000000; /应用多项式转换/* Applying the fractional polynomial transforms */* (which includes scaling) */double dage = age;dage=dage/10;double age_1 = pow(dage,0.5);double age_2 = pow(dage,3);double dbmi = bmi;dbmi=dbmi/10;double bmi_1 = dbmi;double bmi_2 = pow(dbmi,3); /效准连续变量/* Centring the continuous variables */age_1 = age_1 - 2.115379810333252;age_2 = age_2 - 89.604545593261719;bmi_1 = bmi_1 - 2.544721126556397;bmi_2 = bmi_2 - 16.478612899780273;town = town - -0.194727867841721; /* Start of Sum */double a=0;/* The conditional sums */a += Iethriskethrisk;/* Sum from continuous values */a += age_1 * 4.4315148030665714000000000;a += age_2 * -0.0050056071936287576000000;a += bmi_1 * 3.6188087575505850000000000;a += bmi_2 * -0.0687183179802360040000000;a += town * 0.0538824941503230280000000;/* Sum from boolean values */a += b_corticosteroids * 0.3451916093391816400000000;a += b_cvd * 0.3770777565260045000000000;a += b_treatedhyp * 0.5804768757915621500000000;a += fh_diab * 0.8578527544136007600000000;a += smok * 0.2371389363172849400000000;/* Sum from interaction terms */a += age_1 * bmi_1 * 1.0913755651596941000000000;a += age_1 * bmi_2 * -0.0585537471691784180000000;a += age_1 * fh_diab * -0.7980912138325359000000000;a += age_1 * smok * 0.4772464609454892300000000;a += age_2 * bmi_1 * -0.0063395585467211609000000;a += age_2 * bmi_2 * 0.0002014356224656779000000;a += age_2 * fh_diab * 0.0014901432937626897000000;a += age_2 * smok * -0.0010348515577357010000000; /计算最后得分/* Calculate the score itself */double score = 100.0 * (1 - pow(survivorsurv, exp(a) );return score;/返回得分/此函数主要功能为对输入参数进行效验,对不符合规范输入参数进行错误提示static int type2_female_validation(int age,int b_corticosteroids,int b_cvd,int b_treatedhyp,double bmi,int ethrisk,int fh_diab,int smok,int surv,double town,char *errorBuf,int errorBufSize)int ok=1;*errorBuf=0;if (!i_in_range(age,25,79) ok=0;strlcat(errorBuf,error: age must be in range (25,79)n,errorBufSize);if (!is_boolean(b_corticosteroids) ok=0;strlcat(errorBuf,error: b_corticosteroids must be in range (0,1)n,errorBufSize);if (!is_boolean(b_cvd) ok=0;strlcat(errorBuf,error: b_cvd must be in range (0,1)n,errorBufSize);if (!is_boolean(b_treatedhyp) ok=0;strlcat(errorBuf,error: b_treatedhyp must be in range (0,1)n,errorBufSize);if (!d_in_range(bmi,18,42) ok=0;strlcat(errorBuf,error: bmi must be in range (18,42)n,errorBufSize);if (!i_in_range(ethrisk,1,9) ok=0;strlcat(errorBuf,error: ethrisk must be in range (1,9)n,errorBufSize);if (!is_boolean(fh_diab) ok=0;strlcat(errorBuf,error: fh_diab must be in range (0,1)n,errorBufSize);if (!is_boolean(smok) ok=0;strlcat(errorBuf,error: smok must be in range (0,1)n,errorBufSize);if (!i_in_range(surv,1,10) ok=0;strlcat(errorBuf,error: surv must be in range (1,10)n,errorBufSize);if (!d_in_range(town,-6,11) ok=0;strlcat(errorBuf,error: town must be in range (-6,11)n,errorBufSize);return ok;/主函数,先调用参数效验函数,输入参数通过效验后再调用风险计算函数计算风险并输出结果double type2_female(int age,int b_corticosteroids,int b_cvd,int b_treatedhyp,double bmi,int ethrisk,int fh_diab,int smok,int surv,double town,int *error,char *errorBuf,int errorBufSize)*error = 0;int ok = type2_female_validation(age,b_corticosteroids,b_cvd,b_treatedhyp,bmi,ethrisk,fh_diab,s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论