統計解析.com

統計解析業務の
アウトソーシング

無料相談を
予約する

UMIN-CTRから臨床試験の動向を探る

アウトライン
  1. 作成日: 2025/11/20
  2. 更新日: –

はじめに

臨床試験は、医学的知見を蓄積し、治療法や食品素材の有効性・安全性を客観的に検証するための最も重要な研究手法です。

しかし、臨床試験には固有の問題点も多く、研究者が恣意的に結果を解釈したり、都合のよい結果だけを公表したりすると、科学的信頼性が大きく損なわれる恐れがあります。

この問題を防ぐため、臨床試験の事前登録 (prospective registration) が国際的に求められています。

これは、特定保健用食品や機能性表示食品に関連する臨床試験でも同じです。
食品を介入とした臨床試験の登録は、UMIN Clinical Trials Registry (UMIN-CTR) が広く利用されています。

本稿では、UMIN-CTR が公開しているCSVデータを用い、食品分野の臨床試験を中心に、その年次推移をRで可視化する方法を紹介します。

UMIN-CTR の公開データ (CSV) について

UMIN-CTRでは、登録されている試験情報を日次更新のCSVファイルとして公開しています。

このCSVファイルには、試験の基本情報、試験デザイン、アウトカム、介入内容、さらに倫理委員会承認日・公開日など多様な情報が含まれています。

今回の分析では、以下の項目をデータから抽出して使用しました。

  • 一般公開日
  • UMINID
  • 科学的試験名
  • 試験種別
  • 基本デザイン
  • ランダム化/盲検化
  • コントロール方法
  • 介入の種類
  • 主要アウトカム
  • 目標症例数

こうした情報を整理することで、研究領域や介入方法のトレンドを可視化できます。

Rによるデータ取得と前処理

以下は、公開CSVデータを読み込み、分析に必要な変数だけを抽出したコードです。

UMIN-CTRの公開CSVデータを効率的に処理し、食品関連の臨床試験の年次推移を可視化するため、tidyverse系のパッケージを中心に活用してみました。

流れとしては・・・

readrにより大規模データを高速に読み込み、dplyrによって必要な項目を抽出・整形します。介入の種類の判定にはstringrを用い、公開日から年を抽出する際にはlubridateを利用しています。最終的な可視化はggplot2により高品質な折れ線グラフとして出力します。

これらのパッケージにより、臨床試験データの探索的分析が効率的かつ再現性高く実施できると思います。

# ライブラリ読み込み
library(readr)
library(dplyr)
library(stringr)
library(lubridate)
library(ggplot2)

url_jp <- "https://upload.umin.ac.jp/ctr_csv/ctr_data_j.csv.gz"

umin_jp <- read_delim(
  file = url_jp,
  delim = ",",
  skip = 1,
  locale = locale(encoding = "UTF-8"),
  quote = "\"",
  trim_ws = TRUE,
  show_col_types = FALSE
)

df <- umin_jp %>%
  select(
    公開日 = `一般公開日(本登録希望日)/Date of disclosure of the study information`,
    UMINID = `UMIN試験ID/Unique ID issued by UMIN`,
    試験名 = `科学的試験名/Scientific Title...7`,
    試験種別 = `試験の種類/Study type`,
    試験デザイン = `基本デザイン/Basic design`,
    ランダム化 = `ランダム化/Randomization`,
    盲検化 = `ブラインド化/Blinding`,
    対照 = `コントロール/Control`,
    介入 = `介入の種類/Type of intervention`,
    主要評価項目 = `主要アウトカム評価項目/Primary outcomes...25`,
    目標症例数 = `目標参加者数/Target sample size`
  ) %>%
  mutate(
    公開日 = as.Date(公開日)
  )

ポイントは、「公開日」列をDate型に変換しておくことです。
これによって年次集計や時系列グラフ作成が容易になります。

食品介入試験の抽出ロジック

介入の種類には、

  • 医薬品/Medicine
  • 手技/Maneuver
  • ワクチン/Vaccine
  • 医療器具・機器/Device,equipment
  • 食品/Food
  • 行動・習慣/Behavior,custom
  • 遺伝子/Gene
  • その他/Other

などが「:」で連結される形で登録されています
そのため、本稿では次の2つのカテゴリーに分類しました。

  • 食品単独の試験
  • 食品+他領域 (医薬品、行動介入など) を含む試験
df_food_any <- df %>% filter(str_detect(介入, "食品/Food"))
df_food_only <- df %>% filter(介入 == "食品/Food:")

ここでは、食品/Food: を完全一致で抽出して「食品単独」とし、
部分一致 (食品/Foodを含む) で「食品+α」とした。

年次推移の可視化

次に、食品試験の年別件数を集計し、折れ線グラフにした。

df_food_any_year <- df_food_any %>% mutate(年 = year(公開日)) %>% count(年)
df_food_only_year <- df_food_only %>% mutate(年 = year(公開日)) %>% count(年)

df_plot <- bind_rows(
  df_food_any_year %>% mutate(type = "食品+α"),
  df_food_only_year %>% mutate(type = "食品単独")
)

さらに、X軸の下に各年の試験数を明示する工夫を加えてみました。
これでぱっと見ても何件の試験が実施されているかわかりますね。

df_label <- df_plot %>% mutate(
  y_pos = -max(df_plot$n) * 0.05 * (as.numeric(factor(type)))
)
ggplot(df_plot, aes(x = 年, y = n, color = type)) +
  geom_line(size = 1.2) +
  geom_point(size = 2) +
  geom_text(data = df_label,
    aes(x = 年, y = y_pos, label = n, color = type),
    size = 4, show.legend = FALSE) +
  scale_x_continuous(breaks = seq(min(df_plot$年), max(df_plot$年), 1)) +
  labs(title = "ヒト臨床試験の年次推移",
       x = "年", y = "試験数", color = "介入の種類") +
  theme_minimal(base_size = 14) +
  coord_cartesian(clip = "off") +
  theme(plot.margin = margin(40, 20, 20, 20))

出力結果は以下の通りです。

分析結果と考察

この可視化によって、以下の傾向が見えてくる。

  • 食品を含む臨床試験は近年増加傾向にある
  • 「食品単独」だけでなく「食品+行動」「食品+医薬品」などの複合介入試験が増えている
  • 機能性表示食品制度の影響も考えられ、食品領域の臨床研究が拡大していることが推測される

特に、食品+α試験が伸びている点は興味深く、食事・行動・医薬品の複合的な介入デザインの需要が高まっていることを示唆している。

まとめ

UMIN-CTRのCSVデータは、機械的に取得できる構造化データとして非常に有用であり、年次推移、研究領域の分布、介入タイプ、症例数規模など、多面的な視点での分析が可能です。

食品分野に限らず、

  • 治験の動向分析
  • 学会・企業の研究戦略立案
  • 研究資金のトレンド把握

など、さまざまな応用が期待できます。
こんな分析がしたい!みたい!がありましたら、お気軽にお問合せ下さい。

関連するサービス

参考文献

  • UMIN Clinical Trials Registry. CSV data download page [Internet]. Tokyo: University Hospital Medical Information Network; c2005– [cited 2025 Nov 19]. Available from: https://www.umin.ac.jp/ctr/csvdata.html