RでTALIS2018〈その2〉

OECDが行なった国際教員指導環境調査(TALIS2018)を,統計処理環境Rで遊んで?みようという試み「RでTALIS2018」の〈その2〉です。〈その1〉はこちら

なお,厳密に処理した結果を参照したい場合は『教員環境の国際比較 OECD国際教員指導環境調査(TALIS)2018報告書 学び続ける教員と校長』(ぎょうせい)を当たってください。ここで公開する処理は,無回答処理が面倒くさいのでばっさり削ぎ落としています。本来ならば,そんな乱暴な処理をしてはいけません。

さて,せっかく集計処理用データがOECDで公開されているので,それを自分たちでグラフ化できたら面白いのに…という思い付きから始まっているのが「RでTALIS2018」です。

TALIS 2018 Data
http://www.oecd.org/education/talis/talis-2018-data.htm

しかし,これを日本語化するには,いろんな翻訳対応データの作成が必要となり,ハードルとなっていました。残念ながら待っていても誰も作ってくれないので,力技で用意してみたわけです。

ATGINTT3 質問文データ
http://www.edufolder.jp/files/talis2018/ATGINTT3_Q.csv

ATGINTT3 回答選択肢データ
http://www.edufolder.jp/files/talis2018/ATGINTT3_A.csv

国別コードと国名データ
http://www.edufolder.jp/files/talis2018/ISO3166.csv

前回は用意できていなかった回答選択肢のデータも作成したので,今回のRスクリプトを実行すれば日本語化されたグラフを出力することができます。

talis2018_base.R
http://www.edufolder.jp/files/talis2018/talis2018_base.R

talis2018_script.R
http://www.edufolder.jp/files/talis2018/talis2018_script.R

以上が,今回のTALIS2018日本語グラフ作成スクリプトです。

使い方は…

  1. 関係ファイルをダウンロードしておき,フォルダに用意する。
  2. talis2018_base.Rを実行する(多少警告メッセージが出るかも知れない)
  3. talis2018_script.R内の「質問番号」「表示順」「言語」を設定する
  4. talis2018_script.Rを実行する
  5. 「Plots」ウインドウにグラフが描画される

となります。RStudioを利用することなどは〈その1〉で紹介済みです。

 —

英語の問題文と選択肢はダウンロードされたデータにもともと含まれているので,それを取り出して日本語翻訳する方法もあるし,その方がエレガントなようにも思いました。

しかし,実際には同じ回答英文でも質問によって日本語翻訳が変わってくるものもあり,結局はPISA2015の際と同様に羅列型の翻訳対応データを力技で作成する結果となりました。

質問文の整形部分も,冗長な部分を整理したかったのですが,結果的にはそのままとしました。

今回,TALIS2018のグラフ化はできたものの,校長質問結果や国内用データまでは手が回っていないため,まだデータ見比べの楽しさまで到達できていませんが,またの機会にやってみたいと思います。

RでTALIS2018

2019年6月19日にTALIS(国際教員指導環境調査)2018年調査結果が公表されました。

TALIS - The OECD Teaching and Learning International Survey (OECD)
http://www.oecd.org/education/talis/


「OECD国際教員指導環境調査(TALIS)2018調査結果」(文部科学省)
http://www.mext.go.jp/b_menu/toukei/data/Others/1349189.htm


「OECD 国際教員指導環境調査(TALIS) 2018年報告書について」(国立教育政策研究所)
https://www.nier.go.jp/kenkyukikaku/talis/index.html


『教員環境の国際比較 OECD国際教員指導環境調査(TALIS)2018報告書 学び続ける教員と校長』(ぎょうせい)
https://shop.gyosei.jp/products/detail/10041

