r

マイノリティ合成によるオーバー・サンプリング

今回は、不均衡データの分類に挑戦します。*1 最もシンプルな不均衡データへの対処としては、復元抽出によって、マイナークラスの標本数を増やすことが挙げられます。しかし、同じ標本が複数含まれることによって、過学習を引き起こしやすくなると言われてい…

語彙多様性とリーダビリティを用いたテキスト分析

外国語教育メディア学会中部支部の『外国語教育基礎研究部会2014年度報告論集』に以下の原稿を載せて頂きました。センター試験の英語長文問題を例に、Rによる分析を行いました。本稿のPDFは、こちらで公開されています。*1 小林雄一郎 (2015). 「語彙多様性…

stringrを使った文字列処理 (3)

今回も、stringrパッケージを使った文字列処理を紹介します。まず、str_subset関数を使うと、指定したパターンにマッチする文字列を含む要素が得られます。 # パッケージの読み込み library(stringr) # パターンにマッチする文字列を含む要素を抽出 verbs <-…

stringrを使った文字列処理 (2)

今回も、stringrパッケージを使った文字列処理を紹介します。まず、大文字と小文字の置換を行うには、str_to_upper関数、str_to_lower関数、str_to_title関数が便利です。 # パッケージの読み込み library(stringr) # 大文字と小文字の置換 x <- "R is a fre…

stringrを使った文字列処理 (1)

今回は、stringrパッケージを使った文字列処理を紹介します。まず、str_length関数を使うと、文字列の長さを計算することができます。 # パッケージの読み込み library(stringr) # 文字列の長さ str_length("have") 上記のスクリプトを実行すると、以下のよ…

Rでリーダビリティを計算する

本日、ニフティで開催される第48回R勉強会@東京 (Tokyo.R) において、「Rでリーダビリティを計算する」というLTをします。発表スライドは、以下のリンクから見ることができます。 小林雄一郎 (2015). 「Rでリーダビリティを計算する」第48回R勉強会@東京. …

箱ひげ図のノッチの値を取得する

各群におけるデータのばらつきを視覚的に分析したい場合、箱ひげ図が便利です。また、箱ひげ図にノッチ(切れ目)を入れると、各群の中央値の95%信頼区間が表示されます。そして、2つの群のノッチがオーバーラップしていなければ、それらの群の間に有意差が…

GBMによる変数選択

今回は、gbmパッケージを使って、勾配ブースティング (gradient boosting) による変数選択を行ってみます。*1 分析データは、お馴染みのirisデータセットとします。 # パッケージの読み込み library(gbm) # 勾配ブースティング iris.gbm <- gbm(Species ~ .,…

レーダーチャートを描く

r

今回は、plotrixパッケージでレーダーチャートを描いてみます。以下は、MASSパッケージのcaithデータを使った例です。 # パッケージの読み込み library(plotrix) library(MASS) # データの標準化 caith.scale <- data.frame(scale(caith)) # レーダーチャー…

Rで学ぶ日本語テキストマイニング(2刷)

おかげさまで、『Rで学ぶ日本語テキストマイニング』が重刷されました。それにともない、初版1刷にあった若干の誤植が修正されました。今後とも、どうぞ宜しくお願いいたします。Rで学ぶ日本語テキストマイニング作者: 石田基広,小林雄一郎出版社/メーカー: …

データのばらつきを視覚化する (1)

r

データのばらつきを視覚化する場合、箱ひげ図がよく用いられます。箱ひげ図では、最小値、下側ヒンジ、中央値、上側ヒンジ、最大値という5つの要約統計量が視覚化されるため、データのばらつきを直感的に理解することができます。今回は、irisデータにおける…

コーパス言語学研究における頻度差の検定と効果量

『外国語教育メディア学会 (LET) 関西支部メソドロジー研究部会報告論集』の第6号がこちらで全文公開されました。今回は、私も以下の論文を寄稿させて頂きました。 小林雄一郎 (2015). 「コーパス言語学研究における頻度差の検定と効果量」 『外国語教育メデ…

対応分析の結果に信頼区間を描く

今回は、anacorパッケージを使って、対応分析の結果として得られるバイプロットに95%信頼区間を描きます。分析データは、tocherとします。*1 まず、anacorパッケージで対応分析を実行するには、anacor関数を使います。*2 その際、引数ellipseでTRUEを指定し…

ggplot2でシンプルなヒートマップを描く

r

今回は、ggplot2パッケージを使って、シンプルな(=デンドログラムなしの)ヒートマップを作成します。分析データは、caパッケージのauthorとします。*1 ggplot2でヒートマップを描くには、reshape2パッケージのmelt関数を使った前処理が必要となります。 #…

ソーシャル・コンピュテーション学会第2回研究会

来たる3月21日(土)、秋葉原ダイビル首都大会議室にて、ソーシャル・コンピュテーション学会第2回研究会が開催されます。主な内容は、以下のとおりです。 小林雄一郎「Rによるソーシャルデータ分析手法の検討」 川畑智子「初心者がテキスト分析ソフトを用い…

