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

R初心者合宿講習会 (R Bootcamp) に関する資料

r

 ここには、R初心者合宿講習会 (R Bootcamp) のためのメモや練習問題が書かれています(工事中・随時更新)。なお、現在は、私が講師を務める部分に関するもののみを公開しています。

テキスト

R関連のメモまとめ

練習問題

  • (6.1節)RMeCabを使って、以下の文章を形態素解析しなさい。
    • 私はその人を常に先生と呼んでいた。だからここでもただ先生と書くだけで本名は打ち明けない。これは世間を憚かる遠慮というよりも、その方が私にとって自然だからである。私はその人の記憶を呼び起すごとに、すぐ「先生」といいたくなる。筆を執っても心持は同じ事である。よそよそしい頭文字などはとても使う気にならない。
  • (6.2節)上記の一節から単語の頻度表を作成し、上位10語を表示しなさい。
  • (6.3節)テキストの付属データセットの「Data」フォルダ→「speech」フォルダの中にあるKoizumi.txtをRStudioにアップロードし、品詞3-gramを作成しなさい。
  • (6.4節)テキストの付属データセットの「Data」フォルダ→「speech」フォルダの中にあるAbe.txtをRStudioにアップロードし、「国」の共起語を集計しなさい(span = 2)。
  • (8.1節)以下のデータに対して、フィッシャーの正確確率検定とカイ自乗検定(イェーツの補正なし)を実行しなさい。
A新聞の購読者 B新聞の購読者
内閣支持 225 292
内閣不支持 275 208
  • (8.1節)上記のデータ(新聞の購読者)を用いて、オッズ比と、オッズ比の信頼区間を求めなさい。
  • (8.1節)上記のデータ(新聞の購読者)を用いて、クラメールのVと、クラメールのVの信頼区間を求めなさい。
  • (8.1節)以下のデータを用いて、モザイクプロットを描きなさい。
中学生 高校生 大学生
文頭のbecause 1565 941 218
文中のbecause 452 726 302
  • (8.1節)上記のデータ(because)に対して、カイ自乗検定(イェーツの補正なし)を実行し、多重比較も行いなさい。
  • (8.2節)Rのcarsデータセットを用いて、箱ひげ図つきの散布図を描きなさい。
  • (8.2節)Rのcarsデータセットを用いて、1列目(speed)と2列目(dist)の積率相関係数と順位相関係数を求めなさい。
  • (8.2節)Rのcarsデータセットの1列目(speed)と2列目(dist)を用いて、無相関検定を行いなさい。
  • (8.2節)Rのcarsデータセットを用いて、speedを説明変数、distを目的変数とする単回帰分析を行いなさい。また、その回帰直線を散布図に重ねて描きなさい。
  • (8.2節)Rのairqualityデータセットを表示し、MonthとDayの列を削除したあと、Solar.R、Wind、Tempの3つを説明変数、Ozoneを目的変数とする重回帰分析を行いなさい。
  • (9.1節)RのMASSパッケージにあるcaithデータセットを用いて、対応分析を行いなさい。
  • (9.1節)RのUSJudgeRatingsデータセットを用いて、クラスター分析で裁判官を分類しなさい。
  • (9.1節)こちらから泉鏡花岡本綺堂島崎藤村の読点の打ち方のデータをダウンロードし、全ての変数(文字+読点)の箱ひげ図を(1枚の画像として)描きなさい。また、その際、箱を緑色に塗り、変数のラベルを縦に表示すること。
  • (9.1節)上記の読点の打ち方のデータを用いて、全ての変数(文字+読点)の要約統計量(最小値、下側25%点、中央値、平均値、上側25%点、最大値)を一度に表示しなさい。
  • (9.1節)上記の読点の打ち方のデータを用いて、クラスター分析でテキストを分類しなさい。なお、csvファイルを読み込む際、文字コードcp932 を指定すること。*1
  • (9.2節)Rのirisデータセットを用いて、Speciesを目的変数とし、それ以外の4つの列を説明変数とする線形判別分析を行いなさい。その際、奇数行のデータを訓練データとし、偶数行のデータを評価データとしなさい。
  • (9.2節)RのTitanicデータセットを読み込み、install.packages("epitools"); library(epitools); Titanic1 <- expand.table(Titanic); head(Titanic1) というコードを実行しなさい。それから、Titanic1データセットを用いて、Survivedを目的変数とし、それ以外の列を説明変数とする決定木分析を行いなさい。
  • (10.2節)RのlanguageRパッケージにあるthroughデータセットを用いて、単語の頻度表と単語2-gramの頻度表を作成しなさい。

