SlideShare a Scribd company logo
1 of 16
Download to read offline
第 33 回 Tokyo.R
Rで 項目反応理論 (IRT)
テキストマイニング
Rの研修
やってます、という三題噺
(株) 富士通ラーニングメディア
田中 健太
2013年 8月 31日
1
1 まずは、自己紹介
• 社会人4年目の研修講師 (UNIX / Linux、仮想化、スト
レージ、クラウド、ビッグデータなど担当) です
• その前は長々と大学にいました (心理学、教育工学、障害者
支援などを研究) が、学位もポストも・・・だったので就職
• 2002年にLinuxにはじめて触れて以来、細々とOSS関係
の活動をしています
• 主に組版ソフトTEXの周りでIDEの日本語化、ドキュメン
トの翻訳、解説サイトの運営などをしています
(WinShellとかTexmakerとかTeXworksとか)
2
2 なんでTokyo.Rで話すの?
• 学生時代は (Excel)、SAS、SPSS、JMP、AMOS、
MATLAB、Octaveなどをひととおり使用していました
• そんな関係で、ビッグデータ関連の研修開発や、テスト結
果の分析などの仕事が降ってくる
• 社内に経験もノウハウも商用ソフトウェアもない環境では
Rを使うしかない (会社に入ってからのRデビュー)
• 慣れれば、まぁ・・・
• 今回はRでやっていることと、その方法を話しに来ました
3
3 仕事でやっていること
• 項目反応理論によるテスト結果の分析
■ 研修修了時のテスト結果などを、項目反応理論 (IRT) で分析、改善に役立てています
■ 今回は、Rで “簡単に” IRTに基づく分析を行う手順を紹介します
• Twitterデータの収集と分析
■ 半分以上趣味ですが、Streaming APIでツイートを収集、Rで分析してます
■ 今回は、Rで “簡単に” テキストマイニング (ワードクラウド) を行う手順を紹介します
• データ分析関係の研修開発
■ なんか、一般企業でも「ビッグデータ」や「データサイエンティスト」が流行っています
■ 今回は、当社のRを用いたデータ分析研修について少し話させてください・・・
4
お題1
5
4 IRTに基づくテストの分析
• テスト実施の機会は多い
(教育機関以上?)
• よいテストを提供したい
• テストの点数を
「問題の難易度」と
「受検者の能力」
の関数と定義、評価
• 項目特性曲線 (左上) を見
て、アヤシイ問題を
発見、修正している
• テストの品質改善を実現
-4 -2 0 2 4
0.00.20.40.60.81.0
とあるテストの項目特性曲線 (2PL)
理解度
正答率
Q1
Q2
Q3
Q4
Q5
-4 -2 0 2 4
0.000.020.040.060.080.100.12
とあるテストの項目情報曲線 (2PL)
理解度
情報量
Q1
Q2
Q3
Q4
Q5
-4 -2 0 2 4
0.100.150.200.25
とあるテストのテスト情報曲線 (2PL)
理解度
情報量
-1.5 -1.0 -0.5 0.0 0.5 1.0
0.00.20.40.60.8
とあるテストの受講者能力分布 (2PL)
理解度
密度
6
5 RでIRT分析1
• RjpWikiで勉強した結果
ですが (多謝)
• ltmまたはirtoys
パッケージを使うと簡単
• データは1行1人、問題
ごとに正誤を1 / 0で
• 理論的な枠組みは
植野,荘島 (2010) や
村木 (2011) などを参照
(“豊田本” は難しい...)
• 基本的には、特性量を
算出 → plotで描画
----------データはこんな感じ----------
Q1,Q2,Q3,Q4,Q5
0,1,0,0,0
1,1,0,1,0
----------データはこんな感じ----------
library(irtoys)
data <- read.csv("hoge.csv",header=T)
# 項目特性の算出
ltmans <- ltm(data˜z1,IRT.param=TRUE)
# 受検者能力の算出
ltmscore <- factor.scores(ltmans,method="EB")
# テスト反応関数の算出
trfans <- est(data,model="2PL",engine="ltm")
trfscore <- trf(trfans$est)
# テスト情報量の算出
ltminfo <- information(ltmans,c(-1,1))
7
6 RでIRT分析2
• 分析結果はおもに4つの
グラフで得られる
• 項目特性曲線 (ICC) が
特に (当社では) 重要
• 横軸0、縦軸0.5を中心と
したS字カーブが理想
• 左寄り → 簡単
右寄り → 難しい
平坦 → 識別力が低い
急峻 → 能力差に敏感
...特徴を分析、改善
• ここまでやるのは当社だけ!
# 項目特性曲線の描画
plot.ltm(ltmans,...)
# 項目情報曲線の描画
plot.ltm(ltmans,type="IIC",...)
# テスト情報曲線の描画
plot.ltm(ltmans,type="IIC",items=0,...)
# テスト反応曲線の描画
plot(trfscore,...)
# テスト情報量のファイル出力
print(ltmans,quote=F)
print(ltminfo,quote=F)
----------内容はこんな感じ----------
Dffclt Dscrmn
Q1 -1.012 0.464
Q2 -0.930 0.543
Q3 -0.880 0.697
Q4 1.555 0.260
Q5 -16.148 -0.065
Information in (-1, 1) = 0.48 (25.2%)
8
お題2
9
7 Twitterデータの分析
人がゴミのようだ
バルス
ダウンTL
俺
人人笑
見る
名言
シータ
w
思う
今日
TL
何
ラピュタ
明日
来る
人
フォロ 対決
w
バル
待つ
目
前
発生
時間
Y
ツイート サーバー
wwww
厂 ゛
(笑)
Twitter
絶対
Y
呟く
緊急事態
私
ww
行く
T
ムスカ
言う
今
ゴミ
人間
接近
パズー
祭り
2013/08/02 23:15
• 先日の「バルス祭り」の際のツイート数とワードクラウド
• ほとんど趣味ですが、ツイートを収集、分析してます
• 講習会でデモすると、かなりウケます (ビジネス上の実用性は...?)
10
8 Twitterデータの収集
• Twitter Streaming APIを使ってツイートを収集できます
• RでもTwitteRパッケージでアクセスできますが、
私はRubyスクリプトを回しっぱなしにしています
• 参考: http://d.hatena.ne.jp/NE555/20120108
require ’time’
require ’rubygems’
require ’tweetstream’
SEP="t"
TweetStream::Client.new.sample do |status|
if status.user.lang == "ja"
dt = Time.parse("status.created_at")
text = status.text.gsub("n", " ")
puts("#{dt}#{SEP}#{status.user.screen_name}#{SEP}#{text}")
end
end
11
9 Twitterデータのマイニング1
• 今回は “見映え” 重視の
ワードクラウド
• その名もズバリ
wordcloudパッケージ
• 参 考: http://onertipaday.
blogspot.jp/2011/07/
word-cloud-in-r.html
• 日本語テキストは形態素
解析をする必要がある
• Rから形態素解析器
MeCabを扱うRMeCab
パッケージを使用
-----紙幅の都合で抜粋版-----
at<-read.delim("hoge.txt",...)
at$time<-as.POSIXct(at$time,
format="%Y-%m-%d %H:%M")
at$tweet<-as.character(at$tweet)
x<-0; y<-"2013-08-02 00:00" # 開始時間
tn<-as.POSIXct(y,format="%Y-%m-%d %H:%M")
while (x <= 1440) { # 処理範囲を分で指定
if(!length(subset(at$tweet,at$time==tn))==0){
write.table(subset(at$tweet,at$time
==tn),file="tmp.txt",quote=F,row.names=F,
col.names=F)
# MeCabで形態素解析、頻度を算出
rt<-RMeCabFreq("tmp.txt")
12
10 Twitterデータのマイニング2
• Twitterの分析には
辞書の問題がつきまとう
• 形態素解析器は「ビッグ
データ」なんて知らない
• mecab-dic-overdrive
でWikipediaページ名
などを登録可能
• まじめにやるなら、辞書
整備が不可欠
• 参考:
https://github.com/nabokov/
mecab-dic-overdrive
-----とにかく、不要な形態素を捨てる-----
part_rt <-rt[(rt$Info1=="名詞" |
rt$Info1=="感動詞" | rt$Info1=="形容詞" |
rt$Info1=="動詞") & !rt$Info2=="特殊"
& (!rt$Term=="RT" & !rt$Term==".co"
& !rt$Term=="http" & !rt$Term=="www")
& rt$Freq > 15,] # 1分間の頻度が15以上
if(nrow(part_rt)>=1){
# 使用するカラーパレットを指定
pallet<-brewer.pal(8,"Dark2")
# ワードクラウドの作成
wordcloud(part_rt$Term,part_rt$Freq,
scale=c(5,2),max.words=Inf,random.order=T,
random.color=F,colors=pallet)
}
}
x<-x+1; tn<-tn+60
}
13
お題3
14
11 Rの社会人向け研修を作りました
• 「ビッグデータ」ビジネスが流行
• HadoopやKVSは落ち着き、「デー
タサイエンティスト」が大ブーム
• その中でRの注目度が急上昇!
• そこで、Rの研修を開発しました
• 「R言語によるデータ分析入門」
• 基本統計量から回帰分析あたり
までを1日で学習
• Rの使いかただけでなく、「統計の
キホン」(仮説検証) を紹介
UBS51Lで検索!
• ツールの使い方だけを教えるのか
と思っていたが、分析の仕方という
視点でも話があった点が良かった
• Rの基本が分かり、非常に満足した
• 講師の知識の豊富さが講義から
伝わってきた
15
12 Rの社会人向け研修を作ってます
• より実践的な分析を学びたい、という声も聞きます
• そこで、お客様からよく聞く「テキストマイニング」と
「時系列データ解析」をテーマに応用編を作っています
•「R言語によるデータ分析応用編」
• 10月11日に初回予定・・・だが、開発中
• テキストマイニングはともかく、時系列データは大変
• 技術者にとって “リアル” な時系列データってなんだ?
• とはいえ、間に合わせるのでよろしくお願いします
16

