快捷搜索:  汽车  科技

python多元线性回归预测分析:python数据分析之单因素分析

python多元线性回归预测分析:python数据分析之单因素分析from scipy import optimize3import pandas as pd2from pylab import mpl

实现功能:

线性拟合:单因素分析,对散点图进行线性拟合,并放大散点图的局部位置

实现代码:

1

import pandas as pd

2

from pylab import mpl

3

from scipy import optimize

4

import numpy as np

5

import matplotlib.pyplot as plt

7

8

def f_1(x A B):

9

return A*x B

10

11

def draw_cure(file):

12

data1=pd.read_excel(file)

13

data1=pd.DataFrame(data1)

14

hz=list(data1['患者密度(人/10万人)'])

15

rk=list(data1['人口密度(人/平方千米)'])

16

hz_gy=[]

17

rk_gy=[]

18

19

for i in hz:

20

hz_gy.append((i-min(hz))/(max(hz)-min(hz)))

21

22

for i in rk:

23

rk_gy.append((i-min(rk))/(max(rk)-min(rk)))

24

25

n=['玄武区' '秦淮区' '建邺区' '鼓楼区' '浦口区' '栖霞区' '雨花台区' '江宁区' '六合区' '溧水区' '高淳区'

26

'锡山区' '惠山区' '滨湖区' '梁溪区' '新吴区' '江阴市' '宜兴市'

27

'鼓楼区' '云龙区' '贾汪区' '泉山区' '铜山区' '丰县' '沛县' '睢宁县' '新沂市' '邳州市'

28

'天宁区' '钟楼区' '新北区' '武进区' '金坛区' '溧阳市'

29

'虎丘区' '吴中区' '相城区' '姑苏区' '吴江区' '常熟市' '张家港市' '昆山市' '太仓市'

30

'崇川区' '港闸区' '通州区' '如东县' '启东市' '如皋市' '海门市' '海安市'

31

'连云区' '海州区' '赣榆区' '东海县' '灌云县' '灌南县'

32

'淮安区' '淮阴区' '清江浦区' '洪泽区' '涟水县' '盱眙县' '金湖县'

33

'亭湖区' '盐都区' '大丰区' '响水县' '滨海县' '阜宁县' '射阳县' '建湖县' '东台市'

34

'广陵区' '邗江区' '江都区' '宝应县' '仪征市' '高邮市'

35

'京口区' '润州区' '丹徒区' '丹阳市' '扬中市' '句容市'

36

'海陵区' '高港区' '姜堰区' '兴化市' '靖江市' '泰兴市'

37

'宿城区' '宿豫区' '沭阳县' '泗阳县' '泗洪县']

38

40

mpl.rcParams['font.sans-serif'] = ['FangSong']

41

plt.figure(figsize=(16 8) dpi=98)

42

p1 = plt.subplot(121)

43

p2 = plt.subplot(122)

44

45

p1.scatter(rk_gy hz_gy c='r')

46

p2.scatter(rk_gy hz_gy c='r')

47

48

p1.axis([0.0 1.01 0.0 1.01])

49

p1.set_ylabel("患者密度(人/10万人)" fontsize=13)

50

p1.set_xlabel("人口密度(人/平方千米)" fontsize=13)

51

p1.set_title("人口密度—患者密度相关性" fontsize=13)

52

53

for i txt in enumerate(n):

54

p1.annotate(txt (rk_gy[i] hz_gy[i]))

55

56

A1 B1 = optimize.curve_fit(f_1 rk_gy hz_gy)[0]

57

x1 = np.arange(0 1 0.01)

58

y1 = A1*x1 B1

59

p1.plot(x1 y1 "blue" label='一次拟合直线')

60

x2 = np.arange(0 1 0.01)

61

y2 = x2

62

p1.plot(x2 y2 'g--' label='y=x')

63

p1.legend(loc='upper left' fontsize=13)

64

65

# # plot the box

66

tx0 = 0;tx1 = 0.1;ty0 = 0;ty1 = 0.2

67

sx = [tx0 tx1 tx1 tx0 tx0]

68

sy = [ty0 ty0 ty1 ty1 ty0]

69

p1.plot(sx sy "purple")

70

71

p2.axis([0 0.1 0 0.2])

72

p2.set_ylabel("患者密度(人/10万人)" fontsize=13)

73

p2.set_xlabel("人口密度(人/平方千米)" fontsize=13)

74

p2.set_title("人口密度—患者密度相关性" fontsize=13)

75

76

for i txt in enumerate(n):

77

p2.annotate(txt (rk_gy[i] hz_gy[i]))

78

79

p2.plot(x1 y1 "blue" label='一次拟合直线')

80

p2.plot(x2 y2 'g--' label='y=x')

81

p2.legend(loc='upper left' fontsize=13)

82

83

plt.show()

84

85

if __name__ == '__main__':

86

draw_cure("F:\医学大数据课题\论文终稿修改\scientific report\返修\市区县相关分析 _2231.xls")

实现效果:

python多元线性回归预测分析:python数据分析之单因素分析(1)

关注V数据杂坛学习更多!

猜您喜欢: