データ分析初心者の備忘録

不定期で更新していきます。

t検定、カイ二乗検定の備忘録

■t検定
主に2群の平均値の差の検定に用いる。
母集団が正規分布に従っている場合、標本分散を用いて算出される統計量tが自由度n-1のt分布に従うという性質を用いて検定を行う。

なお、利用する際は以下の条件を満たしている必要がある。
1.標本が母集団から無作為に抽出されている 2.母集団が正規分布に従っている 3.2群が等分散である

なお、母集団分散が未知でも大標本の場合はt分布でなく正規分布とz統計量を用いて同様の検定をしても問題ないようである。

実行例

#データの確認
summary(iris)
head(iris)
#  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1          5.1         3.5          1.4         0.2  setosa
#2          4.9         3.0          1.4         0.2  setosa
#3          4.7         3.2          1.3         0.2  setosa
#4          4.6         3.1          1.5         0.2  setosa
#5          5.0         3.6          1.4         0.2  setosa
#6          5.4         3.9          1.7         0.4  setosa

#setosaとvirginicaのがく片の長さについてt検定を行う
setosa_length <- iris$Sepal.Length[iris$Species=="setosa"]
virginica_length <- iris$Sepal.Length[iris$Species=="virginica"]

t.test(setosa_length,virginica_length,paired = FALSE)
#データに対応がある場合paired = TRUEを指定する必要がある

#  Welch Two Sample t-test
#
#data:  setosa_length and virginica_length
#t = -15.386, df = 76.516, p-value < 2.2e-16
#alternative hypothesis: true difference in means is not equal to 0
#95 percent confidence interval:
#  -1.78676 -1.37724
#sample estimates:
#mean of x mean of y 
#    5.006     6.588 

カイ二乗検定
分割表において、2つの分類基準が独立であるかどうかを調べるために使われることが多い。(ピアソンのカイ二乗検定)
観測度数と期待度数の差を用いた統計量Χがカイ二乗分布に従うことを利用した検定。

なお、以下の場合はカイ二乗検定を使うべきではない。 ・条件間に対応がある場合 ・観測度数が20未満の場合 ・期待度数が5未満のセルがある場合

実行例

#データ読み込み、確認
dat <- data.frame(Titanic)
summary(dat)
head(dat)
#  Class    Sex   Age Survived Freq
#1   1st   Male Child       No    0
#2   2nd   Male Child       No    0
#3   3rd   Male Child       No   35
#4  Crew   Male Child       No    0
#5   1st Female Child       No    0
#6   2nd Female Child       No    0
#Freq列でサンプルの出現頻度がわかるようになっている

dat <- dat[dat$Freq!=0,] #頻度が0のデータを除外

#1行1サンプルになるようデータを加工する
titanic.df <- data.frame(Class=rep(dat$Class[1],dat$Freq[1]), #データの出現回数だけ行を増やす
                         Sex=rep(dat$Sex[1],dat$Freq[1]),
                         Age=rep(dat$Age[1],dat$Freq[1]),
                         Survived=rep(dat$Survived[1],dat$Freq[1]))

for (i in 2:nrow(dat)) {
  titanic.df_sub <- data.frame(Class=rep(dat$Class[i],dat$Freq[i]),
                           Sex=rep(dat$Sex[i],dat$Freq[i]),
                           Age=rep(dat$Age[i],dat$Freq[i]),
                           Survived=rep(dat$Survived[i],dat$Freq[i]))
  titanic.df <- rbind(titanic.df,titanic.df_sub)
}

#クロス集計
(test <- xtabs(~Age + Survived, data =  titanic.df))
#       Survived
#Age       No  Yes
# Child   52   57
# Adult 1438  654

#カイ二乗検定
chisq.test(test)

#  Pearson's Chi-squared test with Yates' continuity correction
#
#data:  test
#X-squared = 20.005, df = 1, p-value = 7.725e-06

#chisq.test()ではデフォルトでイェーツ補正がかかるようになっている点に注意

Rで自然言語処理(の準備)

統計ソフトのRを使って自然言語処理をする際に必要な設定のメモです。(インストール方法などはよく忘れてしまうため。。)

 

手順は以下の通りです。なお、Windows7の場合を想定しています。

  • Rのインストール
  • Rstudioのインストール
  • MeCab(形態素解析エンジン)のインストール
  • RMeCab(R上でMeCabを使うためのパッケージ)のインストール
Rのインストール

以下にあるRのダウンロードサイトから インストーラをダウンロードできます。

https://cran.ism.ac.jp/

Download R for Windows>baseの手順で最新版が手に入ります。なお、過去のバージョンを入手したい場合は「Previous releases」から入手可能です。

 

Rstudioのインストール

以下のRstudio公式ページから「Download」を選択してダウンロードできます。こちらもインストーラ形式なので苦労しないです。

www.rstudio.com

 

MeCabのインストール

以下のサイトで「mecab-0.996.exe:ダウンロード」をクリックするとインストーラがダウンロードできます。

http://taku910.github.io/mecab/

なお、MeCab京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです。 また、平均的に ChaSen, Juman, KAKASI (いずれも形態素解析エンジンの一種) より高速に動作します。 ちなみに和布蕪(めかぶ)は, 作者 (工藤拓) の好物です(ダウンロードサイトより一部引用)。

 

コマンドプロンプト上で動くので、システム環境変数のPathを通す必要があります。

 

マイコンピュータ>プロパティ>詳細設定>環境変数>Path で設定が可能です。自分のPCでインストールした場所を追加する (デフォルトではC:\Program Files\MeCab\bin)。

 

コマンドプロンプトを開き (スタートメニュー>ファイル名を指定>cmdと入力) 、mecabと打ち込んでMeCabが起動すれば正しく設定できています。試しに「すもももももももものうち」を入力すると、ちゃんと分解できます。

f:id:kuze3110:20161106223612p:plain

 

RMeCabのインストール 

 Rstudioを起動し、コンソール上で以下のコードを実行すればインストールできます。

install.packages("RMeCab", repos = "http://rmecab.jp/R") 

これで準備完了です!