More Related Content

What's hot

比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
takehikoihayashi
 
統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333
Issei Kurahashi
 

What's hot (20)

混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする混合モデルを使って反復測定分散分析をする
混合モデルを使って反復測定分散分析をする
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
 
社会心理学とGlmm
社会心理学とGlmm社会心理学とGlmm
社会心理学とGlmm
 
“機械学習の説明”の信頼性
“機械学習の説明”の信頼性“機械学習の説明”の信頼性
“機械学習の説明”の信頼性
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
 
一般化線形混合モデル入門の入門
一般化線形混合モデル入門の入門一般化線形混合モデル入門の入門
一般化線形混合モデル入門の入門
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 
項目反応理論による尺度運用
項目反応理論による尺度運用項目反応理論による尺度運用
項目反応理論による尺度運用
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
 
機械学習の課題設定講座
機械学習の課題設定講座機械学習の課題設定講座
機械学習の課題設定講座
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
 
計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)
 
重回帰分析で交互作用効果
重回帰分析で交互作用効果重回帰分析で交互作用効果
重回帰分析で交互作用効果
 
金融情報における時系列分析
金融情報における時系列分析金融情報における時系列分析
金融情報における時系列分析
 
ベイズモデリングと仲良くするために
ベイズモデリングと仲良くするためにベイズモデリングと仲良くするために
ベイズモデリングと仲良くするために
 
