LoginSignup
2
0

More than 1 year has passed since last update.

水分代謝量を予測できるようになったらしいのでWEBアプリとして実装した

Posted at

TL;DR

人の体から毎日何㍑の水分が出ていくかを計算できるようになったらしい。
誰でも簡単に計算できるwebサービスにしてみた。
https://canid-56.github.io/water-metabolism/

経緯

人の体の60%は水分ということは分かっていたが、毎日どの程度の水分が出たり入ったりするかは分かっていなかったらしい。
しかも、自分の体格や気象条件などから個人の水分の代謝量を計算できるらしい。
自分が毎日どれだけの水分を失っているのかを知れれば、毎日どれだけ水分を摂取する必要があるかを何となく知る事ができるので良いですね。

ソース : 『ヒトの体の水の代謝回転量を予測する式を世界で初めて発明 ~23カ国5604人を対象とした国際共同調査の結果から~』 国立研究開発法人 医薬基盤・健康・栄養研究所
https://www.nibiohn.go.jp/information/nihn/2022/11/008211.html
論文 : "Variation in human water turnover associated with environmental and lifestyle factors", Science
https://www.science.org/doi/10.1126/science.abm8668

計算式

以下の式が水分代謝量の計算式とのこと。たぶん簡単な線形回帰モデルで推定したっぽいですね。

水の代謝回転 (㎖/日) = [1076×身体活動レベル] + [14.34×体重(kg)] + [374.9×性] + [5.823×1 日の平均湿度(%)] + [1070×アスリート] + [104.6×人間開発指数(HDI)] + [0.4726×標高(m)] – [0.3529×年齢の 2 乗] + [24.78×年齢(歳)] + [1.865×平均気温の 2 乗] – [19.66×平均気温(℃)] –713.1

変数は以下のような意味のようです。
本人の要因はまあそうでしょうという感じ。
環境の要因は、飽和水蒸気量的な話だと思います。
社会的な要因は、発展途上国は肉体労働者が多いとかそういう理由だろうとのこと。

  • 本人の要因
      • 女性が0, 男性が1
    • 年齢
    • 体重
    • 身体活動レベル
      • 座位中心な場合 1.5、平均的な場合 1.75、高い場合 2.0
    • アスリート
      • 非アスリート 0、アスリート 1
  • 環境の要因
    • 平均気温
    • 平均湿度
    • 標高
  • 社会的な要因

基本的に各変数と水分代謝量は線形なので理解しやすいですね。
年齢と平均気温は2次の項が入っているので、どういう関数系になるか描いてみます。
簡単のために、変数は全て独立であると暗に仮定しています。また、年齢や平均気温が0である点を0としています。

import numpy as np
import matplotlib.pyplot as plt
age = np.arange(1,91)
water_age = - 0.3529*age**2 + 24.78*age
plt.plot(age, water_age)
plt.xlabel("age")
plt.ylabel("water")
plt.show()

water_age.png

mean_temp = np.linspace(-10,30,100)
water_mean_temp = 1.865*mean_temp**2 - 19.66*mean_temp
plt.plot(mean_temp, water_mean_temp)
plt.xlabel("mean temp")
plt.ylabel("water")
plt.show()

water_temp.png

年齢については、30代後半の働き盛りをピークに40代からは代謝が落ちていくみたいです。
平均気温は、基本的に加速して上がり続けるようです。飽和水蒸気の曲線と似ています。平均気温が5℃以下の時は傾きがマイナスになっていますが、そもそも平均気温が5℃以下になるような状況が少ないので、あまり気にしなくてもいいのだと思います。

実装

注意 : Bootstrap と Vue しか知らない雑魚が作ったページなので、だいぶダサいです。

注意

ただし、ここで注意していただきたい点は、20 歳代男性で 1 日に平均 4.2ℓ の水分が失われるとしても、1 日 4.2ℓ の水を飲む必要はないということです。

体内で作られたり、水蒸気を呼吸したり、食事の中の水分である程度補うことができるということらしい。

もっとやりたいこと

  • 天気予報系のAPIからその日の平均気温と湿度を入れられるようにしたい
  • 居住国からHDIを自動取得で割り振りたい
  • GPSから天気やら標高やら居住国やらを読み取りたい
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0