群馬大学 | 医学部 | サイトトップ | 医学情報処理演習
今回使った関数や文の主なものをまとめます (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") とする。 |