PISA 2015 ICT活用調査の日本語

 「RでPISA2015〈その2〉」で書いたように,PISAの質問調査について,日本語の質問文は書店販売されている報告書を参照する必要があります。

 調査結果が話題になるとき,アンケート調査の質問紙はあまり注目されません。しかし,質問紙を設計する作業はとても重要なものと考えられていて,そのための関連文献もあります。

 質問文の言い回しや文面に関することを「ワーディング」と呼んでいて,ワーディングひとつで回答に様々な影響を与えるのです。

 国際学力調査であるPISAの場合,これに「翻訳」と「ローカライズ」の問題が加わります。つまり,言葉を訳すことと,国ごとの文化状況に合わせていく作業が必要になるということです。

 英語が基本となっているPISAの質問調査の日本版を作成する作業については『PISA2015年調査 評価の枠組み』190頁「訳者による注釈」に解説があります。それによれば,OECD国際センターとの協議と承認を経ることを前提に,その国の言語的・文化的状況に合わせて質問項目の翻訳や項目削除などを行なってよいそうです。

 しかし,極端に自国の実情に合わせて変更をしてしまうと,国際比較をすることが難しくなってしまいます。その匙加減は難しいところだと思います。

 ちなみに,同じ英語でも,質問紙の質問文の表記と,集計データで項目結果報告するときの表記は異なっています。つまり英語であっても,質問紙を参照しないで集計データだけを参照しても,実際にどのような表現で質問されたかは分かりません。

 さて,それでは今回のPISA2015の質問調査で使用された質問文は,具体的にはどんなものだったのか。そのことがとても気になるところではないでしょうか。英語(あるいは他国語)の質問文と日本語の質問文との間にはどの程度の違いがあるのか。また,調査で使用された質問項目と質問文は,日本の実情を把握するのにどれほど妥当な内容なのか。

 たとえば,LINEでつながっている友達同士でやりとりしている様々な内容(日常会話やノート写真の交換やsnowアプリ等でつくった加工動画など)をこれらの質問で拾い上げることが可能かどうか。例示されたFacebookやmixiなど名称が回答し難さを生んでいないか。そういったことを確認した上で結果について議論することも大事なことだと思います。

 ICT活用調査の質問文を表にしてみました。間違い探しをするのではなく,より実状に近い回答を得るにはどうしたらよいのか考えながら読みでみてください。

