読者です 読者をやめる 読者になる 読者になる

『Rによるやさしいテキストマイニング』という本を刊行します

2月17日、『Rによるやさしいテキストマイニング』という単著を刊行いたします。目次などは出版社のウェブサイトで公開されていますが、ここでは、もう少し詳しくご紹介します。*1Rによるやさしいテキストマイニング作者: 小林雄一郎出版社/メーカー: 株式会…

第1回 R初心者合宿講習会 (R Bootcamp) 募集中

先日、こちらの記事で第1回R初心者合宿講習会についてお知らせいたしました。その後、おかげさまで多くの方から参加登録をして頂きまして、残席はわずか数名となっております。ですので、参加を検討されている方には、こちらからお早目の申し込みをされるこ…

Automated scoring of L2 spoken English with random forests

Journal of Pan-Pacific Association of Applied Linguisticsに以下の論文が掲載されました(こちらからダウンロードすることができます)。 Yuichiro Kobayashi & Mariko Abe (2016). Automated scoring of L2 spoken English with random forests. Journal…

第1回 R初心者合宿講習会 (R Bootcamp)

来たる3月7〜11日、幕張テクノガーデンで第1回R初心者合宿講習会を開催します。このイベントは、5日間にわたるRの集中講座で、インストールや基本操作から、統計処理やテキストマイニングまでをカバーします(参加登録は、こちらからお願いします。)。暫定…

Heat map with hierarchical clustering: Multivariate visualization method for corpus-based language studies

『国立国語研究所論集』(NINJAL Research Papers) というジャーナルに、以下の論文が掲載されました(オープンアクセスですので、こちらからダウンロードすることができます)。手法の解説だけでなく、Rのスクリプトを載せています。 Yuichiro Kobayashi (20…

R入門 (3)

この記事は、R入門 (2) の続きです。以下、授業の補足資料です。 対応分析 前回は、重回帰分析や判別分析を用いて、目的変数を含んだデータを解析しました。しかし、全てのデータに目的変数が含まれているわけではありません。そのような場合には、いくつか…

R入門 (2)

この記事は、R入門 (1) の続きです。以下、授業の補足資料です。 重回帰分析 重回帰分析を用いると、任意のデータ(目的変数)がそれ以外のデータ(説明変数)とどのような関係にあるかを明らかにすることができます。以下では、Rにあらかじめ格納されている…

R入門 (1)

Rは、統計解析のためのプログラミング言語です。フリーウェアなので、誰でも自由に入手・使用することができます。公式サイトはこちらで、Wikipediaの記事はこちらです。以下、授業の補足資料です。 簡単な計算と関数 まず、Rのコンソール画面の入力に慣れる…

変数間の相関係数の大きいペアを抽出する

多変量データから相関行列を求め、相関係数の大きいペアを抽出する方法を以下にメモしておきます。*1 分析データは、定番のirisです。 # irisデータからSpeciesの情報を削除 iris2 <- iris[, -5] # 相関行列の作成 x <- cor(iris2) # データ形式の変換 libra…

カイマージによる連続データの離散化

カイマージは、カイ二乗検定を用いて、連続データを離散化するための手法です。*1 具体的には、「属性の離散化方法とクラスの確率は独立である」という帰無仮説に基づき、その仮説が棄却される場合は隣接する区間を統合し、棄却されない場合は統合しないとい…

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

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

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

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

GBMによる変数選択

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

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

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

書き手を識別するためのクラスタリング手法の検討

来たる4月18日(土)、国立国語研究所にて、「通時コーパスの設計」近代語グループ 研究会(非公開)が開催されます。主な内容は、以下のとおりです。 小島聡子「宮沢賢治と浜田広介の文体比較―話し言葉的側面の出方について」 小林雄一郎「書き手を識別する…

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

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

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

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

ソーシャル・コンピュテーション学会第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 # パッケージの読み込み…

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

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

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

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

ランダムフォレストの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) #…

L1正則化による変数選択

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

クラスター分析におけるp値を計算する

今回は、Rのpvclustパッケージを用いて、クラスター分析におけるp値を計算してみます。分析データは、caパッケージのauthorとします。*1 以下の例では、相関係数と群平均法を用いたクラスター分析を行い、ブートストラップのリサンプリング数を1000回として…

分類精度を確認する

判別分析や決定木のような分類モデルを評価する場合、そのモデルの分類精度を確認するのが一般的です。*1 以下の例は、irisデータの判別分析です。 # 分析データ # 訓練データと実験データの作成 tr.index <- seq(1, nrow(iris), 2) iris.train <-iris[tr.in…

系統樹を描く (2)

前回の記事にもあるように、系統樹を描く場合、どの距離や結合法を用いるかによって、最終的に得られる結果が異なることがあります。勿論、個々の分析において、どの距離や結合法を用いるかは、データの性質や研究目的、あるいは分析者の仮説によっても変わ…

系統樹を描く (1)

今回は、系統樹によるクラスタリングを行います。系統樹とは、同系統のグループ内の親子関係を推定し、その結果を樹木の枝分かれに見立てて表現する手法のことです。樹根(樹木の根の部分)がある系統樹を有根系統樹と呼び、樹根がない系統樹を無根系統樹と…

複数のクラスタリング手法を組み合わせる

主成分分析であれ、対応分析であれ、クラスター分析であれ、クラスタリングには、それぞれ長所や短所があります。そこで、複数のクラスタリング手法を組み合わせることで、データの性質をより深く理解しようというアプローチがあります。今回は、その一例と…

ランダムフォレストによる分類に寄与した変数の分析

Rでランダムフォレストを実行するには、randomForestパッケージのrandomForest関数を使います。なお、今回は、kernlabパッケージのspamを用いて、スパムメールの分類実験を行います。 # 実験データの読み込み library(kernlab) data(spam) # 乱数の設定 set.…

情報量基準に基づく習熟度尺度の再検討

3月29日(土)、統計数理研究所で開催された言語研究と統計2014で、「情報量基準に基づく習熟度尺度の再検討」という発表をしてきました。 私は、言語処理や機械学習の技術を使って、英語学習者の書き言葉や話し言葉を自動評価する研究を行っています。自動…