統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333
 
心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor
 
GLMM in interventional study at Require 23, 20151219
GLMM in interventional study at Require 23, 20151219GLMM in interventional study at Require 23, 20151219
GLMM in interventional study at Require 23, 20151219
 
因果推論の奥へ: "What works" meets "why it works"
因果推論の奥へ: "What works" meets "why it works"因果推論の奥へ: "What works" meets "why it works"
因果推論の奥へ: "What works" meets "why it works"
 
ベイジアンネット技術とサービス工学におけるビッグデータ活用技術
ベイジアンネット技術とサービス工学におけるビッグデータ活用技術ベイジアンネット技術とサービス工学におけるビッグデータ活用技術
ベイジアンネット技術とサービス工学におけるビッグデータ活用技術
 

Viewers also liked

Japan.R #2 Introduction to R
Japan.R #2 Introduction to RJapan.R #2 Introduction to R
Japan.R #2 Introduction to R
SAKAUE, Tatsuya
 
ggplot2 に入門してみた
ggplot2 に入門してみたggplot2 に入門してみた
ggplot2 に入門してみた
Hidekazu Tanaka
 

Viewers also liked (20)

エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてエクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについて
 
Excelでも統計分析 HADについて SappoRo.R#3
Excelでも統計分析 HADについて SappoRo.R#3Excelでも統計分析 HADについて SappoRo.R#3
Excelでも統計分析 HADについて SappoRo.R#3
 
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
 