質問番号 英語質問文 日本語質問文
IC001 Are any of these devices available for you to use at home? 次のもののうち、自宅であなたが利用できる機器はありますか。
IC001Q01TA Desktop computer (1)デスクトップ・コンピュータ
IC001Q02TA Portable laptop, or notebook (2)ノートパソコン
IC001Q03TA <Tablet computer> (e.g. <iPad(R)>, <BlackBerry(R) PlayBook TM>) (3)タブレット型コンピュータ(iPad(R)など)
IC001Q04TA Internet connection (4)インターネット接続
IC001Q05TA <Video games console>, e.g. <Sony(R) PlayStation(R)> (5)ビデオゲーム機(Sony(R)のプレイステーション(R)など)
IC001Q06TA <Cell phone> (without Internet access) (6)携帯電話(インターネット接続無し)
IC001Q07TA <Cell phone> (with Internet access) (7)携帯電話(インターネット接続有り)
IC001Q08TA Portable music player (Mp3/Mp4 player, iPod(R) or similar) (8)携帯音楽プレーヤー(MP3/MP4プレーヤー、iPod(R)など)
IC001Q09TA Printer (9)プリンター
IC001Q10TA USB (memory) stick (10)USB(メモリ)スティック
IC001Q11TA <ebook reader>, e.g. <Amazon(R) Kindle TM> (11)電子ブックリーダー(アマゾン(R)・キンドル TMなど)
IC009 Are any of these devices available for you to use at school? 次のもののうち、学校であなたが利用できる機器はありますか。
IC009Q01TA Desktop computer (1)デスクトップ・コンピュータ
IC009Q02TA Portable laptop or notebook (2)ノートパソコン
IC009Q03TA <Tablet computer> (e.g. <iPad(R)>, <BlackBerry(R) PlayBook TM>) (3)タブレット型コンピュータ(iPad(R)など)
IC009Q05NA Internet-connected school computers (4)インターネットに接続している学校のコンピュータ
IC009Q06NA Internet connection via wireless network (5)無線LANを介したインターネット接続
IC009Q07NA Storage space for school-related data, e.g. a folder for own documents (6)自分の文書を保存するフォルダーなど、学校に関係するデータのための保存領域
IC009Q08TA USB (memory) stick (7)USB(メモリ)スティック
IC009Q09TA <ebook reader>, e.g. <Amazon(R) Kindle TM> (8)電子ブックリーダー(アマゾン(R)・キンドル TMなど)
IC009Q10NA Data projector, e.g. for slide presentations (9)プレゼンテーションなどに使うプロジェクター
IC009Q11NA Interactive whiteboard, e.g. <SmartBoard(R)> (10)スマートボード(R)などの電子黒板
IC002 デジタル機器開始年齢
IC002Q01NA How old were you when you first used a digital device? 初めてIT機器(デジタル機器)を使ったのは何才のときですか。
IC003 コンピュータ開始年齢
IC003Q01TA How old were you when you first used a computer? 初めてデスクトップ・コンピュータ、ノートパソコン、タブレット型コンピュータのいずれかを使ったのは何才のときですか。
IC004 インターネット開始年齢
IC004Q01TA How old were you when you first accessed the Internet? 初めてインターネットを利用したのは何才のときですか(携帯電話での利用も含む)。
IC005 学校でのネット利用時間
IC005Q01TA During a typical weekday, for how long do you use the Internet at school? 学校のある日に、学校でインターネットをどのくらい利用しますか。
IC006 学外でのネット利用時間
IC006Q01TA During a typical weekday, for how long do you use the Internet outside of school? 学校のある日に、学校以外の場所でインターネットをどのくらい利用しますか(携帯電話での利用も含む)。
IC007 休日のネット利用時間
IC007Q01TA On a typical weekend day, for how long do you use the Internet outside of school? 休みの日に、学校以外の場所でインターネットをどのくらい利用しますか(携帯電話での利用も含む)。
IC008 How often do you use digital devices for the following activities outside of school? あなたは、次のことをするために学校以外の場所でIT機器(デジタル機器)をどのくらい利用していますか(携帯電話での利用も含む)。
IC008Q01TA Playing one-player games (1)1人用ゲームで遊ぶ
IC008Q02TA Playing collaborative online games (2)多人数オンラインゲームで遊ぶ
IC008Q03TA Using email (3)Eメールを使う
IC008Q04TA <Chatting online> (e.g. <MSN(R)>) (4)ネット上でチャットをする(例:LINE)
IC008Q05TA Participating in social networks (e.g. <Facebook>, <MySpace>) (5)SNS(ソーシャル・ネットワーキング・サービス)に参加する(例:Facebook、mixi)
IC008Q07NA Playing online games via social networks (e.g. <Farmville(R)>, <The Sims Social>) (6)SNS(ソーシャル・ネットワーキング・サービス)を介したオンラインゲームで遊ぶ
IC008Q08TA Browsing the Internet for fun (such as watching videos, e.g. <YouTube TM>) (7)インターネットを見て楽しむ(例:YouTube TMなどのサイトで動画をみる)
IC008Q09TA Reading news on the Internet (e.g. current affairs) (8)インターネットでニュースを読む(例:時事問題など)
IC008Q10TA Obtaining practical information from the Internet (e.g. locations, dates of events) (9)インターネットで実用的な情報を調べる(例:地図、場所、イベントの日程など)
IC008Q11TA Downloading music, films, games or software from the internet (10)インターネットで音楽や映画、ゲーム、ソフトをダウンロードする
IC008Q12TA Uploading your own created contents for sharing (e.g. music, poetry, videos, computer programs) (11)自分で作ったコンテンツを共有するためにアップロードする(音楽、詩、ビデオ、コンピュータ・プログラムなど)
IC008Q13NA Downloading new apps on a mobile device (12)携帯電話やモバイル機器に新しいアプリをダウンロードする
IC010 How often do you use digital devices for the following activities outside of school? あなたは、次のことをするために学校以外の場所でIT機器(デジタル機器)をどのくらい利用していますか(携帯電話での利用も含む)。
IC010Q01TA Browsing the Internet for schoolwork (e.g. for preparing an essay or presentation) (1)学校の勉強のために、インターネット上のサイトを見る(例:作文や発表の準備)
IC010Q02NA Browsing the Internet to follow up lessons, e.g. for nding explanations (2)関連資料を見つけるために、授業の後にインターネットを閲覧する
IC010Q03TA Using email for communication with other students about schoolwork (3)Eメールを使って学校の勉強について、ほかの生徒と連絡をとる
IC010Q04TA Using email for communication with teachers and submission of homework or other schoolwork (4)Eメールを使って先生と連絡をとり、宿題やその他の課題を提出する
IC010Q05NA Using social networks for communication with other students about schoolwork (e.g. <Facebook>, <MySpace>) (5)学校の課題について他の生徒と連絡をとるために、SNS(ソーシャル・ネットワーキング・サービス)を利用する(例:Facebook)
IC010Q06NA Using social networks for communication with teachers (e.g. <Facebook>, <MySpace>) (6)先生と連絡をとるために、SNS(ソーシャル・ネットワーキング・サービス)を利用する(例:Facebook)
IC010Q07TA Downloading, uploading or browsing material from my school’s website (e.g. timetable or course materials) (7)学校のウェブサイトから資料をダウンロードしたり、アップロードしたり、ブラウザを使ったりする(例:時間割や授業で使う教材)
IC010Q08TA Checking the school’s website for announcements (e.g. absence of teachers) (8)校内のウェブサイトを見て、学校からのお知らせを確認する(例:先生の欠席)
IC010Q09NA Doing homework on a computer (9)コンピュータを使って宿題をする
IC010Q10NA Doing homework on a mobile device (10)携帯電話やモバイル機器を使って宿題をする
IC010Q11NA Downloading learning apps on a mobile device (11)携帯電話やモバイル機器で学習アプリをダウンロードする
IC010Q12NA Downloading science learning apps on a mobile device (12)携帯電話やモバイル機器で理科の学習アプリをダウンロードする
IC011 How often do you use digital devices for the following activities at school? あなたは、次のことをするために学校でIT機器(デジタル機器)をどのくらい利用していますか(携帯電話での利用も含む)。
IC011Q01TA <Chatting online> at school. (1)学校でインターネットのチャットをする
IC011Q02TA Using email at school. (2)学校でEメールを使う
IC011Q03TA Browsing the Internet for schoolwork. (3)学校の勉強のためにインターネットを見る
IC011Q04TA Downloading, uploading or browsing material from the school’s website (e.g. <intranet>). (4)校内のウェブサイトを見たり、そこからファイルやプログラムをダウンロードやアップロードする(例:イントラネット)
IC011Q05TA Posting my work on the school’s website. (5)学校のウェブサイトに課題を提出する
IC011Q06TA Playing simulations at school. (6)シミュレーションゲームで遊ぶ
IC011Q07TA Practicing and drilling, such as for foreign language learning or mathematics. (7)外国語や数学などのドリルや勉強をする
IC011Q08TA Doing homework on a school computer. (8)学校のコンピュータで宿題をする
IC011Q09TA Using school computers for group work and communication with other students. (9)ほかの生徒と共同作業をするために、コンピュータを使う
IC013 Thinking about your experience with digital media and digital devices: to what extent do you disagree or agree with the following statements? IT機器(デジタルメディア、デジタル機器)を使った経験について、次のことはあなたにどのくらいあてはまりますか。
IC013Q01NA I forget about time when I’m using digital devices. (1)時間をたつのも忘れてIT機器を使う
IC013Q04NA The Internet is a great resource for obtaining information I am interested in (e.g. news, sports, dictionary). (2)インターネットは、ニュースやスポーツ、辞典など私が興味のある情報を得る上で、優れた情報源である
IC013Q05NA It is very useful to have social networks on the Internet. (3)インターネット上のソーシャルネットワークはとても役立つ
IC013Q11NA I am really excited discovering new digital devices or applications. (4)新しいIT機器やアプリケーションを見つけると興奮する
IC013Q12NA I really feel bad if no internet connection is possible. (5)インターネットに接続できないと気分が悪い
IC013Q13NA I like using digital devices. (6)IT機器を使うのが好きだ
IC014 Thinking about your experience with digital media and digital devices: to what extent do you disagree or agree with the following statements? IT機器(デジタルメディア、デジタル機器)を使った経験について、次のことはあなたにどのくらいあてはまりますか。
IC014Q03NA I feel comfortable using digital devices that I am less familiar with. (1)めずらしいIT機器を使うのは気分が良い
IC014Q04NA If my friends and relatives want to buy new digital devices or applications, I can give them advice. (2)友達や家族・親戚が新しいIT機器やアプリケーションを購入する際に、アドバイスをすることができる
IC014Q06NA I feel comfortable using my digital devices at home. (3)家でIT機器を使っていると気分が良い
IC014Q08NA When I come across problems with digital devices, I think I can solve them. (4)IT機器に何か問題が起こっても、それを解決できると思う
IC014Q09NA If my friends and relatives have a problem with digital devices, I can help them. (5)友達や家族・親戚のIT機器に何か問題があれば、彼らを助けることができる
IC015 Thinking about your experience with digital media and digital devices: to what extent do you disagree or agree with the following statements? IT機器(デジタルメディア、デジタル機器)を使った経験について、次のことはあなたにどのくらいあてはまりますか。
IC015Q02NA If I need new software, I install it by myself. (1)新しいソフトウェアが必要になると、自分でインストールする
IC015Q03NA I read information about digital devices to be independent. (2)IT機器に関する情報は、他の人に頼らないで自分で読む
IC015Q05NA I use digital devices as I want to use them. (3)IT機器は自分が使いたいから使う
IC015Q07NA If I have a problem with digital devices I start to solve it on my own. (4)IT機器に問題があれば、自分の力で解決しようとする
IC015Q09NA If I need a new application, I choose it by myself. (5)新しいアプリケーションが欲しいときは、自分で選んでいる
IC016 Thinking about your experience with digital media and digital devices: to what extent do you disagree or agree with the following statements? IT機器(デジタルメディア、デジタル機器)を使った経験について、次のことはあなたにどのくらいあてはまりますか。
IC016Q01NA To learn something new about digital devices, I like to talk about them with my friends. (1)IT機器について何か新しいことを学ぶために、友達とそれらについて話をするのが好きだ
IC016Q02NA I like to exchange solutions to problems with digital devices with others on the Internet. (2)IT機器の問題を解決するために、インターネットで他の人と意見や情報を交換するのが好きだ
IC016Q04NA I like to meet friends and play computer and video games with them. (3)友達と集まってコンピュータやビデオゲームで遊ぶのが好きだ
IC016Q05NA I like to share information about digital devices with my friends. (4)IT機器に関する情報を友達と話し合うのが好きだ
IC016Q07NA I learn a lot about digital media by discussing with my friends and relatives. (5)友達や家族・親戚と話をするとデジタルメディアについて多くのことが学べる

