线性分析_糖尿病预测
- 231469242
- 2014年5月1日
- 讀畢需時 2 分鐘
说明
本程序依靠统计学的回归模式,预测糖尿病的发生时间。
输入连续血糖测试值,程序则可自动计算多久后可能患上糖尿病。
这是程序运行后代码展示

图形化展示:血糖值和时间关系

本程序还可智能检测以前测试中不准确值

部分代码
#coding=utf-8
import math,math_inhance, linear_regression,numpy,pylab
#血糖值:范围[无糖尿病,3.5-5.5正常,大于5.5属于高血糖]
list_x=[3.6,3.61,3.63,3.66,4,4.1,4.2,4.22,4.28,4.5]
list_y=[1,2,3,4,5,6,7,8,9,10]
mode_list=["linear",2,3,6,5]
a=0
mode=2
forecast_x=0
best_mode=linear_regression.mode_choose(list_x,list_y,mode_list)
x=linear_regression.x_input_process(list_x,best_mode)
y=linear_regression.y_input_process(list_y,best_mode)
x_mean=math_inhance.mean(x)
y_mean=math_inhance.mean(y)
s_x=math_inhance.s_deviation(x)
s_y=math_inhance.s_deviation(y)
s_xy_value=math_inhance.s_xy(x,y)
b=math_inhance.linear_b(s_xy_value,s_x)
a=linear_regression.a_input_process(a,best_mode)
r=linear_regression.R(list_x,list_y,best_mode)
r_square=linear_regression.R_square(r)
#计算R平方是否符合模型,True or False
r_fit=linear_regression.R_fit(r_square)
y_forecast=linear_regression.Forecast_y(b,a,forecast_x,best_mode)
forecast_list_y=linear_regression.Forecast_list_y(b,a,list_x,best_mode)
residual_list=linear_regression.residual(list_y,forecast_list_y)
wrongNumber_predict=linear_regression.wrongNumber_check(list_x,list_y,residual_list)
def Diabetes_forecast():
forecast_x=5.5
diabetes_time_forecast=linear_regression.Forecast_y(b,a,forecast_x,best_mode)
linear_regression.print_out(x_mean,y_mean,x,y,s_x,s_y,s_xy_value,r,r_fit,\
b,a,diabetes_time_forecast,wrongNumber_predict,best_mode)
if r_fit==True:
linear_regression.draw_linear_regression_model(list_x,list_y,b,a,best_mode)
linear_regression.draw_residual(residual_list)
return diabetes_time_forecast
def Diabetes_time():
diabetes_time_prediction=diabetes_time_forecast-len(list_y)
return diabetes_time_prediction
def Diabetes_prevention():
print "1.keep balanced food for half an hour,\
cut off smoking,alcohol,and spice food"
print "2.keep normal blood pressure"
print "3.keep normal weight(BMI)"
print "4.eat 5 parts of fruids and balanced vegetables a day"
print "5.keep normal waist"
print "6.keep good mood"
print "7.keep half an hour walking at night"
def Diabetes_drug():
print"there are some drugs for diabetes,do not worry:"
print"For type1:insulin injection"
print"For type2:(1)biguanide"
print" (2)Sulfonylurea"
print" (3)Alpha glucosidase inhibitor,such as acarbose"
print" (4)prandial glucose regulator,such as repaglinide,nateglinide"
print" (5)pioglitazone"
print" (6)Incretin mimetics:such as exenatide,liraglutide"
print" (7)DPP-4 inhibitors(gliptins):such as Sitagliptin,Saxagliptin,Alogliptin"
print" (8)SGLT2 inhibitors,such as Dapagliflozin,Canagliflozin"
def Diabetes_types():
print "type1:body does not produce any insulin,for immune system impaired "
print "type2:body produces some insulin,and these insulin do not work well"
diabetes_time_forecast=Diabetes_forecast()
diabetes_time_prediction=Diabetes_time()
print "after %.1f years,you have risk of diabetes" %(diabetes_time_prediction)
留言