*1:文字コードの指定については、『Rによるやさしいテキストマイニング』のp. 101などを参照。

2017年2月に購入した本・ご恵贈頂いた本

diary

 以下の本を購入しました。

A User’s Guide to Network Analysis in R (Use R!)

A User’s Guide to Network Analysis in R (Use R!)

Statistical Analysis of Network Data with R (Use R!)

Statistical Analysis of Network Data with R (Use R!)

データを集める技術 最速で作るスクレイピング&クローラー (Informatics&IDEA)

データを集める技術 最速で作るスクレイピング&クローラー (Informatics&IDEA)

Pythonによる機械学習入門

Pythonによる機械学習入門

確かな力が身につくPython「超」入門 (確かな力が身につく「超」入門シリーズ)

確かな力が身につくPython「超」入門 (確かな力が身につく「超」入門シリーズ)

改訂版 日本統計学会公式認定 統計検定2級対応 統計学基礎

改訂版 日本統計学会公式認定 統計検定2級対応 統計学基礎

日本統計学会公式認定 統計検定3級対応  データの分析

日本統計学会公式認定 統計検定3級対応 データの分析

  • 作者: 藤井良宜,竹内光悦,後藤智弘,日本統計学会,竹村彰通,岩崎学,美添泰人
  • 出版社/メーカー: 東京図書
  • 発売日: 2012/07/07
  • メディア: 単行本(ソフトカバー)
  • 購入: 1人 クリック: 65回
  • この商品を含むブログ (6件) を見る

資料の活用―日本統計学会公式認定統計検定4級対応

資料の活用―日本統計学会公式認定統計検定4級対応

仮説を検証し母集団を調べる 検定・推定超入門 (知識ゼロでもわかる統計学)

仮説を検証し母集団を調べる 検定・推定超入門 (知識ゼロでもわかる統計学)

音声DLつき TOEFLテスト でる単5000

音声DLつき TOEFLテスト でる単5000

 そして、以下の本をご恵贈頂きました。心より感謝を申し上げます。

CL2017から採択通知

corpus ling diary

 来たる2017年7月24〜28日にイギリスのバーミンガムで開催されるCorpus Linguistics 2017に投稿していたポスターが採択されました。*1

  • Yuichiro Kobayashi (2017). Developmental patterns of metadiscourse in second language writing. Corpus Linguistics 2017.

 今回の発表は、学習者のメタ談話標識を国別に分析したInvestigating metadiscourse markers in Asian Englishes: A corpus-based approachという論文の続編で、習熟度別の比較も加えたものです。CLは、4回連続の発表。*2 バーミンガムは、CL2011で発表して以来、6年ぶり。

*1:ここのところ口頭発表が続いていたので、久しぶりにポスターで出してみました。

*2:CL2015は、都合により不参加でしたが、共同研究者が発表しました。

広告を非表示にする

ランダムフォレストのMDS plotで誤分類されている標本だけ書式を変える

r stats

 Rでランダムフォレストの結果に基づく多次元尺度法の散布図(MDS plot)を作成し、他クラスに誤分類されている標本だけ書式を変えたい、という要望があったので、今回はそれに挑戦してみます。以下は、「とりあえずできた」という程度のコードなので、もっと良い書き方があるかも知れません。分析データは、irisデータセットです。

# パッケージの読み込み
library(randomForest)
# 乱数の種の固定
set.seed(1)
# ランダムフォレストの実行(近接性も計算)
rf.model <- randomForest(Species ~ ., data = iris, proximity = TRUE)
# ランダムフォレストの結果に基づく多次元尺度法の散布図を作成
MDSplot(rf.model, iris$Species)

 上記のスクリプトを実行すると、以下のような図が表示されます。

f:id:langstat:20170211191003p:plain

 では、この図を力技で加工します。

# 正解データと判別結果の照合
# (rf.model$yが正解データで、rf.model$predictedが判別結果)
TF <- rf.model$y == rf.model$predicted
# 正しく分類されているか否かの論理値(TRUE/FALSE)を数値(1/0)に変換
TF.n <- as.numeric(TF)
# MDS plotの結果を変数に代入
MDS.result <- MDSplot(rf.model, iris$Species)
# 誤分類されている標本だけ書式を変えて描画
# (MDS plotの座標データは、MDS.result$points)
# colの指定で、いくつの数値を足すかは好みの問題
# (ただ、何も足さないと、誤分類されている標本が表示されない)
plot(MDS.result$points, pch = as.numeric(iris$Species), col = TF.n + 2)

 上記のスクリプトを実行すると、以下のような図が表示されます。この図では、3種類のアヤメがそれぞれ○、△、+の記号で表示されています。また、正しいクラスに分類できたものが緑、誤ったクラスに分類されたものが赤で表されています。*1 引数colや引数pchなどは、お好みで変えてください。