RでPISA2015〈グラフ〉

Leave a comment

 統計処理向きプログラミング環境Rで国際学力調査PISA 2015年実施調査結果を扱ってみています。今回はもともと欲しかった調査結果のグラフを共有します。

スライド「PISA2015 ICT活用調査結果グラフ」
https://docs.google.com/presentation/d/1HcFH4fe8QXCLc8yB-6kK7XQTA-jAqz_itCWIJg0Kezw/edit?usp=sharing

 R関連ソフトウェアやデータ等が無償で手に入るようになったとはいえ,環境を導入して準備を整えるまでも大変ですし,さらに個々の回答結果をグラフ化するのは手間のかかる話です。とにかく見やすいグラフをズラッと眺めてみたいんだというのが当初の目標でもありましたから,そちらの成果も共有しておきたいと思います。

 なお,こちらのスライドやグラフ画像の利用に関して,私への許諾申請は必要ありません。自由に利用してください。

 スライドを連続してめくっていくと,日本の順位(赤矢印)が上下に移動していく様が見えてきます。日本の位置をわざと低くしようという意図は決してなく,質問に対して違和感のない順序で並べてみたのですが,意外と低空飛行が多くてあらためて軽いショックを受けました。

 ICTとの親和性?に関して日本の15歳のそれは確かに高くない傾向にあります。けれども,遊びや連絡といった目的に応じたICT利用はガンと跳ね上がるところをみてみると,日本の15歳にとってのICTは「目的達成」という皮を被せたところで接しているものであり,ICT自体をネイティブに扱うことにはあまり関心がないように思えます。

 それゆえ,日本的な消費社会の中で物事に接していくライフスタイルにある日本の15歳の特徴が表れているのではないかと思ったりするわけです。

 「日本的な消費社会」って何よ?って感じでしょうし,よく似た雰囲気の文化をもつ韓国との違いはどうなのよとか,いろいろ細かい分析をしないといけないのではありますが,それは議論などを通して意見交換できたらと思います。

 逆に言えば,「達成すべき目的」が心を掴まえて,その道具としてのICT機器の水準が消費者目線的に納得できるものとなれば,日本での利活用はガンとあがる。これもまた楽天的とはいえ日本の実相ではないかと思います。

 もっともこの話が公立学校といったお役所仕事と関係すると,そう簡単な話ではないというのはご承知の通りです。

RでPISA2015〈その2〉

1 Comment

 「RでPISA2015」というエントリーで、いくつかのWeb記事に触発されて、OECDという国際機関が3年間隔で行なっている国際学力調査「PISA」の2015年実施データを、統計向けプログラミング言語「R」を使って触り始めたことを書きました。

 R言語の基礎知識が無いまま、サンプルを見様見真似でデータファイルの読み込みからグラフの描画までやってみましたが、まだまだ未完成状態でした。

 その後、R言語のリファレンス書籍を購入した上で、さらにプログラムを修正し、思い描いていたグラフを一通り描けるところまで辿り着きました。


