日本とアメリカでアレグラの用量、用法が違う!理由を半減期を根拠に計算してみた

概要

アメリカ出張時に、薬局でアレグラの説明を読むと、日本と違うことが書かれている。
具体的に比較すると以下の通り。

日本:60mgを1日2回 (合計120mg)
アメリカ:180mgを1日1回

アメリカは1日1回でいい代わりに、1日の用量が日本の1.5倍になっている。
1日1回と2回で違うのはまだいいとして、どうして1日に飲む合計量まで変わってるの?という疑問を、薬の半減率を根拠に検証してみた。

検証

アレグラの半減率は9.8時間。つまり9.8時間おきに体内の薬の成分が半分になっていく。
ここから、"体内に入った薬は、即全て吸収される"という仮定を置き、Pythonで、以下の条件の体内の薬の量をプロットしてみた。(ソースは一番下)

日本方式(青) : 60mgを1日2回
アメリカ方式(オレンジ) : 180mgを1日1回
アメリカ方式で日本と同用量(緑) : 120mgを1日1回
とする。
薬を飲むと急激に体内の薬の量が増え、その後は半減率に従って減っていく様子がプロットされている。


(横軸は時間、縦軸は体内の薬の量)

考察

上記グラフを見ると、日本方式とアメリカ方式はグラフの下限値(薬を飲む直前の体内の薬の量)がほぼ等しい。一方で、アメリカ方式で日本と同用量飲む場合は、24時間後には体内の薬の成分がかなり減っていることが見て取れる。
アレグラをはじめとした抗アレルギー薬は、常に一定以上の薬の濃度を保つ必要がある。その為、最低濃度を保ち、かつ1日1回で効き目を持たせるために、アメリカでは日本の1.5倍の用量を飲ませていると推測できる。

また、日本方式が一番体内の薬の量が安定しており、かつ下限値が高くなっていることからもわかる通り、やはり1日2回に分けるのが一番安全、かつ効果的に効きそうに見える。用法用量は正しく守りましょう、ということかな。

注意

Pythonと高校数学程度の知識で、日頃の疑問を解決できる、という一例として、机上で計算してみた。
上記の内容は単純な興味で計算したものであり、薬事法で規定された飲み方以外の飲み方を推奨するものではない。

ソースコード

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import math
import numpy as np
from matplotlib import pyplot

pi = math.pi
resolution = 200
x = np.linspace(0, 80, resolution)

y = 60.0*(0.5)**((x)/9.8)

for i in range(resolution):
    if x[i] > 12:
        y[i] += 60.0*(0.5)**((x[i]-12)/9.8)
    if x[i] > 24:
        y[i] += 60.0*(0.5)**((x[i]-24)/9.8)
    if x[i] > 36:
        y[i] += 60.0*(0.5)**((x[i]-36)/9.8)
    if x[i] > 48:
        y[i] += 60.0*(0.5)**((x[i]-48)/9.8)
    if x[i] > 60:
        y[i] += 60.0*(0.5)**((x[i]-60)/9.8)
    if x[i] > 72:
        y[i] += 60.0*(0.5)**((x[i]-72)/9.8)

y2 = 180.0*(0.5)**(x/9.8)

for i in range(resolution):
    if x[i] > 24:
        y2[i] += 180.0*(0.5)**((x[i]-24)/9.8)
    if x[i] > 48:
        y2[i] += 180.0*(0.5)**((x[i]-48)/9.8)
    if x[i] > 72:
        y2[i] += 180.0*(0.5)**((x[i]-72)/9.8)


y3 = 120.0*(0.5)**(x/9.8)

for i in range(resolution):
    if x[i] > 24:
        y3[i] += 120.0*(0.5)**((x[i]-24)/9.8)
    if x[i] > 48:
        y3[i] += 120.0*(0.5)**((x[i]-48)/9.8)
    if x[i] > 72:
        y3[i] += 120.0*(0.5)**((x[i]-72)/9.8)

pyplot.plot(x, y, label = "60mg/12H")
pyplot.plot(x, y2, label = "180mg/24H")
pyplot.plot(x, y3, label = "120mg/24H",linestyle="dashdot")
pyplot.legend()

pyplot.xlabel("time [H]")
pyplot.ylabel("[mg]")


pyplot.show()