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

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

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

関数名(name)機能(effect)使い方(usage)
cov()共分散を求めるcov(X,Y)で2つの数値ベクトルXとYの共分散を求める。XとYは要素数が等しくなければならない。行列を与えると分散共分散行列を返す。
sqrt()平方根を求める
var()分散を求めるもちろん不偏分散を求める
length()ベクトルの要素数を返す
abs()絶対値を返す
pt()t分布の分布関数を返す
cor()相関係数を返すcor(X,Y)で2つの数値ベクトルXとYの間の相関係数(方法を指定しなければピアソンの積率相関係数)を返す。XとYは要素数が等しくなければならない。行列を与えると相関係数行列を返す。オプションとしてmethod="spearman"を与えるとスピアマンの順位相関係数,method="kendall"を与えるとケンドールの順位相関係数を返す。
(参考)数値でないベクトル間の相関を得たい場合,polycorライブラリを利用すれば,例えば順序型変数間では,polychor()関数によりポリコリック相関係数を求めることができる。hetcor()関数を行列に適用すれば,2列ずつのすべての組み合わせに対して,数値間ではピアソンの積率相関係数,数値と順序の間ではポリシリアル相関係数,順序間ではポリコリック相関係数と使い分けて計算した相関係数行列を求めることができる。
cor.test()相関係数の検定cor.test(X,Y)で2つの数値ベクトルXとYの間の相関係数と95%信頼区間を求め(*なお,信頼区間を丸めて表示する場合は,真の区間を含む最小の幅に丸めるべきと考えるのが普通),相関係数がゼロという帰無仮説を検定した結果も表示する。XとYは要素数が等しくなければならない。method="spearman"を与えるとスピアマンの順位相関係数,method="kendall"を与えるとケンドールの順位相関係数と,それらがゼロという帰無仮説の検定結果を返す(順位相関係数については信頼区間は得られない)。
(参考)相関係数の検定結果のp値は相関係数がゼロと差が無い可能性の低さを示すだけであって,相関の強さとは関係が無いことに注意。弱い相関でもサンプルサイズが巨大ならp値は非常に小さくなりうる。相関関係の強さは伝統的に相関係数の絶対値の大きさによる目安があり,0.2未満では非常に弱い相関,0.2〜0.4で弱い相関,0.4〜0.7で中等度の相関,0.7以上で強い相関と判断することが多い。
methods()総称的関数に含まれているメソッドを返すmethods(cor.test)とかmethods(predict)などとする。
getS3method()総称的関数に含まれているコードを見るgetS3method("cor.test","default")でcor.test()で使われている計算式が見える。getS3method("predict","lm")で回帰分析の信頼区間や予測区間を求める関数predict.lm()のコードが見える(ただしpredict.lm()は不可視化されていないので,predict.lmと打つだけでもコードが見える)。総称的関数でない場合は,()を付けずに関数名を打つだけでコードは見える(例:相関係数を得る関数cor()の計算式はプロンプトにcorと打てば見える)。
plot()散布図をプロットするplot(X,Y)またはplot(Y~X)で,Xを横軸,Yを縦軸とする散布図を描く。XとYがデータフレームz内の変数であるときは,plot(z$X,z$Y)とするか,plot(Y~X, data=z)とする。data=zというオプションをつけられるのはコンマではなくチルダで2つの変数をつないだ場合だけである。
require()またはlibrary()パッケージをメモリに呼び出すrequire(car)とすると,carパッケージがメモリに読み込まれ,そこに含まれている関数群が使える状態になる。
ellipse()楕円を描く低レベル関数この関数を呼び出すより前にrequire(car)をしておく必要がある。文法としては,ellipse(center,shape,radius)で,centerは楕円の中心のX座標,Y座標という2つの要素からなるベクトル,shapeは長径と短径の比率を示すための2x2の分散共分散行列,radiusは楕円を生成する円の半径だが,この関数を直接使う必要はなく,次に示すdataEllipse()を使う方が便利である。
dataEllipse()散布図と集中楕円を描くこの関数を呼び出すより前にrequire(car)をしておく必要がある。dataEllipse(X,Y)でXを横軸,Yを縦軸にとった散布図と,50%と95%の集中楕円を描くことができる。集中楕円に含まれるデータの確率はlevels=オプションで変更できる。例えばdataEllipse(X,Y,levels=0.8)とすれば,散布図と80%集中楕円を描ける。散布図を描かずに楕円だけ描きたいときは,plot.points=FALSEというオプションを使う。以前はdata.ellipse()という関数名だったが名称が変更されたので注意。
lm()線形回帰分析を実行するlm(Y~X)で,Yを従属変数(目的変数),Xを独立変数(説明変数)とした線形回帰分析が実行できる。データフレーム内の変数の場合はdata=データフレーム名オプションが使える。
summary()オブジェクトの詳細情報を表示させる
abline()回帰直線を散布図に重ね描きする引数は線形回帰分析の結果オブジェクト。つまり,例えば,res <- lm(Y~X)としておき,plot(Y~X)にabline(res)でXを横軸,Yを縦軸とした散布図に,Yを従属変数,Xを独立変数とした回帰直線を重ね描きさせることになる。
RNGkind()擬似乱数列生成アルゴリズムの指定デフォルトはRNGkind("Mersenne-Twister")である。
set.seed()擬似乱数列の初期化set.seed(1)などとする。
rnorm()正規乱数の生成rnorm(100,10,1)で平均10,標準偏差1の正規分布に従う乱数を100個生成してベクトルとして返す
runif()一様乱数の生成runif(100,0,1)で[0,1]の範囲で一様分布する乱数を100個生成してベクトルとして返す
seq()等間隔の数列を返すseq(10,100,by=10)でc(10,20,30,40,50,60,70,80,90,100)が返る。seq(0,1,length=11)でc(0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1)が返る。しかし,例えば後者なら0:10/10とする方が楽である。
predict()回帰直線の信頼区間及び予測区間を返す線を引く横軸範囲を予めデータフレームとして決めておく必要がある。例えばres <- lm(X,Y)であるとき,XX <- data.frame(X=seq(min(X),max(X),length=20))としてから,plim <- predict(res,XX,interval="prediction")とすればplimに横軸のXX$Xに対応する3列の行列(1列目が回帰直線のY座標,2列目と3列目が予測区間の下限と上限)が得られるし,clim <- predict(res,XX,interval="confidence")とすればclimに横軸のXX$Xに対応する3列の行列(1列目が回帰直線のY座標,2列目と3列目が信頼区間の下限と上限)が得られる。デフォルトは95%だがlevel=0.9とすると90%区間になる。予測区間はデータの95%がその幅に入る区間を意味し,信頼区間は回帰直線が95%の信頼性をもってその幅に収まる区間を意味する(テキストの表現は誤り)
matlines()行列を線として図に重ね描きするpredict()の結果が上のように得られているなら,plot(Y~X)で散布図を描いた後,matlines(XX,plim,col=c("black","red","red"),lty=c(1,2,2))とすれば予測区間が赤の破線で,回帰直線が黒の実線で描かれる。
coef()回帰分析の係数を得る回帰分析の結果オブジェクトを渡すと,切片を最初の要素,回帰係数を2番目(独立変数が複数の場合は2番目以降)の要素とする数値ベクトルが返る。
log()自然対数を返す引数は数値ベクトルまたはスカラーまたは行列。引数の各要素についての自然対数を返す。
axis()軸目盛の設定axis(1,)で横軸,axis(2,)で縦軸
fitted.values()回帰分析に使われた独立変数値に対応する回帰直線上の値を返す回帰分析の結果オブジェクトを渡すと,その計算に使われた独立変数の値に対応する回帰直線上の値を返す。残差プロットの横軸は,この値か,独立変数値そのものを使うのが普通。
residuals()残差を返す回帰分析の結果オブジェクトを渡すと,独立変数のそれぞれの値を回帰モデルに代入して得られる予測値と従属変数の値との差(これを残差と呼ぶ)を返す。残差プロットの縦軸はこの値を用いる。
exp()指数を返す引数は数値ベクトルまたはスカラーまたは行列。引数の各要素についての指数を返す。

リンクと引用について