お知らせ

6月21日(土)22日(日)に開かれる第44回中部地区英語教育学会山梨大会にて、「英語教育研究法セミナー」の2日目を担当させていただくことになりました。

「実践『報告』から実践『研究』への最初の一歩」

という題目で発表させていただきます。

思い返せば大学学部を卒業してすぐに参加した一回り前の山梨大会に、第1回の英語教育研究法セミナーが始まりました。そのとき以来、中部地区英語教育学会に参加するときには必ず研究法セミナーに参加させていただき、たくさんのことを勉強させていただきました。今でも浦野先生のサイトにまとめられている資料を適宜ダウンロードして勉強し直すことが多々あります。そんな中、まさか自分が研究法セミナーの場でお話しさせていただけるとは思ってもいませんでした。大変恐縮しております。大会のサイトにも掲載していただきましたが、自分の発表をたたき台によりよい実践研究のあり方を探っていけるよう努めたいと思います。よろしくお願いいたします。

第44回中部地区英語教育学会山梨大会

http://www.celes.info/yamanashi2014/

追記:6月22日

本発表のハンドアウトが公開されています。浦野研先生のサイトからダウンロードが可能です。

http://www.urano-ken.com/research/seminar/2014/index.html

Rで箱ひげ図と蜂群図を合体させる

データの可視化についてのお話を聞かせていただいたり発表資料を見せていただいたりすると、箱ひげ図と蜂群図を合わせて、データを要約しながらも全体の分布を提示することが薦められているようです(詳しくは小林(2013)や草薙(2014)を参照)。ちなみに箱ひげ図とは下のような図です。単に平均値のみを提示する棒グラフよりも多くの情報を読み取ることができます。

boxplot

 

蜂群図(beeswarm)とは以下の様な図です。個々のデータの全体的なばらつきが視覚的に提示されます。

beeswarm

この二つのグラフを合体させて以下の様なグラフを作成したいわけです。二つを合体させることで要約されたデータと個々のデータの分布を一つのグラフで読み取ることができるため、よい視覚化の手法として提案されています。

boxplot2

グラフの描画にはをRを使用しましたが、意外にも(?)完成までには悪戦苦闘しました。いくつか注意点があるので、備忘録として記載していおきます。

グラフ作成の前に:データの準備と蜂群図を描く準備をする

まず、データとして適当な値を持つグループ(n=30)を3グループ準備します。便宜上、dat1,dat2,dat3というグループを作成します。

dat1<-rnorm(n=30)
dat2<-rnorm(n=30)
dat3<-rnorm(n=30) # dat1,dat2,dat3に30個の乱数を格納する。(ちなみにrnorm(n=30,mean=10,sd=5)などとすると、平均値10, 標準偏差5の分布に従う乱数を30個生成してくれる。)

一応データを確認してみます。dat1と入力すると以下の様な値が入っていることが確認できました

dat1
[1] -0.696673881 -0.096907749 -0.024893093 -0.501707913 -1.148229893
[6] 0.052926455 0.056307916 1.754715429 -0.437464063 -0.129450015
[11] 0.648202583 1.843154807 0.579061711 -1.236842281 -1.086156870
[16] 0.653076210 -0.146905052 -1.488712088 -0.002318016 0.088805757
[21] -0.323390177 -1.120192715 1.512775980 -1.064644486 -0.892978699
[26] 1.454616771 0.886713657 -0.115766801 0.122375023 0.526842260

dat2、dat3も同様に確認します。

dat2
[1] 0.1019368942 -0.8198904418 -0.3744620288 -0.6072474458 -0.8027879845
[6] -0.8687848558 1.8321574210 0.2087934551 -1.2366441774 -1.2712738667
[11] -0.0006406788 -0.5999658260 0.1340664991 -1.1984889919 -0.0001141821
[16] 0.1146403068 -2.3950331007 -1.0241161067 -1.6901899350 -0.5358067819
[21] -1.6976701957 -1.5825121405 1.0014211713 1.0077299777 0.6412079903
[26] -0.4872082283 -0.4464768378 -0.8590309093 -1.2989472173 0.4512354119

dat3
[1] 0.8840772 -0.9607509 0.6621758 0.2261821 0.8937998 0.4915920
[7] -0.2081712 0.2372956 -1.1162683 -0.9370383 -1.4002460 -0.3318328
[13] -0.4560114 -0.5052164 1.2180124 1.7451215 0.4123308 -1.7272754
[19] -1.8983872 0.6186608 0.8224288 1.7339782 -1.2710421 -0.1089045
[25] 0.6216647 -0.6709525 1.0951401 -0.4407932 1.4956916 0.6493476

 