f:id:langstat:20170211190436p:plain

 そして、誤分類されている標本に標本番号を振る場合は、以下のようにします(これも力技なので、もっと洗練された書き方があると思います)。

# 誤分類されている標本の番号を取得
n <- grep(FALSE, TF)
# 誤分類されている標本の番号を表示
# 座標にいくつの数値を足すかは職人芸(笑)
# (ただ、何も足さないと、記号の上に文字列が重なってしまう)
text(MDS.result$points[n, ] + 0.03, as.character(n), cex = 0.5)

 上記のスクリプトを実行すると、以下のような図が表示されます。

f:id:langstat:20170211192232p:plain

 「やさしい」赤ペン先生をゆるぼします(笑)

*1:plotで使用できる色については、こちらなどを参照。

Rの初心者が中級者にステップアップするための7冊

r

 今回は、Rの初心者から中級者にステップアップするための参考書をご紹介します。*1 なお、本記事における「初心者」は、以下の4つの条件を満たすことを想定しています。*2

  1. Rのインストールと起動ができる
  2. RにテキストファイルやCSVファイルを読み込むことができる
  3. Rの追加パッケージのインストールと読み込みができる
  4. Rにおける「変数」、「代入」、「関数」、「ベクトル」、「行列」、「データフレーム」について大体理解している

 また、以下の本の選定にあたっては、「○○学のための〜」のような特定分野の読者を対象とするものは除外しました。

統計について学びたい

 Rと言えば、まずは統計でしょう。Rで統計を学ぶ場合は、以下の本がオススメです。この本は、非常に基本的な内容から始まり、徐々に発展的な内容となっていきます。

Rによるやさしい統計学

Rによるやさしい統計学

データマイニングについて学びたい

 古典的な統計手法だけでなく、データマイニング機械学習に関する比較的新しい手法を学びたい場合は、以下の本がオススメです(以下は3月発売の第2版ですが、第1版は発売中です)。

Rによるデータサイエンス(第2版) データ解析の基礎から最新手法まで

Rによるデータサイエンス(第2版) データ解析の基礎から最新手法まで

テキストマイニングについて学びたい

 近年、アンケート分析やクチコミ分析におけるテキストマイニングの有効性が認識されつつあります。以下の本では、テキストデータの収集方法や前処理から、様々なテキストマイニングの手法が説明されています。

Rによるやさしいテキストマイニング

Rによるやさしいテキストマイニング

可視化について学びたい

 データの可視化は、分析の糸口を発見する意味でも、結果を他人に分かりやすく説明する意味でも、非常に重要です。Rによるグラフの作成方法については、以下の本がよくまとまっています。

統計データの視覚化 (Rで学ぶデータサイエンス 12)

統計データの視覚化 (Rで学ぶデータサイエンス 12)

前処理について学びたい

 データ分析では、データ加工やデータ変換などの前処理は不可欠です。Rによる前処理に関しては、以下の本に最も体系的に書かれています。

データ分析プロセス (シリーズ Useful R 2)

データ分析プロセス (シリーズ Useful R 2)

プログラミングについて学びたい

 Rを本格的に使いこなすためには、ある程度のプログラミング技術が求められます。Rを使ってプログラミングの基本を学びたい場合は、以下の本がオススメです。

RStudioではじめるRプログラミング入門

RStudioではじめるRプログラミング入門

Rについてもっと知りたい

 統計処理やテキストマイニング以外にも、Rを様々な用途で活用することができます。Rの機能を概観したいときは、手始めに以下の本を読んでみるとよいでしょう。

改訂3版 R言語逆引きハンドブック

改訂3版 R言語逆引きハンドブック

*1:このリストは、R初心者合宿講習会(R Bootcamp)のための推薦図書リストから一部を抜き出したものです。

*2:これらの条件を満たしていない場合は、より入門的な書籍もしくはウェブサイトなどで簡単に確認することをオススメします。因みに、これらの内容は、本記事でも紹介している『Rによるやさしいテキストマイニング』などでも解説されています。