群馬大学 | 医学部 | サイトトップ | 医学情報処理演習

医学情報処理演習:2010年度第7回の関数

今回使った関数や文の主なものをまとめます (A selected summary of functions and statements used in the 7th practice is shown here.)

関数名(name)機能(effect)使い方(usage)
str()オブジェクトの構造をみる(check the structure of a given object.)
summary()オブジェクトの詳細出力を得る
aov()分散分析の実行(1)単純にaov(values ~ groups)という形では分散分析表が出力されないので,必ずsummary(aov(values ~ groups))という形にする。データフレーム内の変数を指定する場合は,オプションとしてdata=を用いる。
anova()分散分析の実行(2)引数は線形モデルの結果オブジェクト。anova(lm(values ~ groups))という形で一元配置分散分析が実行できる。参考までに,二元配置の場合はanova(lm(values ~ gvar1+gvar2))のようにするが,交互作用効果がある場合はanova(lm(values ~ gvar1*gvar2))とする。gvar1*gvar2と書くと,gvar1+gvar2+gvar1:gvar2という意味になる。データフレーム内の変数を指定する場合は,lm()の中のオプションとしてdata=を用いる。
lm()線形モデルを当てはめるlm(values ~ groups)でvaluesをgroupsで説明するモデルの当てはめが行われる。データフレーム内の変数を指定する場合は,オプションとしてdata=を用いる。
oneway.test()Welchの拡張による一元配置分散分析の実行summary(aov())やanova(lm())は各群の等分散性を仮定しているので,2群の場合と同じく,等分散性を仮定しないWelchの拡張の方が良い結果が得られる。oneway.test(values ~ groups)とする。データフレーム内の変数を指定する場合は,オプションとしてdata=を用いる。
bartlett.test()バートレットの検定を実行する多群の母分散がすべて等しいという帰無仮説を検定する。bartlett.test(values ~ groups)とする。データフレーム内の変数を指定する場合は,オプションとしてdata=を用いる。
pairwise.t.test()多重比較の実行多群から2群ずつの組み合わせ全てについて標準誤差をプールしたt検定を繰り返し検定の多重性を調整した有意確率を計算する。文法は,pairwise.t.test(values, groups, p.adjust.method="holm")である。data=オプションは使えないので,データフレーム内の変数はx$valuesのように参照するかattach()を用いた後で実行する必要がある。p.adjust.method=オプションを省略するとHolmの方法になる("holm"と指定するのと同等)。"bon"でBonferroniの方法になる。
attach()データフレームのアタッチattach(データフレーム名)を実行した後では,データフレーム名$変数名としなくてもデータフレーム内の変数が参照できるようになる。必要が無くなったら必ずdetach(データフレーム名)すること。
TukeyHSD()テューキーの多重比較の実行引数は分散分析の結果。つまり,TukeyHSD(aov(values~groups))とする。テューキーの方法で検定の多重性を調整した,多群からの2群ずつの組み合わせ全てについて,平均値に差が無いという帰無仮説の検定が実行できる。データフレーム内の変数を指定する場合は,aov()の中のオプションとしてdata=を用いる。
cut()連続量を区切ってカテゴリ化文法は,cut(values, intervals)で,intervalsを「〜以上〜未満」にしたいときはright=FALSEオプションをつける。例えば,10人の人のBMIが
BMI <- c(16.5, 20, 25, 40, 28.5, 22.5, 23.5, 17, 35, 28)
であるとき,18.5未満をやせ,18.5以上25未満を標準,25以上を肥満とする3つの水準からなるカテゴリ変数OBESITYに変換するには,
OBESITY <- cut(BMI, c(0,18.5,25,50), right=FALSE)
とすればOK。intervalsはデータ全体を含まないとエラーになるので,左端は0,右端は50としたが,もちろんギリギリでも構わない。さらに,18.5未満を"THIN",18.5以上25未満を"NORMAL",25以上を"OBESE"というカテゴリ名に変えたければ,
levels(OBESITY) <- c("THIN","NORMAL","OBESE")
とする。

リンクと引用について