調査結果についての概要や分析は,上記のサイトから資料や報告書を入手していただくとして,今回はOECDが提供している調査回答データをRで利用しようというのが本題。以前,PISA2015で挑戦したことをTALIS2018でもやってみようということになります。(RでPISA2015RでPISA2015〈その2〉RでPISA2015〈グラフ〉

OECDのTALIS 2018サイトで公開されているデータはこちら

TALIS 2018 Data
http://www.oecd.org/education/talis/talis-2018-data.htm

それぞれの統計処理パッケージ(SAS, SPSS, STATA)用のデータが配布されています。とりあえずSPSS用のファイルをダウンロードします。

今回は「SPSS_international.zip」を先に覗いてみることにしましょう。

校長
ACGINTT3.sav(小学校) 
BCGINTT3.sav(中学校)
CCGINTT3.sav(高等学校)
教員
ATGINTT3.sav(小学校)
BTGINTT3.sav(中学校)
CTGINTT3.sav(高等学校)

どのファイルが何に該当するのか説明が添えられていないので,中身から判断します。

質問文を参照するためには質問紙データをダウンロードします。

TALIS 2018 questionnaires
http://www.oecd.org/education/school/talis2018questionnaires.htm

国立教育政策研究所で公開されている日本語版や各国の質問用紙は,OECDの国際版をベースに作成されているので問題番号の対応は自分で調べます。

とりあえず,小学校教員用質問紙「ATGINTT3」の問題番号と英語・日本語の質問文対応データを作成しましたのでこれを使います。それから国名も日本語の方がいいでしょう。

ATGINTT3 質問文データ
http://www.edufolder.jp/files/talis2018/ATGINTT3_Q.csv

国別コードと国名データ
http://www.edufolder.jp/files/talis2018/ISO3166.csv

小学校教員用質問紙「ATGINTT3」用のみですが,最低限必要なデータは揃いました。

本来ならば,質問項目に対応した回答項目データも作成して,回答も日本語で分かりやすく表示できるとよいのですが,データ作成の手間の問題なので,とりあえず後に回します。

さて,RとR Studioをインストールしておきます。これは以前のPISA2015での記録を参照してください。

今回も最初に一度読み込むための「talis2018_base.R」と質問グラフを生成する毎に実行する「talis2018_script.R」という2つのスクリプトファイルに分けて作成しました。

質問項目ごとに回答の数が異なるので,毎度修正しなければならないという課題は残っていますが,とりあえず動作すると思います。

「talis2018_base.R」

# talis2018_base.R
# For TALIS2018
# K.RIN
#

#ライブラリ読み込み
library(readr)
library(tidyverse)
library(plyr)
library(haven)

#データファイル読み込み
ATGINTT3 <- read_sav("ATGINTT3.sav")

question_items <- read_csv("ATGINTT3_Q.csv", col_names = TRUE, col_types = list(col_character(), col_character(), col_character()))

country_code <- read_csv("ISO3166.csv", col_names = TRUE, col_types = list(col_character(), col_character(), col_character(), col_character()))

「talis2018_script.R」

# talis2018_script.R
# For TALIS2018
# K.RIN
#
# ★設定項目(★マーク)
# ・質問ID(「selected_question = " "」の部分)
# ・表示順(「order_setting = 1」の部分)
# ・表示順の組合わせ(「mutate('list_order' = `1`)」の部分)

library(plyr)
library(tidyverse)

#★質問番号
selected_question = "TT3G55I"

#★表示順(降順1,昇順-1)
order_setting = 1

#ラベル
y_label <- "パーセント %"
x_label <- "国"
legend_label <- "回答"

#質問文データから質問番号に該当する質問文を抽出
if (is.na(question_items$ja[grep(selected_question, question_items$q_no, value = FALSE, fixed = FALSE)][[1]])) {
q_title <- paste("【", selected_question,"】")
} else { #質問文が空欄でなければ…
q_title <- paste("【", selected_question,"】", question_items$ja[grep(selected_question, question_items$q_no, value = FALSE, fixed = FALSE)][[1]])
}

#回答データ抽出
stu_tmp <- subset(ATGINTT3, ATGINTT3[[selected_question]] != "NaN") #無回答を除く(質問してない国もあるため)
data_ans <- table(stu_tmp[["CNTRY"]],stu_tmp[[selected_question]]) #質問番号のデータを抽出

ans_df <- as_tibble(data_ans,validate = FALSE) #df(データフレーム)へ変換
colnames(ans_df) <- c("CNT", "answer", "count") #dfの列ラベル設定
ans_wide <- spread(ans_df, answer, count) #横長dfへ変換

#行番号をデータに変換して列として追加
#★グラフ表示順を決める回答項目の数値合計を列として追加[ +`2`+`3`+`4`+`5`]
ans_wide <- ans_wide %>% rownames_to_column('num') %>% mutate('list_order' = `2` + `3`)

#num列の数字を文字から数値にモード変換
mode(ans_wide$num) <- "integer"
typeof(ans_wide$num)

#国コードをもとに国名をcountry_name列として追加
ans_wide <- ddply(ans_wide, "CNT", transform, country_name = country_code$Name_ja[grep(CNT, country_code$Alpha3)])
#列ラベルの設定
colnames(ans_wide) <- c("num", "CNT", "1", "2", "3", "list_order", "country_name") #※回答項目3つの場合(, "4")

#縦長dfに変換
ans_df <- gather(ans_wide, answer,count,-num,-CNT,-list_order,-country_name)

#国コードと回答で並べ替え
ans_df <- arrange(ans_df, desc(CNT), desc(answer))

#パーセント計算(描画計算用パーセント)
ans_df <- ddply(ans_df, "CNT", transform, percent = count / sum(count) * 100, 0.1)
#小数点以下1桁処理(表示用パーセント)
country_ans <- ddply(ans_df, "CNT", transform, percent_rounded = round_any(count / sum(count) * 100, 0.1))
#数値合計した分のパーセント数値を計算(表示順序用パーセント)
country_ans <- ddply(country_ans, "CNT", transform, list_percent_order = round_any(list_order / sum(count) * 100 * order_setting, 0.1))


#ラベル位置計算
country_ans <- ddply(country_ans, "CNT", transform, percent_label_y = cumsum(percent)-0.5*percent)

#フォント準備(Mac用)
#
quartzFonts(HiraKaku = quartzFont(rep("HiraginoSans-W3", 4)))
par(family = "HiraKaku")

#グラフ描画準備
#
graph <- ggplot(country_ans, aes(x = reorder(country_name, list_percent_order), y = percent, fill = answer)) + 
ggtitle(sprintf("%s", q_title)) + #タイトル
ylab(y_label) + #国ラベル
xlab(x_label) + #パーセントラベル
coord_flip(expand = FALSE) + 
geom_bar(stat = "identity", position='stack') + 
geom_text(aes(y = percent_label_y, 
label = paste(format(percent_rounded, nsmall = 1),"")), color = "white", size = 4) + #データラベル
scale_y_reverse(breaks = c(100.0,75.0,50.0,25.0,0.0), 
labels = c("0%","25%","50%","75%","100%")) + #横軸
scale_color_manual(values = rainbow(7)) + #カラー
theme_bw() + 
theme(plot.margin = margin(1, 1, 1, 1, "cm"),
plot.title = element_text(family = "HiraKaku", size = 10), 
plot.caption = element_text(family = "HiraKaku", size = 10),
legend.title = element_text(family = "HiraKaku", size = 10), 
legend.text = element_text(family = "HiraKaku", size = 7), 
axis.title = element_text(family = "HiraKaku", size = 9), 
axis.title.y = element_text(angle = 0, vjust = 0.5), 
axis.text.x = element_text(family = "HiraKaku", size = 9), 
axis.text.y = element_text(family = "HiraKaku", size = 10))

print(graph) #グラフ描画

以上で「Plots」ウインドウにグラフが描画されると思います。

また詳細は〈その2〉を予定しています。

NHK WORLD「静かで、にぎやかな世界~手話で生きる子どもたち~」英語版

昨年(2018)NHK ETVで放送されたETV特集「静かで、にぎやかな世界~手話で生きる子どもたち~」の英語版がNHK WORLDで放送され,期間限定配信されている。

A World of Boisterous Silence (NHK WORLD PRIME)
https://www3.nhk.or.jp/nhkworld/en/ondemand/video/3016028/

個人的にずっと見逃し続けていた番組だったので,英語版とはいえ,今回の配信は絶好の視聴機会となった。おおよその番組の内容と反応は日本語のページで見ることが出来る。

ETV特集「静かで、にぎやかな世界~手話で生きる子どもたち~」
https://www.nhk.or.jp/docudocu/program/20/2259611/index.html

【再放送】小さな手でおしゃべりする子どもたち
https://www6.nhk.or.jp/nhkpr/post/original.html?i=14501

番組では,多くのろう学校で手話が禁止されてきたと紹介されているが,手話を活用した指導の議論は大きなトピックスとされ,ろう教育における専門性や人材確保・研修の問題として関係団体から提言も出されている。いわゆる手話法と口話法の対立問題は,ろう教育における根本問題としてずっと存在してきた歴史がある。

それでも圧倒的な規模の聴者社会で生きていくためには,自らが日本語の発音を訓練したり,他者の口話を読み取る読心術を習得するといった努力がなされてきたというのが,日本のろう教育の流れなのだろう。

明晴学園は私立学校であり,手話環境の確保を特徴とした学校。

慣れた手話によってストレスなくコミュニケーションしている児童生徒の様子を生き生きと描写した番組は,大きな反響を呼び,様々な賞も獲得している。

番組の後半に,高校や大学に進学した卒業生の様子が紹介されている。

授業や講義の教員による口話を字幕生成システムを使って獲得しようとしたり,学校側のノートテイキング支援について相談する場面などだ。

そもそも,進学を受入れてくれる学校自体が少ないことや,こうした対応をとってくれるかどうかも学校ごとに異なるのが現実だろう。

最近でこそ,GoogleがAndroidスマホで,リアルタイム連続書き起こし機能「Live Transcript」(音声文字変換)を実現したとして話題となり,聴覚障がい者にとって新しい利便性が提供されたが,だからといって配慮やサポートが不要になるといったことはあり得ないわけで,むしろよりきめ細かい対応が出来ると考えていくべきだろう。

この番組の示した聴者世界と聾唖者世界の構図を,コミュニケーション手段の異なる世界同士の構図として極端に捉えたとき,たとえば,旧いコミュニケーション手段に慣れきった世代と新しいコミュニケーション手段を使いこなす世代の対立を想像しないわけにはいかない。

先日も「ICT活用に遅れ 日本の小中教員、OECD調査で判明」(日経新聞)という報道がなされ,教員の勤務時間が依然として長時間傾向であることや,考える授業に割く時間が極端に少ないことなど,旧い手段で教育活動を続けている日本の傾向が浮き彫りになったばかり。

こうした普通学校の姿は,ろう学校では手話が禁止されていた,という番組内でのエピソードとオーバーラップするところがある。

もちろんどちらが本当のところ都合がよくて,本当のところ必要なのかは,人それぞれの選択だろう。

だから,私たちはよく考えることと,考えたことを選択できるようになることが大切だろうと思う。

データなのかプロファイルなのか

2019年6月25日。文部科学省と経済産業省から重要文書が公表された。

20190625「新時代の学びを支える先端技術活用推進方策(最終まとめ)」(文部科学省)

20190625「「未来の教室」とEdTech研究会 第2次提言」(経済産業省)

その前から,いろんな文書が発出されていて,追いかけるのが大変なくらいだ。

20190606「規制改革推進に関する第5次答申」(規制改革推進会議)

20190611「AI戦略 2019~人・産業・地域・政府全てにAI~」(統合イノベーション戦略推進会議|首相官邸)

20190621「学校教育の情報化の推進に関する法律案」(参議院本会議)

20190621「経済財政運営と改革の基本方針2019」(経済財政諮問会議|内閣府)

20190621「規制改革実施計画」(閣議決定)

基本的には政府の動きは連動しているので,表現は様々としても書いてある基本方針は同じようなもの。これらの中でも「規制改革実施計画」が閣議決定されたものという意味で重要になる。関連資料から教育の部分を借りて載せてみる。

20190621 edu tech

パソコンを1人1台水準で市町村毎の格差が無いように調査・公表することや,パブリッククラウドの利用が可能であることを明確化することを決めた。その他,質の高い教育の実現やデジタル教科書の活用,個別最適化された学びの実現と教育の役割見直しについて,検討と必要な措置をすることになった。

必要な措置に,予算措置が含まれているのだとは思うが,そうは確約していないところに苦しさが滲む。あとの文書はひたすら考え方や方針を描くのに徹している。

冒頭の2つの文書に戻ってみれば,文部科学省の示した文書には,やたらと「教育ビッグデータ」という言葉が踊る。経済産業省の方は「学習ログ」だ。

曰く,データを蓄積し教育ビッグデータとして分析するためにも,サービス提供者や使用者ごとに異なることがないよう,データやデータフォーマットの標準化が必要なのだと。諸外国の事例を見る観点もそこに集中した結果,我が国向けに「学習指導要領のコード化」が適当なんだと帰結する。

文部科学省の文書全体は,これ以外にも,先端技術の活用やら,ICT基盤としての端末とネットワーク環境整備についても言及されている。必ずしも教育ビッグデータばかりではない。とはいえ,逆に経済産業省の文書の方が,各種実証事業の成果を差し込んでいる分だけ文部科学省の文書以上に教育的な観点で提言を発信していて,なんだか文部科学省の教育の情報化は,すっかり総務省に毒されちゃったままな感もある。

もちろんこれは,新時代の学びを支える「先端技術活用」をどうするか考える文書なので,新時代の学びがどんなものかは守備範囲でないともいえる。

けれども,教育ビッグデータやら学習ログに関する語り口を読み込むにつれ,データ主体である学習者がどんどん従属的な立場に追いやられているような感覚が強まってしまうのだ。

サービス提供者やデータ分析者にとっての可用性や利便性を配慮した「データ」の整え方ばかりが優先記述され,学習者本人が自身の学習プロファイル(データ)に対してどれだけのオーナーシップを確保できるのかについては補足程度のことしか書きこまれていない。

本来であれば,36頁に補足された「欧州においては…」のくだりは,もっと前面に持ち上げ,日本でも学習者自身による学習プロファイル・データのコントロールについて大胆な提言なり方針を打ち出すべきだ。

それはとりもなおさず,1人1台端末という予算措置の当てもない話で足踏みを繰り返さず,1人複数アカウントによって複数のデバイスを利用した学習環境を考えるフェーズに飛び込むことでもある。

データのコード化やフォーマットの互換性は,そこに商機があれば民間企業がいくらでも努力して変換でも接続でもして乗り越えて,気がつけばデファクトスタンダードを作り上げてしまう。わざわざ政府が税金を使ってやることではない。

しかし,データ保護規則のようなルール作りは,国や政府のイニシアチブでやってもらわないと,民間企業の自助努力だけでは難しい。それはFacebookやGoogleの事例を見ても明らかである。

その上で,教職員や児童生徒学生に対して自分のプロファイルを記録するのに必要なアカウント付与の措置を何らかの形で実現すべきである。それは現実的には民間企業のサービスへの登録といった形にはなろうが,そのためにもアカウントに紐付くプロファイルデータについて本人の権利が約束される必要がある。

さらに他でも主張されているように,デジタル・シチズンシップ教育などの取り組みも一刻も早く充実化が目指されなければならないと考える。

全体としてはいろいろなことが動き出しそうな雰囲気を感じるものの,いざ具体的な中身となると,どこから手を付けたらいいのか分かりにくく,マインドセットの変革といった精神論だけが残りそうな,そんな予感もする。

アカウント整備をしなきゃ,どんなIT整備もAI戦略もただのゴミ

珍しく釣りタイトルですが,内容はそのままです。

このところ政府(首相官邸・内閣府)あたりから「規制改革推進会議」や「統合イノベーション戦略推進会議」関連で小中高等学校に関わるデジタル技術による教育改革について情報発信がなされています。

令和元年6月6日 規制改革推進会議」(首相官邸)

令和元年6月11日(火)午前 統合イノベーション戦略推進会議について」(首相官邸)

AI教育だ,タブレット配備だと,新しい内容を付け加えてみたり,焼き直してみたり。

けれども,どんな提案も額面通りには期待できません。

それは,どれにも「教職員・児童生徒のアカウントを提供する」必要性について責任持った記述が見受けられないからです。タイトルに書いたことを再度はっきり申し上げれば…

学校教育に関わる教職員・児童生徒たちのアカウント(メートアドレス等)を整備することなしに,いかなるIT/ICT整備も,ICT活用教育も,AI戦略も,実質的にはなんら個々人の仕事や学習には帰さない,ただのゴミとなる

しかないのです。

そういうことを分かっている人は多いのに,一番面倒くさい部分だから誰も責任持って言及しないのです。

頑張る関係者がいる地方自治体は,地方自治体独自でアカウントを発行し,管理し,研修し,教育しようとしています。だから「うちではやっているよ」というところも無くはない。

けれども「うちでもやっているよ」は地域として恵まれていても,IT戦略とかAI戦略としては,他もやってるよじゃないと,ぜんぜんダメなんです。そうしないとお互いつながらないし。

だから,あなたがIT教育とかAI教育とかプログラミング教育とかでも,何か接する際には,必ず「アカウントの方はどうやって提供したり管理していますか?」と聞いてみることで,どれくらいの程度のものなのかは判断つきます。そこで苦い顔して頑張ってますという人がいたら,慰めた上で,やっぱり一緒に考えないとダメです。

最低限,都道府県レベルでアカウント問題は取り組まなければならず,そんなに国家戦略にしたいなら,本来は政府レベルでちゃんと教職員と児童生徒および大学生にもアカウントの提供やサポートをする方策を実現しないと意味がありません。

もちろん,個人の情報を個人がコントロールするための仕組みや教育(情報活用や情報モラル)も同時に考える必要がありますが,それらもコミコミで考えなきゃ意味がないということです。それくらいいままでのツケが大きいということでもあります。