データを可視化する

参考ページ ↑

1週間の血圧測定

以下のような例を使って実際にやってみたいと思います(例は僕が作成した仮想データです)。脳卒中片麻痺患者Aさんの血圧測定結果を考えてみます。Aさんは高血圧の既往があります。でも皆さんご存じのとおり、個人内変動があります。1週間(月曜日~土曜日)PT前後に血圧を測定した場合の結果です。日常的な臨床記録で見かける1週間で蓄積したデータを統計学的に考えてみます。

PT前のデータ

112(月曜日のAMに測定)
138(火曜日のAMに測定)
124(水曜日のAMに測定)
120(木曜日のAMに測定)
139(金曜日のPMに測定)
142(土曜日PMに測定)

PT後のデータ
138(月曜日のAMに測定, 屋外歩行)
139(火曜日のPMに測定, 屋内歩行)
136(水曜日のAMに測定, 屋内歩行)
130(木曜日のPMに測定, 屋内歩行)
136(金曜日のPMに測定, 屋外歩行)
140(土曜日のAMに測定, 屋内歩行)

このデータを見たときに、さてどう考えるか・・・ということです。毎日の状態を観察して、そのデータに潜む何かを掴むのです(観察研究)。理学療法の世界でよく行われているランダム化や割付けを行わない研究なので、様々なバイアスが含まれています。

理学療法前後で変化があるか

曜日に何か関連はあるか

時間帯に何か関連はあるか

練習内容に何か関連はあるか

といった具合に、このデータだけでも4項目の考えるべき課題がありそうです

それでは実際に統計ソフトRを使いながら検証してみます

データセットの作成

以下のプログラムをRにペーストします

前 <- c(112, 138, 124, 120, 136, 142)
後 <- c(138, 139, 136, 130, 143, 140)
曜日 <- c("月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日")
時間 <- c("AM", "PM", "AM", "AM", "PM", "PM")
歩行 <- c("外", "内", "内", "内", "外", "内")

#注意)「“」はダメす 「"」と入力してください
set <- data.frame(曜日, 時間, 歩行, 前, 後)
set

setのあとでEnterをクリック

以下のように表示されれば成功です

「set」という文字の中に、上記の一覧表が格納されたことになります

エクセルのシートが「set」という文字の中に入ってしまった・・・ということです

慣れない間は、なんだか気持ち悪いのですが、是非慣れてください

ちなみに曜日の1列だけ取り出したいときは

set$曜日

以下のように表示されれば成功です

このsetから色々なグラフを描くことができます

曜日、というか時間帯で実施前の血圧の差があるようです。曜日によって差があるのかもしれませんが、他の情報が必要になります。理学療法前の値が低く、屋外歩行がある場合は、理学療法後の値が非常に高くなっています。実施前の値が低い時でも、上昇率が高いようです。屋外歩行時は要注意ですね。

・・・という具合に、特に何かを仕込んだわけでもなく、日々の記録を眺めるだけでも色々なことを考えることができます

グラフにして可視化すると便利です

一人ひとりを大切に、適切に評価しなければいけません

作図のためのプログラム

上記の図は以下のようにして描きました

興味のある方だけどうぞ

そのままRにペーストしたら上の図が描けます

#使用するx軸
x <- c(1, 2) 

#2列を取り出して転置
dat <- t(set[, c("前", "後")])

#作図のための関数を作成
myf <- function(k){
matplot(
    x, dat, 
    type="l", lty=1,
    pch=1, col=k,
    xlab="", ylab="",
    xaxt="n", 
    xlim=c(0.9, 2.1)
)
name<-c("前","後")
axis(
    side=1,
    at=c(1, 2),
    labels=name
) #指定した場所に挿入
}

#2行2列のグラウを作成
par(mfrow=c(2, 2))

    myf(1)
    
    myf(1:6)
    legend(
        "bottomright",
        legend=set[,1],
        col=1:6,
        lty=1
    )

    mg1 <- ifelse(set$時間=="AM", 1, 2)
    myf(mg1)
    legend(
        "bottomright",
        c("AM","PM"),
        col = c(1, 2),
        lty = 1
    )

    mg2 <- ifelse(set$歩行=="内", 1, 2)
    myf(mg2)
    legend(
        "bottomright",
        c("内","外"),
        col = c(1, 2),
        lty = 1
    )

par(mfrow=c(1, 1))

コメント欄 『間違い』や『分かりにくい部分』などのご意見もお寄せください

タイトルとURLをコピーしました