Rの基礎9 基本的な統計と検定

Rの基礎9では、Rでの統計や検定の基礎について説明します。Rは統計を主な対象としたプログラミング言語ですので、統計に関する機能は充実しています。基本統計量(平均値や標準偏差、4分位値など)の計算に用いる関数は全て揃っており、個々の関数を忘れていても、ほとんどの場合基本統計量はsummary関数で計算することができます。Rでは各種確率分布に従った乱数を得たり、ある条件下での確率密度を求めたりすることもできます。最もよく使われるのは正規分布する乱数を得るためのrnorm関数や正規分布の確率密度を求めるdnorm関数などだと思います。取得した乱数や確率密度は、hist関数やggplot2のgeom_densityなどでプロットすることもできます。

相関係数はcor関数で計算できます。cor関数に長さが同じ2つの数値ベクターを与えると2つの数値ベクター間の相関係数を、データフレームを引数として与えると相関係数の総当り(相関行列)を得ることができます。線形回帰に関する関数も一通り揃っており、直線回帰を行う場合にはlm関数を用います。lm関数はlm(目的変数~説明変数) の形で記述します。回帰の詳細な結果はlm関数の返り値をsummary関数に与えることで得ることができます。同じlm関数を用いることで重回帰分析も行うことができます。

平均値の差の検定のうち、t検定はt,test関数、分散分析はaov関数で行うことができます。この他の平均値の差の検定(ノンパラメトリックな手法など)に関しても関数が揃っています。検出力が必要な場合にはpower.t.test関数やpower.anova.test関数で計算可能です。これらの関数は例数を計算する際にも使用できます。

統計を行う場合においてよく使用されるデータ型はfactor(因子)です。factorは数字に文字列の名前がついたもので、通常は名前のみが表示されます。factorにおいて、数字もしくは名前が同じ要素はすべて同じグループとして扱われます。このグループ分けに従い分散分析などが実施されます。Rのデータフレーム読み込み(read.tableやread.csv)では、文字列は自動的にfactorに変換されます。数字中に文字列がたまたま含まれていて(たとえば欠損値に”データなし”と入力している場合など)、数字がfactorに変換されて計算できない、という状況はRではよくある失敗だと思います。このようなデータ型の問題は(明示的にデータ型を指定しない)Rではよく発生するため、計算がうまくいかない場合にはとりあえずstr関数やclass関数でデータ型を確認するのがよいでしょう。