ケィオスの時系列解析メモランダム

時系列解析,生体情報学,数学・物理などの解説です.

【Rで活動量分析】オムロン研究用活動量計HJA-750Cのデータファイルの読み込み

オムロン活動量計でHJA-750Cというのがあります.

www.healthcare.omron.co.jp

これは研究や臨床検査用なので,一般には発売されていません.大学などの研究機関に所属していれば購入可能です.

 といことで,今回はHJA-750Cを使って研究をしたい人向けのに,Rを使ったデータファイルの読み込み方の説明です.

活動量評価のデータファイルの中身

 HJA-750Cの専用アプリで,計測結果 (集計ファイル作成)を書き出すと,

 (被験者ID)10SECMETS_(計測日).csv

のような名前がついたファイルが作成されます.ファイル名の,(被験者ID)(計測日)の部分は,それぞれ,各自が設定したID,計測日になります.今回はこのファイルを読み込んでみます.

 計測結果のファイルの中身は,

(被験者ID)
2022/09/28

時刻,活動強度,運動種別
00:00:00,0,計測なし
00:00:10,0,計測なし
00:00:20,0,計測なし

のような感じです.この2行目が計測日です.4行目が各列の見出しで,5行目以下に計測結果が10秒ごとに記録されています.

 HJA-750Cの計測データで注意してほしい点は,記録される時刻が必ず00:00:00からはじまることです.例えば,その日の夕方17:00:00に計測しても,データは00:00:00から記録されるので,00:00:00 ~ 17:00:00までの時間帯は,活動強度がずーっと「0」,運動種別がずーっと「計測なし」になります.

活動量ファイルの読み込み

 Rでファイルを読み込みたいとき,私であれば以下のようにします.

# データがあるフォルダの指定
DIR <- "ここにデータファイルがあるフォルダを指定"
# データファイルの指定
FN <- "10SECMETSファイルの名前を指定"
####
# フォルダの移動
setwd(DIR)
# ファイルから日付の読み込み
YMD <- read.csv(FN,header=FALSE,skip=1,stringsAsFactors=FALSE,nrows=1)[1,"V1"]
# ファイルからデータの読み込み
DAT <- read.csv(FN,header=FALSE,skip=4,stringsAsFactors=FALSE)
# DATの各列の変数名の設定
colnames(DAT) <- c("time","METs","activity_type")
# timeを時刻データに変換 (日付+時刻)
DAT$time <- as.POSIXct(paste(YMD,DAT$time),origin="1970-1-1 00:00:00")
# グラフを描画
plot(DAT$time,DAT$METs,"l",col=2,xlab="Time",ylab="METs")

Windowsで"... invalid multibyte character ..."というエラーが出たら,上のスクリプトの11行目を

DAT <- read.csv(FN,header=FALSE,skip=4,stringsAsFactors=FALSE,fileEncoding="CP932")

に修正してください.

 上のRスクリプトを実行すると,DATの中身は以下のようになります.

time METs activity_type
2022-07-02 09:48:30 6.3 生活活動
2022-07-02 09:48:40 2.6 生活活動
2022-07-02 09:49:00 1.0 生活活動
2022-07-02 09:49:10 1.0 生活活動
2022-07-02 09:49:20 1.0 生活活動
2022-07-02 09:49:30 1.0 生活活動

 さらに,「計測なし」の行を除きたいときは,以下のようにします.

# データがあるフォルダの指定
DIR <- "ここにデータファイルがあるフォルダを指定"
# データファイルの指定
FN <- "10SECMETSファイルの名前を指定"
####
# フォルダの移動
setwd(DIR)
# ファイルから日付の読み込み
YMD <- read.csv(FN,header=FALSE,skip=1,stringsAsFactors=FALSE,nrows=1)[1,"V1"]
# ファイルからデータの読み込み
DAT <- read.csv(FN,header=FALSE,skip=4,stringsAsFactors=FALSE)
# 「計測なし」の行を削除
DAT <- DAT[DAT$V3!="計測なし",]
# DATの各列の変数名の設定
colnames(DAT) <- c("time","METs","activity_type")
# timeを時刻データに変換 (日付+時刻)
DAT$time <- as.POSIXct(paste(YMD,DAT$time),origin="1970-1-1 00:00:00")

消費カロリーの計算

 推定されたMETsを使って消費カロリーを求めたいときは,

 エネルギー消費量 [kcal] = METs × (時間 [h]) × (体重 [kg])

を使います.インターネットで「METs 消費カロリー」検索すると,

 エネルギー消費量 [kcal] = METs × (時間 [h]) × (体重 [kg]) × 1.05

という式が多く見つかると思います.最初の式と「× 1.05」の部分が違います.

 どちらも間違いではなく,どちらも近似的な式で,どちらもほとんど値は同じです.「× 1.05」の部分は,体表面積などの影響で調整するための値を,標準的値で近似したものです.体型によって体表面積は異なるので,本当は個人個人で変えた方が良いかもしれません.とはいえ,年齢,性別など他の因子にも依存するので,しょせん近似です.

 運動生理やスポーツ医学の業界では,「× 1.05」は省略してもいいでしょ,ということにしたようです.この論文で, [Ainsworth et al. Medicine & science in sports & exercise 43 (2011): 1575-1581],「× 1.05」なしの式が推奨されています.

 ということで,METsデータから消費カロリーを計算してみましょう,と言うのが宿題です.