rnormは乱数発生関数ですので、再度rnorm関数を使って乱数を発生させると異なる値が抽出されます。

次に蜂群図を描く準備をします。蜂群図はデフォルトでは描画できませんので、beeswarmという拡張パッケージをRにインストールしなければなりません。インストールするには

install.packages(beeswarm) # パッケージbeeswarmをインストールする

と一行記述します。これでインストールが始まります。拡張パッケージも当然無料です。一行でインストール完了ですから非常に簡単ですね。ただし、インストールしただけでは使えませんので、このパッケージを使えるように読み込んであげる必要があります。読み込みには

library(beeswarm) #パッケージbeeswarmを読み込む

と一行記述します。これで蜂群図を描く準備が整いました。

まずは箱ひげ図を描画する

dat1,dat2,dat3にデータが格納されたところで、まず箱ひげ図を書きます。箱ひげ図の書き方は簡単。以下の一行を記述するだけで描画されます。

boxplot(dat1,dat2,dat3)

以下の様な図が描画されます。

boxplot3

ただ、これだと味気ないので、各箱ひげ図に名前をつけます。ついでに色も変えます。そこで、再度以下のように記述します。

boxplot(dat1,dat2,dat3,names=c(“dat1″,”dat2″,”dat3”),col=”gray”)

#names=c(“dat1”,”dat2”,”dat3”)というのは、1つ目のグラフ(dat1のグラフ)にdat1というグラフ名をつけ、続いて2つ目のグラフにdat2という名前を、3つ目のグラフにdat3という名前をつけます。

#col=”gray”とすると箱ひげ図がグレーに塗られます。col=”red”やcom=”orange”なども可能です。

すると以下の様な図が描画されます。

boxplot

蜂群図を描画する
次に、蜂群図を描きます。まず、boxplotと同じように以下のように記述してみます。

beeswarm(dat1,dat2,dat3)

すると、なぜか以下の様なエラーが返されました

以下にエラー match.arg(method) : ‘arg’ must be NULL or a character vector

この点がクリアされずやきもきしていましたが、いろいろ調べてみると、以下のように記述する必要があることがわかりました。

beeswarm(list(dat1,dat2,dat3)) #僕が悪戦苦闘したのはここでした。

これで3つの蜂群図を一枚に収めることができました。ちなみにドットを塗りつぶしたり形を変えたり出来ます。
beeswarm(list(dat1,dat2,dat3),pch=13) #pch=13とするとドットの形が以下の図のように変わります。16とすると塗りつぶされたドットに変化します。

beeswarm

二つのグラフを合体させる
後は生成した箱ひげ図と蜂群図を組み合わせます。ここまでで作成した図を組み合わせるために、まず箱ひげ図生成します。

boxplot(dat1,dat2,dat3,names=c(“dat1″,”dat2″,”dat3”),col=”gray”)

次に蜂群図を上書きします。上書きするときにはadd=Tという命令を加えます。

beeswarm(list(dat1,dat2,dat3),pch=13, add=T) #add=Tを記入すると既存のグラフにプラスして描画される

すると最初に提示したような図が完成します。

一つ一つ順番を追って書きましたが、実際に分析する場合は上記の手順を一通り行う必要はありません。dat1,dat2,dat3にデータが既に入っていると仮定すると、

install.packages(beeswarm) # パッケージbeeswarmをインストールする
library(beeswarm) #パッケージbeeswarmを読み込む
boxplot(dat1,dat2,dat3,names=c(“dat1″,”dat2″,”dat3”),col=”gray”) #箱ひげ図の作成
beeswarm(list(dat1,dat2,dat3),pch=13, add=T) #蜂群図を上に重ねて描画する

の4行だけで描画できます。 (#以下は書く必要はありません)

「研究法・統計手法」ページ・「英語教育文献」ページの追加

固定ページで「リンク集」というページを作成していましたが、リンク先が多様になってきたので整理しました。従来の「リンク集」ページは破棄し「研究法・統計手法」に関するリンク集と、「英語教育文献」に関するリンク集を作成しました。

「研究法・統計手法」は近年注目されている英語教育研究法について、効果量を中心とした統計手法について諸先生方が発表された発表資料・文献を一箇所に集めることを目的としました。「英語教育文献」は初めて英語教育について研究を行う学生さんや、学校現場の先生方で資料がどのように手に入れてよいか分からない方を対象として、国内の主要学術文献に一箇所からアクセスできるようまとめました。両方共にインターネット上で無料で手に入れることができることを主眼としました。