PISA2015_IC013Q12NAのグラフ

 作成中気になっていたことの一つとして、PISA2015データを日本語で扱うための情報が、明石書店発行のPISA正規報告書(有償)しかないことがあります。

 PISA2015関連の情報については、「PISA2015関連」(ICTのある学び)にまとめておきましたが、日本語版を作成して調査協力をした国立教育政策研究所のWebページでさえ報道機関向けレベルの公表資料が掲載されているだけで、PISAに関する正規の日本語情報は明石書店が契約して発行している日本語版報告書くらいしかありません。

 そのため、背景指標を得る質問調査(ICT活用調査を含む)の日本語は、販売されている報告書を手に入れないと知ることができません。いくつかのWeb記事で分析・紹介されている調査結果の質問や回答の文章は、OECDがWebサイトで無償公開している英語版報告書を各自で翻訳している状態です。

 PISAの趣旨や目的からすれば、調査結果をもとに各国の教育政策に関する議論が様々に誘発されることが大事であるにも関わらず、日本の場合、どうしても日本語要約された報道発表範囲の限られた話題しか扱われず、それ以外は英語原文か有償の日本語版報告書を得なければならない壁があります。

 今回のように調査の生データを処理して視覚化する際も、質問文や回答選択肢文を日本語で表示した方が圧倒的に理解がしやすいわけですが、そのためのリソースはネット上に存在しません。

 日本語によるPISA調査作業量の大変さとそれを担われている関係者の労力には敬意を持ちますし、それを踏まえて発行される日本語報告書が有償販売されることは理解できます。ただ、もう少し社会的な議論が進むよう無償部分の情報流通量を増やす努力も必要かなと思います。

 少なくとも調査データを自前で処理する際に使えるリソースは欲しいものです。

 そこで、プログラム処理する際に使えるようPISA2015における「国別コードと国名」「ICT活用調査の質問文」「ICT活用調査の回答選択肢文」をcsvファイルにしておきました。

国別コードと国名
(csv)http://www.edufolder.jp/files/pisa2015/ISO3166_pisa.csv
(xlsx)http://www.edufolder.jp/files/pisa2015/ISO3166_pisa.xlsx
ICT活用調査の質問文
(csv)http://www.edufolder.jp/files/pisa2015/pisa2015_ICT_Familiarity_Questionnaire.csv
(xlsx)http://www.edufolder.jp/files/pisa2015/pisa2015_ICT_Familiarity_Questionnaire.xlsx
ICT活用調査の回答選択肢文
(csv)http://www.edufolder.jp/files/pisa2015/pisa2015_ICT_Familiarity_Questionnaire_answercode.csv
(xlsx)http://www.edufolder.jp/files/pisa2015/pisa2015_ICT_Familiarity_Questionnaire_answercode.xlsx

 (csv形式の方は)UTF-8コードで日本語も含めてありますので、英文と日本文を切り替えて利用するのにも便利です。データ構造の解説は今回省略します(ごめんなさい)。

 (修正20170116:「〜」を「-」に修正し,xlsx形式も用意しました。)

 ちなみに,OECDが用意しているコード表は「Codebooks for the main files」としてダウンロードページに用意されています。これの日本語版があったらいいのになという感じです。

 上記のデータファイルを利用したプログラムを作成してみました。質問番号(と表示順序)を設定したら半自動でグラフが出力されるところまで動くようになったと思います。

 設定した質問についてグラフ化するR言語ソースコードは以下が現在の進捗です。今回はファイルやライブラリの読み込み(Base部分)と質問ごとに集計してグラフ描画する部分(ICT部分)を分けてみました。Base部分は最初の一回だけ実行すれば、あとは読込み済みのデータで処理できます。

 (追記20170114:macOSでの導入を前提としたスクリプトのため,Windows等の他環境では,日本語フォント指定の部分等について改変する必要あり。)

# For PISA2015 Base (※最新のものが下方のリンクに有り)
# K.RIN

library(readr)
library(haven)
library(ggplot2)
library(plyr)
library(tidyverse)

question_items <- read_csv("pisa2015_ICT_Familiarity_Questionnaire.csv", col_names = TRUE, col_types = list(col_character(), col_character(), col_character()))
answer_items <- read_csv("pisa2015_ICT_Familiarity_Questionnaire_answercode.csv", col_names = TRUE, col_types = list(.default = col_character(), items_count = col_character()))
country_code <- read_csv("ISO3166_pisa.csv", col_names = TRUE, col_types = list(col_character(), col_character(), col_character(), col_character()))

student_raw <- read_sav("Cy6_ms_cmb_stu_qqq.sav")
school_raw <- read_sav("Cy6_ms_cmb_sch_qqq.sav")

pisa2015_base.R (←こちらの方が最新版)

# For PISA2015 ICT (※最新のものが下方のリンクに有り)
# K.RIN
#
# ★設定項目
# ・質問ID(「selected_question = " "」の部分)
# ・表示順序の組合わせ(「mutate('list_order' = `1`)」の部分)

#★質問番号
selected_question = "IC010Q09NA"
selected_question_big = substring(selected_question, 1,5)

#質問文読込
q_title <- paste(question_items$questions_ja[grep(selected_question_big, question_items$questions_no, value = FALSE, fixed = FALSE)][[1]])

#質問文整形
q_width = 39
q_title_disp <- character()
q_title_length <- nchar(q_title)
for(i in 1:q_title_length%/%q_width+1) {
q_title_disp[i] <- paste(substring(q_title, ((i-1)*q_width+1), ((i-1)*q_width+1)+(q_width-1)), '\n')
}
q_title_disp[i+1] <- paste("\n", selected_question,"\n", question_items$questions_ja[grep(selected_question, question_items$questions_no)])
q_title_all <- paste(q_title_disp, collapse="")

#回答選択肢読込
ans_item_count <- as.integer(answer_items$items_count[grep(selected_question, answer_items$questions_no)])
ans_item_colcount <- as.integer(answer_items$items_count[grep(selected_question_big, answer_items$questions_no)][1])