多群間で差のある変数を特定する

前回の二群間で差のある変数を特定するという記事に続き、今回は、三群以上(多群)のデータで差のある変数を特定する方法を考えます。*1 群間の中央値を比較する場合は、クラスカル・ウォリス検定を用います。以下は、データ中の全ての変数にクラスカル・ウ…

二群間で差のある変数を特定する

データ中のどの変数に群間の差が見られるかが知りたいとします。群間の中央値を比較する場合は、ウィルコクソンの順位和検定を用います。以下は、データ中の全ての変数にウィルコクソンの順位和検定を行い、その結果として得られる統計量が大きい順に出力す…

残差分析を行う

今回は、分割表の残差分析の方法を紹介します。分析データは、3つのコーパスにおける3つの語の頻度を集計したものとします。*1 # 分割表の作成 dat <- matrix(c(61, 7, 172, 6, 37, 47, 49, 85, 69), nrow = 3) colnames(dat) <- c("Corpus A", "Corpus B", …

カイ二乗値、対数オッズ比、ファイ係数の相関を調べる

先日の頻度差の検定の効果量としてオッズ比を用いるという記事と、頻度差の検定の効果量としてファイ係数とクラメールのVを用いるという記事に関連して、カイ二乗値、対数オッズ比、ファイ係数の相関を調べてみました。*1 以下は、乱数を使って、2×2の分割表…

対応分析の結果に重み付けをする

最近、対応分析の次元得点に固有値の平方根(特異値)をかけるという話題を目にしました。*1 今回は、それをRで行ってみることにします。分析データは、MASSパッケージのcaithを使います。*2 まずは、対応分析の結果を普通に視覚化してみましょう。 # パッケ…

対応分析の結果をバブルプロットにする

今回は、対応分析の結果をバブルプロットで表示する方法を紹介します。バブルの大きさをどう定義するかが問題になりますが、以下の例では、行ないしは列の総和を使っています。*1 分析データは、MASSパッケージのcaithを使います。*2 # パッケージの読み込み…

潜在的意味解析による分類

今回は、複数のテキストから作成した文書ターム行列に潜在的意味解析を行う方法を紹介します。*1 分析データは、石田 (2008) のサンプルデータにおける森鴎外と夏目漱石のテキスト(合計8編)とします。また、潜在的意味解析には、各テキストにおける名詞、…

頻度差の検定の効果量としてファイ係数とクラメールのVを用いる

この記事は、頻度差の検定の効果量としてオッズ比を用いるという記事の続編です。今回は、効果量としてのファイ係数とクラメールのVについて書きたいと思います。 最初の分析データとしては、前回と同じ言語項目の正用と誤用の頻度を集計した分割表を使いま…

頻度差の検定の効果量としてオッズ比を用いる

コーパス分析で頻度差を検定する場合、カイ二乗検定や対数尤度比検定がよく使われます。しかし、このような検定には、サンプル・サイズが大きくなれば、実質的な差がなくとも、「有意差あり」という誤った結果が得られる危険性があります。そのようなときに…

共起語の対数尤度比とダイス係数を求める

QiitaのR Advent Calendar 2014の20日目の記事です。*1 共起語とは、分析対象とする単語(中心語、あるいは検索語)の近くによく一緒に現れる単語のことです。実際の分析を行うにあたっては、どれくらい「近く」に現れる単語を共起語とみなすのか、また、ど…

Rパッケージにおける言語関連のデータ #RAdventJP

R Advent Calendar 2014の8日目の記事です。自分メモをかねて、Rパッケージにおける言語関連のデータをまとめてみました(随時更新中)。*1 因みに、zipfRパッケージのデータを読み込む場合は、パッケージのマニュアルを参照してください。*2 dataset descri…

ランダムフォレストのOOB errorのプロットに凡例をつける

今回は、ランダムフォレストにおけるOOB errorを視覚化する際に、凡例をつける方法を紹介します。以下は、irisデータに対して、ランダムフォレストを実行した例です。 # ランダムフォレスト library(randomForest) set.seed(1) rf.model <- randomForest(Spe…

MARSによる分類

RでMARS (Multivariate Adaptive Regression Splines) を実行するには、earthパッケージのearth関数を使います。なお、今回は、kernlabパッケージのspamを用いて、スパムメールの分類実験を行います。 # 分析データの読み込み library(kernlab) data(spam) #…

単語を重み付けする

今回は、TF-IDF (term frequency–inverse document frequency) という方法で単語の重み付けを行う方法を紹介します。TFは単語の観測頻度、IDFは全文書数をその単語が出現した文書で割って対数をとった値となります。*1 分析データは、金明哲先生が公開してお…

L1正則化による変数選択

今回は、glmnetパッケージを使って、L1正則化 (LASSO) による変数選択を行ってみます。分析データは、kernlabパッケージのspamデータセットとします。 まずは、L1正則化によるspam/nonspamの2値判別を行います。*1 # パッケージの読み込み library(glmnet) l…