health_stats 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/VERSION +1 -1
- data/health_stats.gemspec +9 -7
- data/lib/health_stats/age.rb +9 -5
- data/lib/health_stats/bmi.rb +2 -25
- data/lib/health_stats/cdc_data/bmi.rb +444 -446
- data/lib/health_stats/cdc_data/height.rb +493 -0
- data/lib/health_stats/cdc_data/weight.rb +494 -0
- data/lib/health_stats/cdc_data.rb +8 -5
- data/lib/health_stats/percentile.rb +42 -0
- data/lib/health_stats.rb +5 -3
- data/spec/spec_health_stats.rb +24 -8
- metadata +26 -11
- data/pkg/health_stats-0.0.1.gem +0 -0
- data/pkg/health_stats-0.0.2.gem +0 -0
@@ -0,0 +1,494 @@
|
|
1
|
+
module HealthStats
|
2
|
+
CDC.data[:weight] = {
|
3
|
+
:m => {
|
4
|
+
0.0 => [1.815151075, 3.530203168, 0.152385273],
|
5
|
+
0.5 => [1.547523128, 4.003106424, 0.146025021],
|
6
|
+
1.5 => [1.068795548, 4.879525083, 0.136478767],
|
7
|
+
2.5 => [0.695973505, 5.672888765, 0.129677511],
|
8
|
+
3.5 => [0.41981509, 6.391391982, 0.124717085],
|
9
|
+
4.5 => [0.219866801, 7.041836432, 0.121040119],
|
10
|
+
5.5 => [0.077505598, 7.630425182, 0.1182712],
|
11
|
+
6.5 => [-0.02190761, 8.162951035, 0.116153695],
|
12
|
+
7.5 => [-0.0894409, 8.644832479, 0.114510349],
|
13
|
+
8.5 => [-0.1334091, 9.081119817, 0.113217163],
|
14
|
+
9.5 => [-0.1600954, 9.476500305, 0.11218624],
|
15
|
+
10.5 => [-0.17429685, 9.835307701, 0.111354536],
|
16
|
+
11.5 => [-0.1797189, 10.16153567, 0.110676413],
|
17
|
+
12.5 => [-0.179254, 10.45885399, 0.110118635],
|
18
|
+
13.5 => [-0.17518447, 10.7306256, 0.109656941],
|
19
|
+
14.5 => [-0.16932268, 10.97992482, 0.109273653],
|
20
|
+
15.5 => [-0.1631139, 11.20955529, 0.10895596],
|
21
|
+
16.5 => [-0.15770999, 11.4220677, 0.108694678],
|
22
|
+
17.5 => [-0.15402279, 11.61977698, 0.108483324],
|
23
|
+
18.5 => [-0.15276214, 11.80477902, 0.108317416],
|
24
|
+
19.5 => [-0.15446658, 11.9789663, 0.108193944],
|
25
|
+
20.5 => [-0.15952202, 12.14404334, 0.108110954],
|
26
|
+
21.5 => [-0.16817926, 12.30154103, 0.108067236],
|
27
|
+
22.5 => [-0.1805668, 12.45283028, 0.108062078],
|
28
|
+
23.5 => [-0.19670196, 12.59913494, 0.108095077],
|
29
|
+
24.5 => [-0.21650121, 12.74154396, 0.108166005],
|
30
|
+
25.5 => [-0.23979048, 12.88102276, 0.108274705],
|
31
|
+
26.5 => [-0.26631585, 13.01842382, 0.108421024],
|
32
|
+
27.5 => [-0.29575496, 13.1544966, 0.108604769],
|
33
|
+
28.5 => [-0.32772936, 13.28989667, 0.108825681],
|
34
|
+
29.5 => [-0.36181746, 13.42519408, 0.109083423],
|
35
|
+
30.5 => [-0.39756808, 13.56088113, 0.109377581],
|
36
|
+
31.5 => [-0.43452025, 13.69737858, 0.109707646],
|
37
|
+
32.5 => [-0.47218875, 13.83504622, 0.110073084],
|
38
|
+
33.5 => [-0.51012309, 13.97418199, 0.110473238],
|
39
|
+
34.5 => [-0.54788557, 14.1150324, 0.1109074],
|
40
|
+
35.5 => [-0.58507011, 14.25779618, 0.111374787],
|
41
|
+
36.5 => [-0.621319726, 14.40262749, 0.111874514],
|
42
|
+
37.5 => [-0.656295986, 14.54964614, 0.112405687],
|
43
|
+
38.5 => [-0.689735029, 14.69893326, 0.112967254],
|
44
|
+
39.5 => [-0.721410388, 14.85054151, 0.11355811],
|
45
|
+
40.5 => [-0.751175223, 15.00449143, 0.114176956],
|
46
|
+
41.5 => [-0.778904279, 15.16078454, 0.114822482],
|
47
|
+
42.5 => [-0.804515498, 15.31940246, 0.115493292],
|
48
|
+
43.5 => [-0.828003255, 15.48030313, 0.116187777],
|
49
|
+
44.5 => [-0.849380372, 15.64343309, 0.116904306],
|
50
|
+
45.5 => [-0.86869965, 15.80872535, 0.117641148],
|
51
|
+
46.5 => [-0.886033992, 15.97610456, 0.118396541],
|
52
|
+
47.5 => [-0.901507878, 16.14548194, 0.119168555],
|
53
|
+
48.5 => [-0.915241589, 16.31676727, 0.11995532],
|
54
|
+
49.5 => [-0.927377772, 16.4898646, 0.120754916],
|
55
|
+
50.5 => [-0.938069819, 16.66467529, 0.121565421],
|
56
|
+
51.5 => [-0.94747794, 16.84109948, 0.122384927],
|
57
|
+
52.5 => [-0.955765694, 17.01903746, 0.123211562],
|
58
|
+
53.5 => [-0.963096972, 17.1983908, 0.124043503],
|
59
|
+
54.5 => [-0.969633434, 17.37906341, 0.124878992],
|
60
|
+
55.5 => [-0.975532355, 17.56096245, 0.125716348],
|
61
|
+
56.5 => [-0.980937915, 17.74400082, 0.126554022],
|
62
|
+
57.5 => [-0.986006518, 17.92809121, 0.127390453],
|
63
|
+
58.5 => [-0.99086694, 18.11315625, 0.128224294],
|
64
|
+
59.5 => [-0.995644402, 18.29912286, 0.129054277],
|
65
|
+
60.5 => [-1.000453886, 18.48592413, 0.129879257],
|
66
|
+
61.5 => [-1.005399668, 18.67349965, 0.130698212],
|
67
|
+
62.5 => [-1.010575003, 18.86179576, 0.131510245],
|
68
|
+
63.5 => [-1.016061941, 19.05076579, 0.132314586],
|
69
|
+
64.5 => [-1.021931241, 19.24037019, 0.133110593],
|
70
|
+
65.5 => [-1.028242376, 19.43057662, 0.133897752],
|
71
|
+
66.5 => [-1.035043608, 19.62136007, 0.134675673],
|
72
|
+
67.5 => [-1.042372125, 19.8127028, 0.13544409],
|
73
|
+
68.5 => [-1.050254232, 20.0045944, 0.13620286],
|
74
|
+
69.5 => [-1.058705595, 20.19703171, 0.136951959],
|
75
|
+
70.5 => [-1.067731529, 20.39001872, 0.137691478],
|
76
|
+
71.5 => [-1.077321193, 20.58356862, 0.138421673],
|
77
|
+
72.5 => [-1.087471249, 20.77769565, 0.139142773],
|
78
|
+
73.5 => [-1.098152984, 20.97242631, 0.139855242],
|
79
|
+
74.5 => [-1.10933408, 21.16779192, 0.140559605],
|
80
|
+
75.5 => [-1.120974043, 21.36383013, 0.141256489],
|
81
|
+
76.5 => [-1.133024799, 21.56058467, 0.141946613],
|
82
|
+
77.5 => [-1.145431351, 21.75810506, 0.142630785],
|
83
|
+
78.5 => [-1.158132499, 21.95644627, 0.143309898],
|
84
|
+
79.5 => [-1.171061612, 22.15566842, 0.143984924],
|
85
|
+
80.5 => [-1.184141975, 22.35583862, 0.144656953],
|
86
|
+
81.5 => [-1.197307185, 22.55702268, 0.145327009],
|
87
|
+
82.5 => [-1.210475099, 22.75929558, 0.145996289],
|
88
|
+
83.5 => [-1.223565263, 22.9627344, 0.146666],
|
89
|
+
84.5 => [-1.236497304, 23.16741888, 0.147337375],
|
90
|
+
85.5 => [-1.249186293, 23.37343341, 0.148011715],
|
91
|
+
86.5 => [-1.261555446, 23.58086145, 0.148690256],
|
92
|
+
87.5 => [-1.273523619, 23.78979096, 0.149374297],
|
93
|
+
88.5 => [-1.285013783, 24.00031064, 0.150065107],
|
94
|
+
89.5 => [-1.295952066, 24.21251028, 0.150763933],
|
95
|
+
90.5 => [-1.306268473, 24.42648043, 0.151471982],
|
96
|
+
91.5 => [-1.31589753, 24.642312, 0.152190413],
|
97
|
+
92.5 => [-1.324778843, 24.86009596, 0.152920322],
|
98
|
+
93.5 => [-1.332857581, 25.07992303, 0.153662731],
|
99
|
+
94.5 => [-1.340080195, 25.30188584, 0.154418635],
|
100
|
+
95.5 => [-1.346412105, 25.52606977, 0.155188768],
|
101
|
+
96.5 => [-1.351813296, 25.75256528, 0.155973912],
|
102
|
+
97.5 => [-1.356253969, 25.9814599, 0.156774684],
|
103
|
+
98.5 => [-1.359710858, 26.2128399, 0.157591579],
|
104
|
+
99.5 => [-1.362167159, 26.44679027, 0.158424964],
|
105
|
+
100.5 => [-1.363612378, 26.68339457, 0.159275071],
|
106
|
+
101.5 => [-1.364042106, 26.92273494, 0.160141995],
|
107
|
+
102.5 => [-1.363457829, 27.16489199, 0.161025689],
|
108
|
+
103.5 => [-1.361865669, 27.40994539, 0.161925976],
|
109
|
+
104.5 => [-1.35928261, 27.65796978, 0.162842452],
|
110
|
+
105.5 => [-1.355720571, 27.90904433, 0.163774719],
|
111
|
+
106.5 => [-1.351202536, 28.16324264, 0.164722138],
|
112
|
+
107.5 => [-1.345754408, 28.42063744, 0.165683945],
|
113
|
+
108.5 => [-1.339405453, 28.68130005, 0.166659247],
|
114
|
+
109.5 => [-1.332188093, 28.94530029, 0.167647017],
|
115
|
+
110.5 => [-1.324137479, 29.21270645, 0.168646104],
|
116
|
+
111.5 => [-1.315291073, 29.48358527, 0.169655235],
|
117
|
+
112.5 => [-1.30568824, 29.75800198, 0.170673022],
|
118
|
+
113.5 => [-1.295369867, 30.03602021, 0.17169797],
|
119
|
+
114.5 => [-1.284374967, 30.31770417, 0.17272854],
|
120
|
+
115.5 => [-1.272750864, 30.60311107, 0.173762961],
|
121
|
+
116.5 => [-1.260539193, 30.89230072, 0.174799493],
|
122
|
+
117.5 => [-1.247783611, 31.18532984, 0.175836284],
|
123
|
+
118.5 => [-1.234527763, 31.48225315, 0.176871417],
|
124
|
+
119.5 => [-1.220815047, 31.78312329, 0.177902912],
|
125
|
+
120.5 => [-1.206688407, 32.08799062, 0.17892874],
|
126
|
+
121.5 => [-1.19219015, 32.39690313, 0.17994683],
|
127
|
+
122.5 => [-1.177361786, 32.7099062, 0.180955078],
|
128
|
+
123.5 => [-1.162243894, 33.02704244, 0.181951361],
|
129
|
+
124.5 => [-1.146876007, 33.34835148, 0.182933537],
|
130
|
+
125.5 => [-1.131296524, 33.67386973, 0.183899465],
|
131
|
+
126.5 => [-1.115542634, 34.00363017, 0.184847006],
|
132
|
+
127.5 => [-1.099650267, 34.33766207, 0.185774041],
|
133
|
+
128.5 => [-1.083654055, 34.67599076, 0.18667847],
|
134
|
+
129.5 => [-1.067587314, 35.01863732, 0.187558229],
|
135
|
+
130.5 => [-1.051482972, 35.36561737, 0.18841128],
|
136
|
+
131.5 => [-1.035367321, 35.71694723, 0.189235738],
|
137
|
+
132.5 => [-1.019277299, 36.07262569, 0.190029545],
|
138
|
+
133.5 => [-1.003235326, 36.43265996, 0.190790973],
|
139
|
+
134.5 => [-0.987269866, 36.79704392, 0.191518224],
|
140
|
+
135.5 => [-0.971406609, 37.1657671, 0.192209619],
|
141
|
+
136.5 => [-0.955670107, 37.53881268, 0.192863569],
|
142
|
+
137.5 => [-0.940083834, 37.91615721, 0.193478582],
|
143
|
+
138.5 => [-0.924670244, 38.2977703, 0.194053274],
|
144
|
+
139.5 => [-0.909450843, 38.6836143, 0.194586368],
|
145
|
+
140.5 => [-0.894446258, 39.07364401, 0.195076705],
|
146
|
+
141.5 => [-0.879676305, 39.46780643, 0.195523246],
|
147
|
+
142.5 => [-0.865160071, 39.86604044, 0.195925079],
|
148
|
+
143.5 => [-0.850915987, 40.26827652, 0.196281418],
|
149
|
+
144.5 => [-0.836961905, 40.67443658, 0.196591612],
|
150
|
+
145.5 => [-0.823315176, 41.08443363, 0.19685514],
|
151
|
+
146.5 => [-0.809992726, 41.49817164, 0.19707162],
|
152
|
+
147.5 => [-0.797011132, 41.91554528, 0.197240806],
|
153
|
+
148.5 => [-0.784386693, 42.33643978, 0.197362591],
|
154
|
+
149.5 => [-0.772135506, 42.76073078, 0.197437004],
|
155
|
+
150.5 => [-0.760273528, 43.18828419, 0.19746421],
|
156
|
+
151.5 => [-0.748815968, 43.61895703, 0.197444522],
|
157
|
+
152.5 => [-0.737780398, 44.0525931, 0.197378345],
|
158
|
+
153.5 => [-0.727181568, 44.48903027, 0.197266263],
|
159
|
+
154.5 => [-0.717035494, 44.92809483, 0.197108968],
|
160
|
+
155.5 => [-0.707358338, 45.36960315, 0.196907274],
|
161
|
+
156.5 => [-0.698166437, 45.81336172, 0.196662115],
|
162
|
+
157.5 => [-0.689476327, 46.25916729, 0.196374538],
|
163
|
+
158.5 => [-0.68130475, 46.70680701, 0.196045701],
|
164
|
+
159.5 => [-0.673668658, 47.15605863, 0.195676862],
|
165
|
+
160.5 => [-0.666585194, 47.60669074, 0.19526938],
|
166
|
+
161.5 => [-0.660069969, 48.05846572, 0.19482473],
|
167
|
+
162.5 => [-0.654142602, 48.51113138, 0.19434441],
|
168
|
+
163.5 => [-0.648819666, 48.96443224, 0.193830046],
|
169
|
+
164.5 => [-0.644118611, 49.41810374, 0.193283319],
|
170
|
+
165.5 => [-0.640056805, 49.87187409, 0.192705974],
|
171
|
+
166.5 => [-0.636651424, 50.32546478, 0.192099812],
|
172
|
+
167.5 => [-0.633919328, 50.77859121, 0.191466681],
|
173
|
+
168.5 => [-0.631876912, 51.23096332, 0.190808471],
|
174
|
+
169.5 => [-0.63053994, 51.68228625, 0.190127105],
|
175
|
+
170.5 => [-0.629923353, 52.13226113, 0.18942453],
|
176
|
+
171.5 => [-0.630041066, 52.58058583, 0.188702714],
|
177
|
+
172.5 => [-0.630905733, 53.02695588, 0.187963636],
|
178
|
+
173.5 => [-0.632528509, 53.47106525, 0.187209281],
|
179
|
+
174.5 => [-0.634918779, 53.91260737, 0.18644163],
|
180
|
+
175.5 => [-0.638083884, 54.35127608, 0.185662657],
|
181
|
+
176.5 => [-0.642028835, 54.78676659, 0.184874323],
|
182
|
+
177.5 => [-0.646756013, 55.21877657, 0.184078567],
|
183
|
+
178.5 => [-0.652262297, 55.64701131, 0.183277339],
|
184
|
+
179.5 => [-0.658551638, 56.07116407, 0.182472427],
|
185
|
+
180.5 => [-0.665609025, 56.49095862, 0.181665781],
|
186
|
+
181.5 => [-0.673425951, 56.90610886, 0.18085918],
|
187
|
+
182.5 => [-0.681987284, 57.31634059, 0.180054395],
|
188
|
+
183.5 => [-0.691273614, 57.72138846, 0.179253153],
|
189
|
+
184.5 => [-0.701261055, 58.12099696, 0.178457127],
|
190
|
+
185.5 => [-0.711921092, 58.51492143, 0.177667942],
|
191
|
+
186.5 => [-0.723218488, 58.90293208, 0.176887192],
|
192
|
+
187.5 => [-0.735121189, 59.28479948, 0.176116307],
|
193
|
+
188.5 => [-0.747580416, 59.66032626, 0.175356814],
|
194
|
+
189.5 => [-0.760550666, 60.02931704, 0.174610071],
|
195
|
+
190.5 => [-0.773984558, 60.39158721, 0.173877336],
|
196
|
+
191.5 => [-0.787817728, 60.74698785, 0.173159953],
|
197
|
+
192.5 => [-0.801993069, 61.09536847, 0.172459052],
|
198
|
+
193.5 => [-0.816446409, 61.43660077, 0.171775726],
|
199
|
+
194.5 => [-0.831110299, 61.77057372, 0.171110986],
|
200
|
+
195.5 => [-0.845914498, 62.09719399, 0.170465756],
|
201
|
+
196.5 => [-0.860786514, 62.41638628, 0.169840869],
|
202
|
+
197.5 => [-0.875652181, 62.72809362, 0.169237063],
|
203
|
+
198.5 => [-0.890436283, 63.03227756, 0.168654971],
|
204
|
+
199.5 => [-0.905063185, 63.32891841, 0.168095124],
|
205
|
+
200.5 => [-0.91945749, 63.61801537, 0.16755794],
|
206
|
+
201.5 => [-0.933544683, 63.89958662, 0.167043722],
|
207
|
+
202.5 => [-0.947251765, 64.17366943, 0.166552654],
|
208
|
+
203.5 => [-0.960507855, 64.44032016, 0.166084798],
|
209
|
+
204.5 => [-0.973244762, 64.69961427, 0.16564009],
|
210
|
+
205.5 => [-0.985397502, 64.95164625, 0.165218341],
|
211
|
+
206.5 => [-0.996904762, 65.1965295, 0.164819236],
|
212
|
+
207.5 => [-1.007705555, 65.43440186, 0.16444238],
|
213
|
+
208.5 => [-1.017756047, 65.66540015, 0.164087103],
|
214
|
+
209.5 => [-1.027002713, 65.88970117, 0.163752791],
|
215
|
+
210.5 => [-1.035402243, 66.10749114, 0.163438661],
|
216
|
+
211.5 => [-1.042916356, 66.31897311, 0.163143825],
|
217
|
+
212.5 => [-1.049511871, 66.52436618, 0.162867311],
|
218
|
+
213.5 => [-1.055160732, 66.72390443, 0.162608072],
|
219
|
+
214.5 => [-1.059840019, 66.91783563, 0.162365006],
|
220
|
+
215.5 => [-1.063531973, 67.10641956, 0.162136973],
|
221
|
+
216.5 => [-1.066224038, 67.28992603, 0.161922819],
|
222
|
+
217.5 => [-1.067908908, 67.46863255, 0.161721398],
|
223
|
+
218.5 => [-1.068589885, 67.64281378, 0.16153153],
|
224
|
+
219.5 => [-1.068261146, 67.8127675, 0.161352313],
|
225
|
+
220.5 => [-1.066933756, 67.97877331, 0.161182785],
|
226
|
+
221.5 => [-1.064620976, 68.14111022, 0.161022184],
|
227
|
+
222.5 => [-1.061341755, 68.30004741, 0.160869943],
|
228
|
+
223.5 => [-1.057116957, 68.4558454, 0.160725793],
|
229
|
+
224.5 => [-1.051988979, 68.60872174, 0.160589574],
|
230
|
+
225.5 => [-1.04599033, 68.75889263, 0.1604617],
|
231
|
+
226.5 => [-1.039168248, 68.90653028, 0.160342924],
|
232
|
+
227.5 => [-1.031579574, 69.05176427, 0.160234478],
|
233
|
+
228.5 => [-1.023291946, 69.19467288, 0.160138158],
|
234
|
+
229.5 => [-1.014385118, 69.33527376, 0.160056393],
|
235
|
+
230.5 => [-1.004952366, 69.47351373, 0.159992344],
|
236
|
+
231.5 => [-0.995101924, 69.60925782, 0.159949989],
|
237
|
+
232.5 => [-0.984958307, 69.74227758, 0.159934231],
|
238
|
+
233.5 => [-0.974663325, 69.87223885, 0.159951004],
|
239
|
+
234.5 => [-0.964376555, 69.99868896, 0.160007394],
|
240
|
+
235.5 => [-0.954274945, 70.12104381, 0.160111769],
|
241
|
+
236.5 => [-0.944551187, 70.23857482, 0.160273918],
|
242
|
+
237.5 => [-0.935410427, 70.35039626, 0.160505203],
|
243
|
+
238.5 => [-0.927059784, 70.45546105, 0.160818788],
|
244
|
+
239.5 => [-0.919718461, 70.55252127, 0.161229617],
|
245
|
+
240.0 => [-0.91648762, 70.59761453, 0.161476792]
|
246
|
+
},
|
247
|
+
|
248
|
+
:f => {
|
249
|
+
0.0 => [1.509187507, 3.39918645, 0.142106724],
|
250
|
+
0.5 => [1.357944315, 3.79752846, 0.138075916],
|
251
|
+
1.5 => [1.105537708, 4.544776513, 0.131733888],
|
252
|
+
2.5 => [0.902596648, 5.230584214, 0.126892697],
|
253
|
+
3.5 => [0.734121414, 5.859960798, 0.123025182],
|
254
|
+
4.5 => [0.590235275, 6.437587751, 0.119840911],
|
255
|
+
5.5 => [0.464391566, 6.967850457, 0.117166868],
|
256
|
+
6.5 => [0.352164071, 7.454854109, 0.11489384],
|
257
|
+
7.5 => [0.250497889, 7.902436186, 0.112949644],
|
258
|
+
8.5 => [0.15724751, 8.314178377, 0.11128469],
|
259
|
+
9.5 => [0.070885725, 8.693418423, 0.109863709],
|
260
|
+
10.5 => [-0.00968493, 9.043261854, 0.10866078],
|
261
|
+
11.5 => [-0.085258, 9.366593571, 0.10765621],
|
262
|
+
12.5 => [-0.15640945, 9.666089185, 0.106834517],
|
263
|
+
13.5 => [-0.22355869, 9.944226063, 0.106183085],
|
264
|
+
14.5 => [-0.28701346, 10.20329397, 0.105691242],
|
265
|
+
15.5 => [-0.34699919, 10.4454058, 0.105349631],
|
266
|
+
16.5 => [-0.40368918, 10.67250698, 0.105149754],
|
267
|
+
17.5 => [-0.45721877, 10.88638558, 0.105083666],
|
268
|
+
18.5 => [-0.50770077, 11.08868151, 0.105143752],
|
269
|
+
19.5 => [-0.55523599, 11.28089537, 0.105322575],
|
270
|
+
20.5 => [-0.59992113, 11.46439708, 0.10561278],
|
271
|
+
21.5 => [-0.64185418, 11.64043402, 0.106007025],
|
272
|
+
22.5 => [-0.6811381, 11.81013895, 0.106497957],
|
273
|
+
23.5 => [-0.71788283, 11.97453748, 0.107078197],
|
274
|
+
24.5 => [-0.75220617, 12.13455528, 0.107740346],
|
275
|
+
25.5 => [-0.78423359, 12.2910249, 0.108477009],
|
276
|
+
26.5 => [-0.81409743, 12.44469237, 0.109280822],
|
277
|
+
27.5 => [-0.8419355, 12.59622335, 0.110144488],
|
278
|
+
28.5 => [-0.86788939, 12.74620911, 0.111060814],
|
279
|
+
29.5 => [-0.89210264, 12.89517218, 0.112022758],
|
280
|
+
30.5 => [-0.91471881, 13.04357164, 0.113023466],
|
281
|
+
31.5 => [-0.93587966, 13.19180827, 0.114056316],
|
282
|
+
32.5 => [-0.95572344, 13.34022934, 0.115114952],
|
283
|
+
33.5 => [-0.97438101, 13.48913357, 0.116193337],
|
284
|
+
34.5 => [-0.99198075, 13.63877446, 0.11728575],
|
285
|
+
35.5 => [-1.00864074, 13.78936547, 0.118386847],
|
286
|
+
36.5 => [-1.024471278, 13.94108332, 0.119491669],
|
287
|
+
37.5 => [-1.039573604, 14.09407175, 0.120595658],
|
288
|
+
38.5 => [-1.054039479, 14.24844498, 0.121694676],
|
289
|
+
39.5 => [-1.067946784, 14.40429169, 0.12278503],
|
290
|
+
40.5 => [-1.081374153, 14.56167529, 0.1238634],
|
291
|
+
41.5 => [-1.094381409, 14.72064045, 0.124926943],
|
292
|
+
42.5 => [-1.107021613, 14.88121352, 0.125973221],
|
293
|
+
43.5 => [-1.119338692, 15.04340553, 0.127000212],
|
294
|
+
44.5 => [-1.131367831, 15.20721443, 0.128006292],
|
295
|
+
45.5 => [-1.143135936, 15.37262729, 0.128990225],
|
296
|
+
46.5 => [-1.15466215, 15.53962221, 0.129951143],
|
297
|
+
47.5 => [-1.165958392, 15.70817017, 0.130888527],
|
298
|
+
48.5 => [-1.177029925, 15.87823668, 0.131802186],
|
299
|
+
49.5 => [-1.187871001, 16.04978452, 0.132692269],
|
300
|
+
50.5 => [-1.198484073, 16.2227706, 0.133559108],
|
301
|
+
51.5 => [-1.208853947, 16.39715363, 0.134403386],
|
302
|
+
52.5 => [-1.218965087, 16.57289122, 0.13522599],
|
303
|
+
53.5 => [-1.228798212, 16.74994187, 0.136028014],
|
304
|
+
54.5 => [-1.238330855, 16.92826587, 0.136810739],
|
305
|
+
55.5 => [-1.247537914, 17.10782615, 0.137575606],
|
306
|
+
56.5 => [-1.256392179, 17.28858894, 0.138324193],
|
307
|
+
57.5 => [-1.264864846, 17.47052444, 0.139058192],
|
308
|
+
58.5 => [-1.272926011, 17.65360733, 0.139779387],
|
309
|
+
59.5 => [-1.28054514, 17.83781722, 0.140489635],
|
310
|
+
60.5 => [-1.287691525, 18.02313904, 0.141190842],
|
311
|
+
61.5 => [-1.294332076, 18.20956418, 0.141884974],
|
312
|
+
62.5 => [-1.300441561, 18.3970876, 0.142573939],
|
313
|
+
63.5 => [-1.305989011, 18.58571243, 0.143259709],
|
314
|
+
64.5 => [-1.310946941, 18.77544728, 0.143944216],
|
315
|
+
65.5 => [-1.315289534, 18.966307, 0.144629359],
|
316
|
+
66.5 => [-1.318992925, 19.15831267, 0.14531699],
|
317
|
+
67.5 => [-1.322035315, 19.35149163, 0.146008903],
|
318
|
+
68.5 => [-1.324398133, 19.54587708, 0.146706813],
|
319
|
+
69.5 => [-1.326064539, 19.74150854, 0.147412363],
|
320
|
+
70.5 => [-1.327020415, 19.93843145, 0.148127109],
|
321
|
+
71.5 => [-1.327256387, 20.13669623, 0.148852482],
|
322
|
+
72.5 => [-1.326763834, 20.33635961, 0.149589838],
|
323
|
+
73.5 => [-1.325538668, 20.53748298, 0.1503404],
|
324
|
+
74.5 => [-1.323579654, 20.74013277, 0.151105277],
|
325
|
+
75.5 => [-1.320888012, 20.94438028, 0.151885464],
|
326
|
+
76.5 => [-1.317468695, 21.15030093, 0.152681819],
|
327
|
+
77.5 => [-1.313331446, 21.35797332, 0.15349505],
|
328
|
+
78.5 => [-1.308487081, 21.56748045, 0.154325756],
|
329
|
+
79.5 => [-1.302948173, 21.77890902, 0.155174414],
|
330
|
+
80.5 => [-1.296733913, 21.99234686, 0.15604132],
|
331
|
+
81.5 => [-1.289863329, 22.20788541, 0.156926667],
|
332
|
+
82.5 => [-1.282358762, 22.4256177, 0.157830504],
|
333
|
+
83.5 => [-1.274244931, 22.64563824, 0.158752743],
|
334
|
+
84.5 => [-1.265548787, 22.86804258, 0.159693163],
|
335
|
+
85.5 => [-1.256299378, 23.09292679, 0.16065141],
|
336
|
+
86.5 => [-1.24653066, 23.32038549, 0.161626956],
|
337
|
+
87.5 => [-1.236266832, 23.55051871, 0.162619308],
|
338
|
+
88.5 => [-1.225551344, 23.78341652, 0.1636276],
|
339
|
+
89.5 => [-1.214410914, 24.01917703, 0.1646511],
|
340
|
+
90.5 => [-1.202884389, 24.25789074, 0.165688808],
|
341
|
+
91.5 => [-1.191007906, 24.49964778, 0.166739662],
|
342
|
+
92.5 => [-1.178818621, 24.74453536, 0.167802495],
|
343
|
+
93.5 => [-1.166354376, 24.99263735, 0.168876037],
|
344
|
+
94.5 => [-1.153653688, 25.24403371, 0.169958922],
|
345
|
+
95.5 => [-1.140751404, 25.49880264, 0.171049756],
|
346
|
+
96.5 => [-1.127684095, 25.7570168, 0.172147043],
|
347
|
+
97.5 => [-1.114490244, 26.01874261, 0.173249185],
|
348
|
+
98.5 => [-1.101204848, 26.28404312, 0.174354569],
|
349
|
+
99.5 => [-1.087863413, 26.55297507, 0.175461512],
|
350
|
+
100.5 => [-1.074500927, 26.82558904, 0.176568284],
|
351
|
+
101.5 => [-1.061151213, 27.1019295, 0.177673124],
|
352
|
+
102.5 => [-1.047847141, 27.38203422, 0.178774242],
|
353
|
+
103.5 => [-1.034620551, 27.66593402, 0.179869829],
|
354
|
+
104.5 => [-1.021502197, 27.9536524, 0.180958063],
|
355
|
+
105.5 => [-1.008521695, 28.24520531, 0.182037118],
|
356
|
+
106.5 => [-0.995707494, 28.54060085, 0.183105172],
|
357
|
+
107.5 => [-0.983086844, 28.83983907, 0.18416041],
|
358
|
+
108.5 => [-0.970685789, 29.14291171, 0.185201039],
|
359
|
+
109.5 => [-0.958529157, 29.44980208, 0.186225287],
|
360
|
+
110.5 => [-0.946640568, 29.76048479, 0.187231416],
|
361
|
+
111.5 => [-0.935042447, 30.0749257, 0.188217723],
|
362
|
+
112.5 => [-0.923756041, 30.39308176, 0.18918255],
|
363
|
+
113.5 => [-0.912801445, 30.71490093, 0.190124286],
|
364
|
+
114.5 => [-0.902197638, 31.0403221, 0.191041375],
|
365
|
+
115.5 => [-0.891962513, 31.36927506, 0.191932319],
|
366
|
+
116.5 => [-0.882112919, 31.7016805, 0.192795682],
|
367
|
+
117.5 => [-0.872664706, 32.03744999, 0.193630095],
|
368
|
+
118.5 => [-0.863632768, 32.37648607, 0.19443426],
|
369
|
+
119.5 => [-0.855031092, 32.71868225, 0.195206948],
|
370
|
+
120.5 => [-0.846872805, 33.06392318, 0.195947008],
|
371
|
+
121.5 => [-0.839170224, 33.4120847, 0.196653365],
|
372
|
+
122.5 => [-0.831934903, 33.76303402, 0.197325023],
|
373
|
+
123.5 => [-0.825177688, 34.1166299, 0.197961065],
|
374
|
+
124.5 => [-0.818908758, 34.47272283, 0.198560655],
|
375
|
+
125.5 => [-0.813137675, 34.83115524, 0.199123037],
|
376
|
+
126.5 => [-0.807873433, 35.19176177, 0.199647538],
|
377
|
+
127.5 => [-0.803122613, 35.55437176, 0.200133598],
|
378
|
+
128.5 => [-0.79889771, 35.91879976, 0.200580618],
|
379
|
+
129.5 => [-0.795203499, 36.28486194, 0.200988216],
|
380
|
+
130.5 => [-0.792047959, 36.65236365, 0.201356017],
|
381
|
+
131.5 => [-0.789435274, 37.02110818, 0.201683791],
|
382
|
+
132.5 => [-0.787374433, 37.39088668, 0.201971282],
|
383
|
+
133.5 => [-0.785870695, 37.76148905, 0.202218375],
|
384
|
+
134.5 => [-0.784929893, 38.1326991, 0.202425006],
|
385
|
+
135.5 => [-0.784557605, 38.50429603, 0.202591183],
|
386
|
+
136.5 => [-0.78475917, 38.87605489, 0.20271698],
|
387
|
+
137.5 => [-0.785539703, 39.24774707, 0.202802535],
|
388
|
+
138.5 => [-0.786904102, 39.61914076, 0.202848049],
|
389
|
+
139.5 => [-0.788858208, 39.98999994, 0.202853758],
|
390
|
+
140.5 => [-0.791403051, 40.36009244, 0.202820053],
|
391
|
+
141.5 => [-0.794546352, 40.72917544, 0.202747236],
|
392
|
+
142.5 => [-0.79829102, 41.09701099, 0.202635758],
|
393
|
+
143.5 => [-0.802640891, 41.46335907, 0.202486098],
|
394
|
+
144.5 => [-0.807599577, 41.82797963, 0.202298783],
|
395
|
+
145.5 => [-0.813170461, 42.19063313, 0.202074385],
|
396
|
+
146.5 => [-0.819356692, 42.55108107, 0.201813521],
|
397
|
+
147.5 => [-0.826161176, 42.90908653, 0.201516851],
|
398
|
+
148.5 => [-0.833586038, 43.2644155, 0.201185082],
|
399
|
+
149.5 => [-0.841634949, 43.61683402, 0.200818928],
|
400
|
+
150.5 => [-0.850307441, 43.9661169, 0.200419208],
|
401
|
+
151.5 => [-0.859607525, 44.31203579, 0.199986681],
|
402
|
+
152.5 => [-0.869534339, 44.65437319, 0.199522233],
|
403
|
+
153.5 => [-0.880088651, 44.99291356, 0.199026736],
|
404
|
+
154.5 => [-0.891270585, 45.32744704, 0.198501096],
|
405
|
+
155.5 => [-0.903079458, 45.65777013, 0.197946255],
|
406
|
+
156.5 => [-0.915513542, 45.98368656, 0.197363191],
|
407
|
+
157.5 => [-0.928569454, 46.30500858, 0.196752931],
|
408
|
+
158.5 => [-0.942245864, 46.62155183, 0.196116472],
|
409
|
+
159.5 => [-0.956537923, 46.93314404, 0.19545489],
|
410
|
+
160.5 => [-0.971440492, 47.23962058, 0.194769279],
|
411
|
+
161.5 => [-0.986947308, 47.54082604, 0.194060758],
|
412
|
+
162.5 => [-1.003050887, 47.83661466, 0.193330477],
|
413
|
+
163.5 => [-1.019742425, 48.12685082, 0.192579614],
|
414
|
+
164.5 => [-1.037011698, 48.41140938, 0.191809374],
|
415
|
+
165.5 => [-1.054846957, 48.69017613, 0.191020995],
|
416
|
+
166.5 => [-1.073234825, 48.9630481, 0.190215739],
|
417
|
+
167.5 => [-1.092160195, 49.22993391, 0.189394901],
|
418
|
+
168.5 => [-1.111606122, 49.49075409, 0.188559804],
|
419
|
+
169.5 => [-1.131553723, 49.74544132, 0.187711798],
|
420
|
+
170.5 => [-1.151982079, 49.99394068, 0.186852266],
|
421
|
+
171.5 => [-1.172868141, 50.23620985, 0.185982617],
|
422
|
+
172.5 => [-1.19418462, 50.47222213, 0.185104331],
|
423
|
+
173.5 => [-1.215907492, 50.70195581, 0.184218803],
|
424
|
+
174.5 => [-1.238005268, 50.92540942, 0.183327556],
|
425
|
+
175.5 => [-1.260445591, 51.14259229, 0.182432113],
|
426
|
+
176.5 => [-1.283193626, 51.3535268, 0.181534018],
|
427
|
+
177.5 => [-1.306212032, 51.55824831, 0.180634839],
|
428
|
+
178.5 => [-1.329460945, 51.75680513, 0.179736168],
|
429
|
+
179.5 => [-1.35289798, 51.94925841, 0.178839614],
|
430
|
+
180.5 => [-1.376478254, 52.13568193, 0.177946804],
|
431
|
+
181.5 => [-1.400154426, 52.31616197, 0.177059379],
|
432
|
+
182.5 => [-1.423876772, 52.49079703, 0.17617899],
|
433
|
+
183.5 => [-1.447593267, 52.65969757, 0.175307296],
|
434
|
+
184.5 => [-1.471249702, 52.82298572, 0.174445958],
|
435
|
+
185.5 => [-1.494789826, 52.9807949, 0.173596636],
|
436
|
+
186.5 => [-1.518155513, 53.13326946, 0.172760982],
|
437
|
+
187.5 => [-1.541286949, 53.28056425, 0.17194064],
|
438
|
+
188.5 => [-1.564122852, 53.42284417, 0.171137232],
|
439
|
+
189.5 => [-1.586600712, 53.5602837, 0.170352363],
|
440
|
+
190.5 => [-1.608657054, 53.69306637, 0.169587605],
|
441
|
+
191.5 => [-1.630227728, 53.82138422, 0.168844497],
|
442
|
+
192.5 => [-1.651248208, 53.94543725, 0.168124538],
|
443
|
+
193.5 => [-1.67165392, 54.06543278, 0.167429179],
|
444
|
+
194.5 => [-1.691380583, 54.18158486, 0.166759816],
|
445
|
+
195.5 => [-1.710364557, 54.29411356, 0.166117788],
|
446
|
+
196.5 => [-1.728543207, 54.40324431, 0.165504365],
|
447
|
+
197.5 => [-1.745855274, 54.50920717, 0.164920747],
|
448
|
+
198.5 => [-1.762241248, 54.61223603, 0.164368054],
|
449
|
+
199.5 => [-1.777643747, 54.71256787, 0.16384732],
|
450
|
+
200.5 => [-1.792007891, 54.81044184, 0.163359491],
|
451
|
+
201.5 => [-1.805281675, 54.90609842, 0.162905415],
|
452
|
+
202.5 => [-1.817416335, 54.99977846, 0.162485839],
|
453
|
+
203.5 => [-1.828366707, 55.09172217, 0.162101402],
|
454
|
+
204.5 => [-1.838091576, 55.18216811, 0.161752634],
|
455
|
+
205.5 => [-1.846554015, 55.271352, 0.161439944],
|
456
|
+
206.5 => [-1.853721704, 55.35950558, 0.161163623],
|
457
|
+
207.5 => [-1.859567242, 55.44685531, 0.160923833],
|
458
|
+
208.5 => [-1.864068443, 55.53362107, 0.160720609],
|
459
|
+
209.5 => [-1.86720861, 55.62001464, 0.16055385],
|
460
|
+
210.5 => [-1.8689768, 55.70623826, 0.160423319],
|
461
|
+
211.5 => [-1.869371157, 55.79247939, 0.160328578],
|
462
|
+
212.5 => [-1.868386498, 55.87892356, 0.160269232],
|
463
|
+
213.5 => [-1.866033924, 55.96573022, 0.160244549],
|
464
|
+
214.5 => [-1.862327775, 56.05304601, 0.160253714],
|
465
|
+
215.5 => [-1.857289195, 56.14099882, 0.160295765],
|
466
|
+
216.5 => [-1.850946286, 56.22969564, 0.16036959],
|
467
|
+
217.5 => [-1.84333425, 56.3192203, 0.16047393],
|
468
|
+
218.5 => [-1.834495505, 56.40963105, 0.160607377],
|
469
|
+
219.5 => [-1.824479785, 56.50095811, 0.16076838],
|
470
|
+
220.5 => [-1.813344222, 56.59320107, 0.160955249],
|
471
|
+
221.5 => [-1.801153404, 56.68632619, 0.161166157],
|
472
|
+
222.5 => [-1.787979408, 56.78026364, 0.161399151],
|
473
|
+
223.5 => [-1.773901816, 56.87490465, 0.161652158],
|
474
|
+
224.5 => [-1.759007704, 56.97009856, 0.161922998],
|
475
|
+
225.5 => [-1.743391606, 57.06564989, 0.162209399],
|
476
|
+
226.5 => [-1.72715546, 57.16131528, 0.162509006],
|
477
|
+
227.5 => [-1.710410733, 57.25679821, 0.162819353],
|
478
|
+
228.5 => [-1.693267093, 57.35175792, 0.163138124],
|
479
|
+
229.5 => [-1.67585442, 57.44578172, 0.163462715],
|
480
|
+
230.5 => [-1.658302847, 57.53840429, 0.163790683],
|
481
|
+
231.5 => [-1.640747464, 57.62910094, 0.164119574],
|
482
|
+
232.5 => [-1.623332891, 57.7172758, 0.164446997],
|
483
|
+
233.5 => [-1.606209374, 57.80226553, 0.164770638],
|
484
|
+
234.5 => [-1.589533346, 57.88333502, 0.165088289],
|
485
|
+
235.5 => [-1.573467222, 57.95967458, 0.165397881],
|
486
|
+
236.5 => [-1.558179166, 58.0303973, 0.165697507],
|
487
|
+
237.5 => [-1.543846192, 58.09453209, 0.165985386],
|
488
|
+
238.5 => [-1.530642461, 58.15103575, 0.166260109],
|
489
|
+
239.5 => [-1.518754013, 58.1987714, 0.16652037],
|
490
|
+
240.0 => [-1.51336185, 58.21897289, 0.166644749]
|
491
|
+
}
|
492
|
+
}
|
493
|
+
end
|
494
|
+
|
@@ -1,8 +1,11 @@
|
|
1
1
|
module HealthStats
|
2
|
-
module
|
3
|
-
|
4
|
-
|
5
|
-
autoload :Female, File.dirname(__FILE__) + '/cdc_data/bmi'
|
2
|
+
module CDC
|
3
|
+
def self.data
|
4
|
+
@data ||= {}
|
6
5
|
end
|
7
6
|
end
|
8
|
-
end
|
7
|
+
end
|
8
|
+
|
9
|
+
require File.dirname(__FILE__) + '/cdc_data/bmi'
|
10
|
+
require File.dirname(__FILE__) + '/cdc_data/weight'
|
11
|
+
require File.dirname(__FILE__) + '/cdc_data/height'
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module HealthStats
|
2
|
+
module Percentile
|
3
|
+
include Statistics
|
4
|
+
|
5
|
+
def percentile_for_age(stat)
|
6
|
+
stat_value = case stat
|
7
|
+
when :weight
|
8
|
+
kilogram_weight
|
9
|
+
when :height
|
10
|
+
centimeter_height
|
11
|
+
else
|
12
|
+
send stat
|
13
|
+
end
|
14
|
+
|
15
|
+
month_age = age_in_months
|
16
|
+
lms_value = nil
|
17
|
+
|
18
|
+
return unless stat_value && month_age && gender
|
19
|
+
return if month_age < 24.0 || month_age > 241.0
|
20
|
+
|
21
|
+
chart = CDC.data[stat][gender.to_sym]
|
22
|
+
|
23
|
+
while lms_value.nil?
|
24
|
+
lms_value = chart[month_age]
|
25
|
+
month_age -= 0.5
|
26
|
+
end
|
27
|
+
|
28
|
+
# I feel dirty.
|
29
|
+
((poz(lms(stat_value, *lms_value)) * 1000000).to_i / 100.0).round / 100.0
|
30
|
+
end
|
31
|
+
|
32
|
+
def kilogram_weight
|
33
|
+
weight * 0.45359237
|
34
|
+
end
|
35
|
+
|
36
|
+
def centimeter_height
|
37
|
+
height * 2.54
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
include Percentile
|
42
|
+
end
|
data/lib/health_stats.rb
CHANGED
@@ -2,6 +2,8 @@ module HealthStats
|
|
2
2
|
|
3
3
|
end
|
4
4
|
|
5
|
-
require 'health_stats/age'
|
6
|
-
require 'health_stats/statistics'
|
7
|
-
require 'health_stats/bmi'
|
5
|
+
require File.dirname(__FILE__) + '/health_stats/age'
|
6
|
+
require File.dirname(__FILE__) + '/health_stats/statistics'
|
7
|
+
require File.dirname(__FILE__) + '/health_stats/bmi'
|
8
|
+
require File.dirname(__FILE__) + '/health_stats/cdc_data'
|
9
|
+
require File.dirname(__FILE__) + '/health_stats/percentile'
|
data/spec/spec_health_stats.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
$:.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
|
2
2
|
require 'health_stats'
|
3
|
-
require '
|
3
|
+
require 'active_support/all'
|
4
4
|
|
5
5
|
REQUIRED_ATTRIBUTES = [:height, :weight, :gender, :dob]
|
6
6
|
|
@@ -74,30 +74,46 @@ describe 'HealthStats' do
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
-
describe '#
|
77
|
+
describe '#percentile_for_age' do
|
78
78
|
[:dob, :gender].each do |attribute|
|
79
79
|
it "should return nil if #{attribute} is nil" do
|
80
80
|
@person.send("#{attribute}=", nil)
|
81
|
-
@person.
|
81
|
+
@person.percentile_for_age(:bmi).should.be.nil
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
85
|
it "should return nil if outside cdc date range" do
|
86
86
|
@person.dob = 1.month.ago
|
87
|
-
@person.
|
87
|
+
@person.percentile_for_age(:bmi).should.be.nil
|
88
88
|
|
89
89
|
@person.dob == 20.years.ago - 10.days - 2.months
|
90
|
-
@person.
|
90
|
+
@person.percentile_for_age(:bmi).should.be.nil
|
91
91
|
end
|
92
92
|
|
93
|
-
it "should return percentile (precision 2)" do
|
94
|
-
@person.
|
93
|
+
it "should return percentile for bmi (precision 2)" do
|
94
|
+
@person.percentile_for_age(:bmi).should == 91.02
|
95
95
|
|
96
96
|
@person.gender = 'm'
|
97
97
|
@person.dob = 2.years.ago - 1.month - 18.days
|
98
98
|
@person.weight = 14
|
99
99
|
@person.height = 24
|
100
|
-
@person.
|
100
|
+
@person.percentile_for_age(:bmi).should == 66.49
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should return percentile for weight (precision 2)" do
|
104
|
+
@person.gender = 'm'
|
105
|
+
@person.dob = 5.years.ago - 1.month - 18.days
|
106
|
+
@person.weight = 40
|
107
|
+
@person.height = 44
|
108
|
+
@person.percentile_for_age(:weight).should == 41.16
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should return percentile for height (precision 2)" do
|
112
|
+
@person.gender = 'm'
|
113
|
+
@person.dob = 5.years.ago - 1.month - 18.days
|
114
|
+
@person.weight = 40
|
115
|
+
@person.height = 44
|
116
|
+
@person.percentile_for_age(:height).should == 66.88
|
101
117
|
end
|
102
118
|
end
|
103
119
|
end
|