#回答選択肢設定
ans_limits <- as.character(answer_items[grep(selected_question_big, answer_items$questions_no),][1,3:sum(ans_item_count+2)])
ans_labels <- as.character(answer_items[grep(selected_question, answer_items$questions_no),][1,sum(ans_item_colcount+3):sum(ans_item_colcount+ans_item_count+2)])

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

#回答データ抽出
stu_tmp <- subset(student_raw, student_raw[[selected_question]] != "NaN")
#scl_tmp <- subset(school_raw, school_raw$[[selected_question]] != "NaN")
country_ans_table <- table(stu_tmp[["CNT"]],stu_tmp[[selected_question]])

#縦長dfへ変換
country_ans_long <- tbl_df(country_ans_table)
#横長df版クロス表
country_ans_wide <- spread(country_ans_long, Var2, n)

#★表示順序用対象項目設定(回答の場合) `1`+`2`
country_ans_wide <- country_ans_wide %>% rownames_to_column('num') %>% mutate('list_order' = `1`)

#文字から数値にモード変換
mode(country_ans_wide$id) <- "integer"

#国名変換
country_ans_wide <- ddply(country_ans_wide, 'Var1', transform, country_name = country_code$Name_ja[grep(Var1, country_code$Alpha3)])

#表示順序用対処数値設定(ナンバリングの場合)
#country_ans_wide <- ddply(country_ans_wide, num, transform, list_order = num * -1)
#ラベルが"X1"などになった場合も想定して…
colnames(country_ans_wide) <- c("num", "CNT", ans_limits, "list_order", "country_name")

#国名付き縦長df
country_ans_long <- gather(country_ans_wide, answer,count,-num,-CNT,-list_order,-country_name)

#並べ替え
country_ans_long <- arrange(country_ans_long, desc(CNT), desc(answer))

#列名変更
colnames(country_ans_long) <- c("num", "CNT", "list_order","country_name","answer", "count")

#パーセント計算(描画計算用)
country_ict <- ddply(country_ans_long, "CNT", transform, percent = count / sum(count) * 100, 0.1)
#小数点以下1桁処理(表示用)
country_ict <- ddply(country_ict, "CNT", transform, percent_rounded = round_any(count / sum(count) * 100, 0.1))

#リスト順序(パーセント計算)
country_ict <- ddply(country_ict, "CNT", transform, list_percent_order = round_any(list_order / sum(count) * 100, 0.1))

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

country_ict <- arrange(country_ict, CNT, desc(answer))

#フォントファミリー設定(macOS用)
quartzFonts(HiraKaku = quartzFont(rep("HiraginoSans-W3", 4)))
par(family = "HiraKaku")

#グラフ描画
graph <- ggplot(country_ict, aes(x = reorder(country_name, list_percent_order), y = percent, fill = factor(answer))) +
ggtitle(sprintf("%s", q_title_all)) +
ylab(y_label) +
xlab(x_label) +
labs(fill = legend_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 = 3) +
scale_y_reverse(breaks = c(100.0,75.0,50.0,25.0,0.0),
labels = c("0%","25%","50%","75%","100%")) +
scale_fill_discrete(limits = ans_limits, labels = ans_labels) +
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)

#ggsave("pisa2015_graph.png", graph)

pisa2015_ict.R (←こちらの方が最新版)

文部科学省トップページリニューアル

文部科学省Webサイトのトップページがリニューアルしています。

おそらく1月5日更新からの変更と思います。今回の変更は,タブレットやスマートフォンで操作しやすくデザインされたものといえます。今のところトップページのみで,下部ページは従来を踏襲しているようです。

スライドして切り替わるローテーションバナーの時間間隔が短いためか,若干落ち着きがない印象を受けますし,空白を活かしたレイアウトに慣れないため一覧性が落ちたように感じるところも無くはありません。タブレットとスマートフォンでの表示も最適化が十分でないような気もします。

伝えなければならない情報がたくさんあるので,これを上手に情報デザインしていくのは大変ですし,サイトデザインされた方の苦労をお察しします。Webデザインもさることながら,今後も各種の情報や資料を迅速に公開し続けていただくこと期待したいと思います。

360度撮影カメラの新顔

りん研究室でも注目している360度撮影カメラ。 私たち一般の人間でも手に入るものとしては,リコー社THETAシリーズGiroptic社360camハコスコ社販売代理Insta360 nanoなどが出ていました。

一方,VR(バーチャルリアリティ)技術を視聴するヘッドマウントディスプレイ(HMD)という機器が有名ゲーム機の周辺機器として登場することで,360度映像自体への関心も高まりつつあります。

「撮影」と「視聴」に用いる機器がそれぞれに発展しようとしているわけです。そして360度映像の撮影カメラも,さらにいくつかの新顔が登場しています。

Nikon社 KeyMission 360

老舗カメラメーカーのNikon社が手がけた360度アクションカム。価格帯が6万円強のため,他の比較すると入手の敷居は高く,同社として初めての部類の製品のためか改善の余地が多い様子。

Arashi Vision社 Insta360 Air

従来のInsta360 nanoがiPhoneのLightningコネクタに直接差すことができるタイプの製品だったのに対して,マイクロUSBコネクタ対応でAndroidスマホだけではなくパソコンにも接続できるようにした製品。

Giroptic社 Giroptic iO

従来の360camがSDカードやWiFiで端末に映像を転送するタイプの製品だったのに対して,iPhoneやiPadのLightningコネクタに差して使用することができるように開発した製品。Insta360 nanoの対抗商品。

リコー社 RICOH R Development Kit

THETAシリーズとは別系統で,米国CESで発表されたデバイス。まだ発売されておらず,開発者向けのものが先行公開されるとの情報(一般でも購入できそうな様子)。360度映像のストリーミング配信(ネット中継)を主な使途として想定していて,THETA Sと違いスティッチング処理をカメラ自身で行なうようになっています。HDMI出力はできるものの配信処理は別途デバイスが必要。

Arashi Vision社 Insta360 Pro