とある金融屋の統計技師が時系列解析してみた
とある金融屋の統計技師が時系列解析してみたとある金融屋の統計技師が時系列解析してみた
とある金融屋の統計技師が時系列解析してみた
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 
Nagoya.R #16 いろいろできるぞinstallrパッケージ
Nagoya.R #16 いろいろできるぞinstallrパッケージNagoya.R #16 いろいろできるぞinstallrパッケージ
Nagoya.R #16 いろいろできるぞinstallrパッケージ
 
学習者のライティング方略は現実のライティングプロセスに反映されるか
学習者のライティング方略は現実のライティングプロセスに反映されるか学習者のライティング方略は現実のライティングプロセスに反映されるか
学習者のライティング方略は現実のライティングプロセスに反映されるか
 
エッセイライティング中のライティング方略とポーズ
エッセイライティング中のライティング方略とポーズエッセイライティング中のライティング方略とポーズ
エッセイライティング中のライティング方略とポーズ
 
YamadaiR(Categorical Factor Analysis)
YamadaiR(Categorical Factor Analysis)YamadaiR(Categorical Factor Analysis)
YamadaiR(Categorical Factor Analysis)
 
Nagoya.R #15 順位相関係数の信頼区間の算出
Nagoya.R #15 順位相関係数の信頼区間の算出Nagoya.R #15 順位相関係数の信頼区間の算出
Nagoya.R #15 順位相関係数の信頼区間の算出
 
外国語における文法的慎重性と性格特性
外国語における文法的慎重性と性格特性外国語における文法的慎重性と性格特性
外国語における文法的慎重性と性格特性
 
2015LETシンポジウム 時系列指標とライティング方略
2015LETシンポジウム 時系列指標とライティング方略2015LETシンポジウム 時系列指標とライティング方略
2015LETシンポジウム 時系列指標とライティング方略
 
外国語教育研究における尺度の構成と妥当性検証
外国語教育研究における尺度の構成と妥当性検証外国語教育研究における尺度の構成と妥当性検証
外国語教育研究における尺度の構成と妥当性検証
 
ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾
 
楽にggplotを描く・整える
楽にggplotを描く・整える楽にggplotを描く・整える
楽にggplotを描く・整える
 
Stanの事後処理 LTver
Stanの事後処理 LTverStanの事後処理 LTver
Stanの事後処理 LTver
 
Stanの便利な事後処理関数
Stanの便利な事後処理関数Stanの便利な事後処理関数
Stanの便利な事後処理関数
 
Japan.R #2 Introduction to R
Japan.R #2 Introduction to RJapan.R #2 Introduction to R
Japan.R #2 Introduction to R
 
form 1 Pantun
form 1 Pantunform 1 Pantun
form 1 Pantun
 
ggplot2 に入門してみた
ggplot2 に入門してみたggplot2 に入門してみた
ggplot2 に入門してみた
 