こちらも米国CESの合わせて発表されたもののようです。もはやプロ用。8Kという解像度で360度撮影できるようです。360度撮影カメラは解像度の高いものが少なく,高ければそれだけ映像処理の負担が増えるため機器のコストも高くなってしまいます。とはいえ,VR市場の拡大が期待され,品質の良いVRコンテンツの需要が高まることは必至ですから,8Kレベルの撮影ができるカメラもどんどん登場すると思います。

以上,各社からいろんなアプローチの製品が登場しています。価格や性能なども様々で,ジャンルとしては切磋琢磨が始まった段階です。過度な期待は保留した上で,可能性を育てていくことが大事だと思います。

学校教育の現場では,タブレット端末を「大きなデジタル」として利用する基礎的な利用方法がありますが,360度撮影カメラもその一環に組み入れて,学校周辺や社会見学先等の様子を記録する用途で活用ノウハウを溜めていくこと,そしてその用途でさらに必要と思われる機能をフィードバックしてメーカー各社に要請していくことが大事になると思います。

(追記20170106:Insta360 Proを追加しました。)

(修正20170107:リコー社の製品名を正しました。)

前提を疑う

学習指導要領改訂審議や教育情報化を推進する動きは,現在や今後の分析や社会的要請等を吟味して組み立てられます。

2030年に向けて「第4次産業革命」や「人工知能」の発展が加速していく世の中で生きる力を育成するとはどういうことなのか。「資質・能力」や「主体的・対話的で深い学び」が求められていると説かれたりします。

それらを実現するためにも,これからは「社会に開かれた教育課程」「カリキュラム・マネジメント」の考え方のもとで学校運営していかなければならないことも主張されています。

「情報活用能力」は「言語能力」とともに教科等を越えた全ての学習の基盤として育む資質・能力として挙げられています。必要なICT環境等の話は「「2020年代に向けた教育の情報化に関する懇談会」最終まとめ」が方向性を示しているとされています。

最終まとめではICT環境について,パソコン教室の整備から普通教室への端末整備という方向性のもと,「教員自身が授業内容や子供の姿に応じて自在にICTを活用しながら授業設計が行なえるようにする」ことが重要とされています。

その他にもさまざまな文書が登場したのが2016年でした。そうした文書に関する情報は様々なところで発信されています。それについては,このブログでもまたゆっくりと参照できればと思います。

そうした様々な文書に直接関係するわけではないのですが,昨年話題になった本を手にする機会があったので読んでみています。

ジェフリー・フェファー『悪いヤツほど出世する』(日本経済新聞社)
https://www.amazon.co.jp/dp/453232081X

もともとはリーダーシップ・ビジネススクール(リーダー教育産業)に対する懐疑から出発して,こうした教育産業が流布するリーダー像の「ウソ」を指摘する本です。「ウソ」を暴くというのは書籍の帯的な文句で,むしろリーダー神話(リーダーに必要とされる「謙虚さ」「自分らしさ」「誠実」「信頼」「思いやり」)に対する言葉面通りではない現実的な理解を事例や研究成果を踏まえて示していく内容になっています。つまり前提を疑ってみることがこの本の面白味です。

本を読みながら,上に掲げた様々なキーワードについても同様に前提を疑って考えたり,現実的な理解で考えた場合にどうなるのか,いろいろ考えを巡らしていました。

文部科学省が出してきた文書は,今回は特に,とても頭の回転が速い人たちが作成したものになっていて,整合性を崩さないよう言葉を上手に選んで継ぎ足してながら,ある意味で「全部盛り」なのです。

それを踏まえて,甘味な解説がたくさん書かれることになるのですが,そうした理想を現実的に適用していく場合には,理想と反したことを展開しなければならない場合があるというジレンマについては,途端に根性論的な話へと堕ちてしまいがちです。

そうした構図自体が悪で,変えなければならないと主張したいわけではありませんが,そうした現実がある中で,どうしたらよりマシになるのかを考えていくことが大事なのだろうなと思う次第です。

本自体は,会社経営分野の話なので,関心がないと面白くないのかも知れません。図書館か書店でパラパラと読んでみるくらいでいいのかも知れません。

初めてのプログラミング言語

実家の部屋を整理していましたら、『はじめて読む8086』(1987)と『はじめて読むMASM』(1988)が出てきました。マシン語(機械語)とそれに対応したアセンブリ言語の解説書です。基本図書といってもよい書籍です。


私自身も最初はBASICを雑誌や学習マンガで学んだ一人ですが、初めて開発したパブリックドメインソフト(PDS)はアセンブリ言語で作りました。MS-DOSに標準添付されていたのがMASMというアセンブラしかなかったからです。当時はシステムコールに興味があって、いろいろ技術書を買い込んでいたことを思い出します。

その後、比較的安価なTURBO-Cを手に入れて、C言語の世界へと入っていくことになります。それもPDS開発のためでした。

というわけで、私のプログラミングスキルは独学の好き勝手学習で身につけたものです。そのため、ちゃんとしたソフトウェア工学を学んだ人のようにプログラミング教育などを語ることはできません。

けれども、素人プログラマーなりにプログラミング教育についてはいろいろ考えていきたいと思います。

紅白歌合戦2016

明けましておめでとうございます。徳島文理大学の林向達です。今年は研究室ブログをもう少し緩く使って更新機会を増やそうと思います。というわけで、今回は昨年末の紅白歌合戦について。

この年末年始も帰省して、実家で過ごしていますが、大晦日の夜は特別なことがない限りテレビをつけています。そして、あれこれ迷いつつも、やはりNHK紅白歌合戦を映してます。

今回の紅白については、たとえば産経新聞がこんな記事を書いています。

「【紅白回顧】「謎の演出」「?」の連続だった第67回NHK紅白歌合戦 これでいいのか、国民的番組」(産経ニュース)

最後の勝敗結果も意外だったということや、随時行なっていたネット投票は意味が無かったのではないかということに批判的な声もあるようです。

私個人の感想は、今回の紅白には実験的な演出が散りばめられていて制作者の皆さん頑張ったな、というものです。もちろん不発ネタもたくさんあったと思います。