Similar to Rで項目反応理論、テキストマイニング、Rの研修やってますという三題噺(33rd #TokyoR)

TENTOってなんだろう 2013 05-30 青山学院大学
TENTOってなんだろう 2013 05-30 青山学院大学TENTOってなんだろう 2013 05-30 青山学院大学
TENTOってなんだろう 2013 05-30 青山学院大学
Shinichi Kusano
 

Similar to Rで項目反応理論、テキストマイニング、Rの研修やってますという三題噺(33rd #TokyoR) (13)

LibreOffice拡張機能 TeXMathsの紹介
LibreOffice拡張機能 TeXMathsの紹介LibreOffice拡張機能 TeXMathsの紹介
LibreOffice拡張機能 TeXMathsの紹介
 
今から学ぶLinux(基礎とトレンド)
今から学ぶLinux(基礎とトレンド)今から学ぶLinux(基礎とトレンド)
今から学ぶLinux(基礎とトレンド)
 
第六回全日本コンピュータビジョン勉強会資料 UniT (旧題: Transformer is all you need)
第六回全日本コンピュータビジョン勉強会資料 UniT (旧題: Transformer is all you need)第六回全日本コンピュータビジョン勉強会資料 UniT (旧題: Transformer is all you need)
第六回全日本コンピュータビジョン勉強会資料 UniT (旧題: Transformer is all you need)
 
G150 いとうたけひこ・目黒健太 (2010). 朝日新聞と読売新聞の憲法記念日の社説のテキストマイニング 日本行動計量学会第38大会抄録集, 29...
G150  いとうたけひこ・目黒健太 (2010). 朝日新聞と読売新聞の憲法記念日の社説のテキストマイニング  日本行動計量学会第38大会抄録集, 29...G150  いとうたけひこ・目黒健太 (2010). 朝日新聞と読売新聞の憲法記念日の社説のテキストマイニング  日本行動計量学会第38大会抄録集, 29...
G150 いとうたけひこ・目黒健太 (2010). 朝日新聞と読売新聞の憲法記念日の社説のテキストマイニング 日本行動計量学会第38大会抄録集, 29...
 
Merpay tech talk (e2e testing framework)
Merpay tech talk (e2e testing framework)Merpay tech talk (e2e testing framework)
Merpay tech talk (e2e testing framework)
 
TENTOってなんだろう 2013 05-30 青山学院大学
TENTOってなんだろう 2013 05-30 青山学院大学TENTOってなんだろう 2013 05-30 青山学院大学
TENTOってなんだろう 2013 05-30 青山学院大学
 
2012ー1 TENTOプレゼン資料
2012ー1 TENTOプレゼン資料2012ー1 TENTOプレゼン資料
2012ー1 TENTOプレゼン資料
 
論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討
論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討
論文執筆の環境をめぐる最新の状況と、学会の査読・編集システムを持続可能とするための方策の検討
 
【第一回Linked Open Data勉強会】LODの基礎技術と公開までの取り組み
【第一回Linked Open Data勉強会】LODの基礎技術と公開までの取り組み【第一回Linked Open Data勉強会】LODの基礎技術と公開までの取り組み
【第一回Linked Open Data勉強会】LODの基礎技術と公開までの取り組み
 
自分を変えた一冊
自分を変えた一冊自分を変えた一冊
自分を変えた一冊
 
Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用
 
人生の意思決定を支える社会インフラとしての図書館
人生の意思決定を支える社会インフラとしての図書館人生の意思決定を支える社会インフラとしての図書館
人生の意思決定を支える社会インフラとしての図書館
 
ソフトウェアエンジニアとして心がけてきたこと
ソフトウェアエンジニアとして心がけてきたことソフトウェアエンジニアとして心がけてきたこと
ソフトウェアエンジニアとして心がけてきたこと
 

Rで項目反応理論、テキストマイニング、Rの研修やってますという三題噺(33rd #TokyoR)

  • 1. 第 33 回 Tokyo.R Rで 項目反応理論 (IRT) テキストマイニング Rの研修 やってます、という三題噺 (株) 富士通ラーニングメディア 田中 健太 2013年 8月 31日 1
  • 2. 1 まずは、自己紹介 • 社会人4年目の研修講師 (UNIX / Linux、仮想化、スト レージ、クラウド、ビッグデータなど担当) です • その前は長々と大学にいました (心理学、教育工学、障害者 支援などを研究) が、学位もポストも・・・だったので就職 • 2002年にLinuxにはじめて触れて以来、細々とOSS関係 の活動をしています • 主に組版ソフトTEXの周りでIDEの日本語化、ドキュメン トの翻訳、解説サイトの運営などをしています (WinShellとかTexmakerとかTeXworksとか) 2
  • 3. 2 なんでTokyo.Rで話すの? • 学生時代は (Excel)、SAS、SPSS、JMP、AMOS、 MATLAB、Octaveなどをひととおり使用していました • そんな関係で、ビッグデータ関連の研修開発や、テスト結 果の分析などの仕事が降ってくる • 社内に経験もノウハウも商用ソフトウェアもない環境では Rを使うしかない (会社に入ってからのRデビュー) • 慣れれば、まぁ・・・ • 今回はRでやっていることと、その方法を話しに来ました 3
  • 4. 3 仕事でやっていること • 項目反応理論によるテスト結果の分析 ■ 研修修了時のテスト結果などを、項目反応理論 (IRT) で分析、改善に役立てています ■ 今回は、Rで “簡単に” IRTに基づく分析を行う手順を紹介します • Twitterデータの収集と分析 ■ 半分以上趣味ですが、Streaming APIでツイートを収集、Rで分析してます ■ 今回は、Rで “簡単に” テキストマイニング (ワードクラウド) を行う手順を紹介します • データ分析関係の研修開発 ■ なんか、一般企業でも「ビッグデータ」や「データサイエンティスト」が流行っています ■ 今回は、当社のRを用いたデータ分析研修について少し話させてください・・・ 4
  • 6. 4 IRTに基づくテストの分析 • テスト実施の機会は多い (教育機関以上?) • よいテストを提供したい • テストの点数を 「問題の難易度」と 「受検者の能力」 の関数と定義、評価 • 項目特性曲線 (左上) を見 て、アヤシイ問題を 発見、修正している • テストの品質改善を実現 -4 -2 0 2 4 0.00.20.40.60.81.0 とあるテストの項目特性曲線 (2PL) 理解度 正答率 Q1 Q2 Q3 Q4 Q5 -4 -2 0 2 4 0.000.020.040.060.080.100.12 とあるテストの項目情報曲線 (2PL) 理解度 情報量 Q1 Q2 Q3 Q4 Q5 -4 -2 0 2 4 0.100.150.200.25 とあるテストのテスト情報曲線 (2PL) 理解度 情報量 -1.5 -1.0 -0.5 0.0 0.5 1.0 0.00.20.40.60.8 とあるテストの受講者能力分布 (2PL) 理解度 密度 6
  • 7. 5 RでIRT分析1 • RjpWikiで勉強した結果 ですが (多謝) • ltmまたはirtoys パッケージを使うと簡単 • データは1行1人、問題 ごとに正誤を1 / 0で • 理論的な枠組みは 植野,荘島 (2010) や 村木 (2011) などを参照 (“豊田本” は難しい...) • 基本的には、特性量を 算出 → plotで描画 ----------データはこんな感じ---------- Q1,Q2,Q3,Q4,Q5 0,1,0,0,0 1,1,0,1,0 ----------データはこんな感じ---------- library(irtoys) data <- read.csv("hoge.csv",header=T) # 項目特性の算出 ltmans <- ltm(data˜z1,IRT.param=TRUE) # 受検者能力の算出 ltmscore <- factor.scores(ltmans,method="EB") # テスト反応関数の算出 trfans <- est(data,model="2PL",engine="ltm") trfscore <- trf(trfans$est) # テスト情報量の算出 ltminfo <- information(ltmans,c(-1,1)) 7
  • 8. 6 RでIRT分析2 • 分析結果はおもに4つの グラフで得られる • 項目特性曲線 (ICC) が 特に (当社では) 重要 • 横軸0、縦軸0.5を中心と したS字カーブが理想 • 左寄り → 簡単 右寄り → 難しい 平坦 → 識別力が低い 急峻 → 能力差に敏感 ...特徴を分析、改善 • ここまでやるのは当社だけ! # 項目特性曲線の描画 plot.ltm(ltmans,...) # 項目情報曲線の描画 plot.ltm(ltmans,type="IIC",...) # テスト情報曲線の描画 plot.ltm(ltmans,type="IIC",items=0,...) # テスト反応曲線の描画 plot(trfscore,...) # テスト情報量のファイル出力 print(ltmans,quote=F) print(ltminfo,quote=F) ----------内容はこんな感じ---------- Dffclt Dscrmn Q1 -1.012 0.464 Q2 -0.930 0.543 Q3 -0.880 0.697 Q4 1.555 0.260 Q5 -16.148 -0.065 Information in (-1, 1) = 0.48 (25.2%) 8
  • 10. 7 Twitterデータの分析 人がゴミのようだ バルス ダウンTL 俺 人人笑 見る 名言 シータ w 思う 今日 TL 何 ラピュタ 明日 来る 人 フォロ 対決 w バル 待つ 目 前 発生 時間 Y ツイート サーバー wwww 厂 ゛ (笑) Twitter 絶対 Y 呟く 緊急事態 私 ww 行く T ムスカ 言う 今 ゴミ 人間 接近 パズー 祭り 2013/08/02 23:15 • 先日の「バルス祭り」の際のツイート数とワードクラウド • ほとんど趣味ですが、ツイートを収集、分析してます • 講習会でデモすると、かなりウケます (ビジネス上の実用性は...?) 10
  • 11. 8 Twitterデータの収集 • Twitter Streaming APIを使ってツイートを収集できます • RでもTwitteRパッケージでアクセスできますが、 私はRubyスクリプトを回しっぱなしにしています • 参考: http://d.hatena.ne.jp/NE555/20120108 require ’time’ require ’rubygems’ require ’tweetstream’ SEP="t" TweetStream::Client.new.sample do |status| if status.user.lang == "ja" dt = Time.parse("status.created_at") text = status.text.gsub("n", " ") puts("#{dt}#{SEP}#{status.user.screen_name}#{SEP}#{text}") end end 11
  • 12. 9 Twitterデータのマイニング1 • 今回は “見映え” 重視の ワードクラウド • その名もズバリ wordcloudパッケージ • 参 考: http://onertipaday. blogspot.jp/2011/07/ word-cloud-in-r.html • 日本語テキストは形態素 解析をする必要がある • Rから形態素解析器 MeCabを扱うRMeCab パッケージを使用 -----紙幅の都合で抜粋版----- at<-read.delim("hoge.txt",...) at$time<-as.POSIXct(at$time, format="%Y-%m-%d %H:%M") at$tweet<-as.character(at$tweet) x<-0; y<-"2013-08-02 00:00" # 開始時間 tn<-as.POSIXct(y,format="%Y-%m-%d %H:%M") while (x <= 1440) { # 処理範囲を分で指定 if(!length(subset(at$tweet,at$time==tn))==0){ write.table(subset(at$tweet,at$time ==tn),file="tmp.txt",quote=F,row.names=F, col.names=F) # MeCabで形態素解析、頻度を算出 rt<-RMeCabFreq("tmp.txt") 12
  • 13. 10 Twitterデータのマイニング2 • Twitterの分析には 辞書の問題がつきまとう • 形態素解析器は「ビッグ データ」なんて知らない • mecab-dic-overdrive でWikipediaページ名 などを登録可能 • まじめにやるなら、辞書 整備が不可欠 • 参考: https://github.com/nabokov/ mecab-dic-overdrive -----とにかく、不要な形態素を捨てる----- part_rt <-rt[(rt$Info1=="名詞" | rt$Info1=="感動詞" | rt$Info1=="形容詞" | rt$Info1=="動詞") & !rt$Info2=="特殊" & (!rt$Term=="RT" & !rt$Term==".co" & !rt$Term=="http" & !rt$Term=="www") & rt$Freq > 15,] # 1分間の頻度が15以上 if(nrow(part_rt)>=1){ # 使用するカラーパレットを指定 pallet<-brewer.pal(8,"Dark2") # ワードクラウドの作成 wordcloud(part_rt$Term,part_rt$Freq, scale=c(5,2),max.words=Inf,random.order=T, random.color=F,colors=pallet) } } x<-x+1; tn<-tn+60 } 13
  • 15. 11 Rの社会人向け研修を作りました • 「ビッグデータ」ビジネスが流行 • HadoopやKVSは落ち着き、「デー タサイエンティスト」が大ブーム • その中でRの注目度が急上昇! • そこで、Rの研修を開発しました • 「R言語によるデータ分析入門」 • 基本統計量から回帰分析あたり までを1日で学習 • Rの使いかただけでなく、「統計の キホン」(仮説検証) を紹介 UBS51Lで検索! • ツールの使い方だけを教えるのか と思っていたが、分析の仕方という 視点でも話があった点が良かった • Rの基本が分かり、非常に満足した • 講師の知識の豊富さが講義から 伝わってきた 15
  • 16. 12 Rの社会人向け研修を作ってます • より実践的な分析を学びたい、という声も聞きます • そこで、お客様からよく聞く「テキストマイニング」と 「時系列データ解析」をテーマに応用編を作っています •「R言語によるデータ分析応用編」 • 10月11日に初回予定・・・だが、開発中 • テキストマイニングはともかく、時系列データは大変 • 技術者にとって “リアル” な時系列データってなんだ? • とはいえ、間に合わせるのでよろしくお願いします 16