たぶんですが、今回の番組構成や内容は、狙って実験的だったというよりは、様々な条件上、そうせざるを得なかった結果なのだと思います。

紅白全体の構成については、あのグループが出演するのかしないのかがギリギリまで読めないことを想定して、かなり柔軟に変更できるようにしなければなりません。

それでいて、詰め込まなければならない要素には、それぞれ独自の調子や雰囲気を持ったものが多く(タモリ、マツコ、シン・ゴジラ、PPAP、恋ダンス等)、これらを活かしながら束ねるのはなかなか難しい話だったと思います。

願わくは全体を通して見て欲しいという制作者側の思いを下敷きに番組を具現化した時、一つのネタやってハイ次っ!ではなく、おそらく今回のように、いろいろな要素を同時並行させて進行する道を選んだのだと思います。

視聴者によるネット投票を毎回の合戦ごとに行なう方式にしたのも、リアルタイムに楽しんでもらおうという意図からだったと思います。

ただ、苦肉ながらも取り組んだこうした試みは、かなり綱渡り的なところも多かったと思います。

同時進行しているネタを細切れにして見せていくためには、お互いの絡み合いをうまく制御しないといけません。何事もなかったかのように振る舞うことでシチュエーション的な笑いを誘ったりすることもあれば、伏線を張るためにわざとらしい演技も必要とされました。リハーサルを繰り返されたのだろうとはいえ、極めてデリケートな積み木だったと思います。シュールだったという評価はそういう演出から来ているのだと思います。

ネット投票が最終得点に加えられなかったのは、不特定多数からの投票で懸念される一部の暴走投票を恐れたからではないかと思います。不正な方法を使って勝敗を左右されてないための選択だったのでしょうし、おそらく、制作者側としては、ネット投票の傾向と会場審査員やゲスト審査員の投票傾向は似ているはずなので、それほど問題ないだろうと思っていたのではないかと推察します。

けれども、現実にはネット投票の進捗とは裏腹な最終結果が出てしまい、制作者側も「やってしまった」と焦ったのだろうと思います。きっと、番組進行中に白組優勢の途中集計結果を見てしまえたことで、ゲスト審査員がバランスを取ろうと紅組に入れた投票が、最終結果に反映されたというのが真相じゃないかと思います。ネット投票や会場審査員の得票との重み関係(ボールの数等)をもっとよく説明しておくべきだったのでしょう。

思うに、今回の紅白歌合戦は、全体を成立させるために頑張って制作されたものの、それがゆえに番組がいったん始まってしまうと、途中乗車するのが難しくなったのだと思います。

こんなことを書いた私自身も、番組を見始めたのは開始後30分ぐらい経過して、iPadで昨年インストール済みの紅白アプリを起動してから、「あ、始まってるのか」と気づいて、なんとなくチャンネルを合わせてからです。つまり、投票システムの説明も、ふるさと審査員の件等も分からないまま途中から視聴を始めました。

やはり最初は訳がわからなかったし、差し挟まれる小ネタの扱い方が雑にも見えたし、「?」なところはありました。今回はどんな演出で番組制作しているんだろうという見方をしなければ、楽しむには至らなかったかもしれません。

長く続いている番組をさらに続けることの難しさを改めて感じましたが、昨年末はいろいろな条件を抱え、実験的であったとしても、その挑戦の成果としてはまずまずだったのではないか。むしろ、番組としてちゃんとやり遂げられたことを考えれば、製作者や関係者の努力は素晴らしかったと思います。

RでPISA2015

1 Comment

 PISA2015の「ICT活用調査」の分析記事が話題になっています。

  OECDのWebサイトには,各種報告書とともにデータファイルも統計ソフトファイルとして公開されていて,ダウンロードすれば自分で集計処理をすることが可能です。(集計概要は「Compendia」としてExcelファイルにまとめられています。)

 普通に詳細を検討するなら,概要ファイルをExcelで処理した方が楽だと思いますが,せっかくなので,Rという統計環境に挑戦することにしました。

 (追記20170114:「RでPISA2015〈その2〉」もご覧下さい)

 Rは,統計分析のためのプログラミング言語です。市販の統計ソフトが裏側で処理していることを利用者自身がプログラミングすることで,希望に応じた統計分析処理を行なわせることができるというわけです。その代わり,ボタン1つで処理させるような手軽さはないというのが敷居の高いところです。

 しかし,R言語とそのための環境を構成するソフトウェアは,オープンソフトウェアとして無償で公開されて,世界中の専門家が仕事で利活用している優れものです。研究を生業としているものとしては,一度はちゃんと触れておきたいソフトウェアです。

 取っ付き難さはあれど,導入手続は簡単です。

 1. Rをダウンロードする。 (たとえばこちらから https://cran.ism.ac.jp )

 2. RStudioをダウンロードする。 https://www.rstudio.com/products/RStudio/ 

 3. RとRStudioをインストールする。

 4. RStudioを起動する。

 これで,準備が出来ました。あとは,データファイルを読み込むなどして,統計処理を命令していきます。

 ちなみにRとRStudioですが,Rが言語命令を処理する本体ソフトウェアで,RStudioは操作のしやすい窓口(インターフェイス)を提供する統合環境ソフトです。

RStudio

 左上がプログラムを編集する場所,左下「コンソール」が実際に命令をする場所,右上にいろんなデータの一覧,右下がファイル一覧ですが,タブで切り替えるといろんな情報を表示できます。

 参考情報として三重大学の奥村先生による「PISA 2015データを読む(未完)」というWebページが貴重な入り口を示してくださっていますので,これをまず試してみましょう。

 初めてだと「取得から読み込みまで」の部分で音を上げそうですが,Rは標準で備わっている機能を命令で呼び出す以外にも,パッケージというものを足していくことで機能拡張させることが可能なので,PISAのデータファイルが他のソフト向けのものでも,該当するパッケージさえあれば読み込む機能を追加できます。そうやって読み込んでみるとPISAデータは結構メモリ食うねって話が書いてあります。

 しかし,ここではRStudioという統合環境ソフトを使うことにしたので,この辺をかなり楽にクリアできてしまいます。

 macOSであれば,PISAからダウンロードした圧縮ファイル(たとえば PUF_SPSS_COMBINED_CMB_STU_QQQ.zip)を展開して出来上がったファイル(Cy6_ms_cmb_stu_qqq.sav)を自分のホームディレクトリに移動させれば,RStudioのファイル一覧画面で確認することができます。これをダブルクリックなどして開こうと(インポートしようと)すると,必要なパッケージをダウンロードするか?と(英語で…)聞いてきますので,その指示に従って操作すれば読み込みに関しては完了してしまいます。

 上の画面写真の赤い矢印あたりにある「Pacakges」というタブで切り替えると,現在手元にあるパッケージ一覧と利用するかどうかのチェックマークが並んでいて確認できます。この一覧にないパッケージは「install」ボタンで探しに行ってダウンロードします。

 「PISA 2015データを読む(未完)」では,「data」という変数(オブジェクト)に読み込んだデータが格納されたのですが,RStudioを使って上記の方法をとると「Cy6_ms_cmb_stu_qqq」という名前になるんじゃないかなと思います。続く「回答の分析」の解説と命令はその部分を置き換えて,コンソール内で操作すればWebページ通りになると思います。

 さて,問題はここから先です。

 他の質問に対する回答集計や選択肢の異なる場合の処理など,どうやったらいろいろ見ることができるのでしょうか。できればExcelのようにグラフ作成したらパッと視覚的に確認できると嬉しい。

 しかし,Rに挑戦する場合には,パッと出るのを「自分でプログラミング」しなければなりませんから,R言語を使って試行錯誤することとなります。

  奥村先生のWebページが「(未完)」なのは,経験のある方でもそれなりに時間をかける仕事になるからで,さまざまな質問形式のPISAデータをRで読むとなると煩雑さはやむを得ないところです。

 というわけで,私も完成とまではいきませんが,少しチャレンジした成果を以下に載せておきたいと思います。R言語は初めてですので,各所のお知恵を拝借して組んでみた,とりあえず動いたというレベルです。Rプログラミングの参考にはなりませんが,とりあえずPISAデータをいじってみたいという皆さんの参考になればと思います。プログラムを編集する場所(左上)に貼り付けて実行してみてください。

 なお,このプログラムは学校質問紙「SC017Q07NA」という質問のグラフを描くものです。質問番号やファイルを変えて改良してください。

# For PISA2015 rev2
# K.RIN

library(haven)
library(ggplot2)
library(plyr)
library(tidyverse)

#student_raw <- read_sav("~/Cy6_ms_cmb_stu_qqq.sav")
school_raw <- read_sav("~/Cy6_ms_cmb_sch_qqq.sav")

#質問文(手動で質問文をコピペ)
q_title <- "Is your school’s capacity to provide instruction hindered by any of the following issues?\n[SC017Q07NA] A lack of physical infrastructure\n (e.g.building, grounds, heating/cooling, lighting and acoustic systems)"
#回答選択肢(手動で設定のこと)
ans_limits <- c("1","2","3","4")
ans_labels <- c("まったく\nあてはまらない","どちらかといえば\nあてはまらない","どちらかといえば\nあてはまる","とてもよく\nあてはまる")
#ラベル
y_label <- "パーセント %"
x_label <- "国"
legend_label <- "回答"

#回答データ抽出(国別クロス集計)
tmp <- subset(school_raw, school_raw$SC017Q07NA != "NaN")
country_ans_table <- table(tmp$CNT,tmp$SC017Q07NA)
ftable(country_ans_table)

#縦長dfへ変換
country_ans_long <- tbl_df(country_ans_table)
#横長df版クロス表
country_ans_wide <- spread(country_ans_long, Var2, n)
#国別idづけ(いまのところ利用せず…)
country_ans_wide <- country_ans_wide %>% rownames_to_column('id')
#idを文字から数値へモード変換
mode(country_ans_wide$id) <- "integer"
#国別id付き縦長df
country_ans_long <- gather(country_ans_wide, answer,count,-id,-Var1)

#並べ替え(表示の関係で逆順に)
country_ans_long <- arrange(country_ans_long, desc(Var1), desc(answer))

#列名変更
colnames(country_ans_long) <- c("id", "CNT", "answer", "count")
#パーセント計算(グラフ描写用)
country_ict <- ddply(country_ans_long, "CNT", transform, percent = count / sum(count) * 100, 0.1)
#小数点以下1桁処理(ラベル表示用,合計が100%にならないことあり)
country_ict <- ddply(country_ict, "CNT", transform, percent_rounded = round_any(count / sum(count) * 100, 0.1))
#ラベル位置計算
country_ict <- ddply(country_ict, "CNT", transform, percent_label_y = cumsum(percent)-0.5*percent)
country_ict <- arrange(country_ict, desc(CNT), desc(answer))

#フォントファミリー設定
quartzFonts(HiraKaku = quartzFont(rep("HiraginoSans-W3", 4)))
par(family = "HiraKaku")

#グラフ描画
graph <- ggplot(country_ict, aes(x = CNT, y = percent, fill = factor(answer))) + geom_bar(stat = "identity", position='stack') + scale_color_manual(values = rainbow(7)) + theme_bw() + geom_text(aes(y = percent_label_y, label = percent_rounded), color = "white", size = 3) + scale_y_reverse(breaks = c(100.0,75.0,50.0,25.0,0.0), labels = c("0%","25%","50%","75%","100%")) + coord_flip(expand = FALSE) +
ggtitle(q_title) + scale_fill_discrete(limits = ans_limits, labels = ans_labels) + ylab(y_label) + xlab(x_label) + labs(fill = legend_label) + theme(legend.title = element_text(family = "HiraKaku", size = 10),plot.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))

print(graph)

参考資料

PISA 2015データを読む(未完)」(奥村晴彦)
Rクックブック』(オライリー)
Rグラフィックスクックブック』(オライリー)
ggplot2 — きれいなグラフを簡単に合理的に」「tidyr — シンプルなデータ変形ツール」(Heavy Watal)
ggplot2 documentation」(Hadley Wickham)
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」」(tera monagi)