・「R」で「クラスタリング」:登場人物の一覧をつくろう ・「実験計画」「材料」の書きかたにならって「R」を説明しよう ・【研究倫理】データに対するマナー(作法) ・「道具」先にありき ・表7 本分析における命名規則(例) ・表8 本分析で使用する関数 ・表9 その他に使用する関数(など)
(約10000字)
あくまでドラフト(草稿)ですので、あしからず。「導入編」([3524])、「概説編」([3525])、「処理編」([3526])、「詳説編」([3527])からの続きです。必ず、「導入編」([3524])から順にお読みください。
○「R」で「クラスタリング」:登場人物の一覧をつくろう
ここでは、以下のような命名規則をじぶんで定めてじぶんに課すものとします。
■表7 本分析における命名規則(例) | | (『後につける接尾辞』) | (『頭につける接頭辞』) | my | 数字など | | | | ExcelからコピーしてRに取り込んだデータを格納するデータフレーム名 | → | ・mydata (分析にかけるデータ) ・myvery (data for verification) | kmeans関数の結果を格納するデータフレーム名 | mykm | ・mykm3 (クラスター数3の結果を入れる) ・mykm7 (クラスター数7の結果を入れる) | hclust関数の結果を格納するデータフレーム名 | myhie | ・myhie | hclust関数の結果をcutree関数に渡した結果を格納するデータフレーム名 | mycut | ・mycut3 (クラスター数3の結果を入れる) ・mycut7 (クラスター数7の結果を入れる) |
※あえて「読みかた」を示せば、「まい・でーた」「まい・べりー」「まい・けーえむ・さん」「まい・ひえ」(「まい・はいあー」)「まい・かっと・なな」でしょうか。「まい」の部分を「あい」「えりん」「けん」「まこ」など、じぶんの名前(短い愛称)にしてもいいのです。▼ここには何をつけてもいいんだよ、ということと、▼じぶんがつけたデータフレーム名だよ、ということが(ほかの人にも)わかるようになっていればよいということです。
※「my」そのものは、多くのプログラミング言語において予約語ですから、そのまま使ってはなりません。「my data」「my.data」のように、空白やピリオドを入れてはいけません。
■表8 本分析で使用する関数関数名 | パッケージ | 説明 | 入力(引数) | 出力 | | | | | | kmeans | (標準) | k-meansを実行する | ・分析するデータフレーム名 ・クラスター数 | ・繰り返された回数 ・各クラスターの要素数 ・各クラスターの重心 ・要素ごとのクラスター番号のリスト | hclust | (標準) | 階層的クラスタリングを実行する | ・分析するデータフレームから つくった距離行列 ・距離の種類 | ・(デンドログラム) | dist | (標準) | (距離行列をつくる) | ・分析するデータフレーム名 | ・(距離行列) | cutree | (標準) | デンドログラムを切って クラスターを得る | ・階層的クラスタリングの結果を 格納したデータフレーム名 ・クラスター数 | ・要素ごとのクラスター番号のリスト | clPairs | mclust | (多変量)散布図を描く (色分けができる) | ・データフレーム名 ・色分けに使う、クラスター番号のリストを 格納したデータフレーム名 | ・散布図(グラフィック) | ftable | (標準) | 分割表をつくる | ・データフレーム名 (2変数を超えるときは、 どの変数を使うのか指定する) | ・分割表(配列) |
※「分割表」はJIS(日本工業規格)で定められた用語で、英語では「contingency table(s)」と呼びますが、総務省統計局なるほど統計学園では「クロス集計表」と表記されています。なんと、総務省統計局なるほど統計学園では「クロス集計表」と表記されています。(※2回いいました。)
「table」と「ftable」の違いの説明を端折るべく、最初から「ftable」につっこみます。「えふてー!(ftable)」「かっつり!(Cut a Tree into Groups of Data)」「くらぺあ!(Pairwise Scatter Plots showing Classification)」「えちくら!(h clustering)」「けーまえ!(k-means)」などと(略)…登場人物はわかりやすく呼びましょう。たいしょーたいしょー! けーまえとえちくらのかっつりをくらぺあでたのむよ。あと、えふてーね。…あいよ。オッ、きょうはまたずいぶんとはぶりがいいじゃないか。さてはりんじしゅーにゅーでもあったんだな?(※表現は演出です。居住まいを正して紙幣を数えるしぐさをして見せながら言うとGOOD!!)
※もちろん「けーまえ!」などと覚えると英語のつづりを間違えますからね。ゆめゆめうのみにせぬよう。
※2017年12月10日に「dist」を明示しました。「ディスタンス!(dist)」と、打鍵数が4つしかなくてもディスタンスと呼んでくれるとうれしいな!(…ちょっと無理があるかなぁ。)
ふだん日本語で考えているわたしたち、英語を端折った形でつけられている関数名など、なかなか覚えられなかったり、字の並びを見ても何のイメージも湧かなかったりするという『ハンデ』があるのです。何としても乗り切ろうといって、何でもいいのでじぶんがわかって、ミスを減らせるような覚えかたや読みかたを、じぶんの頭の中ですればよいのです。もちろん、ほかの人に説明するときは、正式な関数名で呼ぶのですよ。
・「ハンデ」
https://kotobank.jp/word/%E3%83%8F%E3%83%B3%E3%83%87-606918
■表9 その他に使用する関数(など)(データフレーム名) | データフレームの内容を表示する | (データフレーム名$列名) | データフレームのうち、指定した1列の内容を表示する | (データフレーム名[c(1,3)]) | データフレームのうち、1列目と3列目だけを抜き出す | (データフレーム名[c(2:7)]) | データフレームのうち、2列目から7列目までを抜き出す | plot | 図を描く | read.table | Rにデータを取り込む | write.table | Rからデータを書き出す | install.packages | 標準にはないパッケージをインストールする | library | 標準にはないパッケージの使用を宣言する |
※(2017年12月10日に追記)Rのデータフレームにおける列や行は(0からではなく)1から数えます。そのことを説明せずに済ませるため「m列目」「n行目」と表記し(=仮に『0列目』というと不自然で「おや?」と思わせることができる)、量としての列数や行数は「j列」「i行」と表記して区別してみます。
各パッケージの機能や引数の詳細は「R Documentation」で確認します。バージョンによって詳細が変わる場合がありますので、書籍ではなく、必ず「R Documentation」を確認することを習慣づけてください。
・R Documentation「clPairs」
https://www.rdocumentation.org/packages/mclust/versions/5.3/topics/clPairs
・R Documentation「kmeans」(※小文字です)
https://www.rdocumentation.org/packages/stats/versions/3.2.1/topics/kmeans
・R Documentation「hclust」
https://www.rdocumentation.org/packages/stats/versions/3.2.1/topics/hclust
・R Documentation「dist」
https://www.rdocumentation.org/packages/proxy/versions/0.4-19/topics/dist
・R Documentation「cutree」
https://www.rdocumentation.org/packages/stats/versions/3.4.1/topics/cutree
・R Documentation「ftable」
https://www.rdocumentation.org/packages/stats/versions/3.4.1/topics/ftable
※あくまで現時点での有用性を限定的に示すものです。将来にわたって「R Documentation(www.rdocumentation.org)」が活発にメンテナンスされる保証はありません。
・Rのパッケージに関する概説です
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/08.html
○「実験計画」「材料」の書きかたにならって「R」を説明しよう
理科の自由研究にならえば、「実験計画」「材料」にあたるのが表7と表8だと思います。表9は、「R」を使う上ではあたりまえのこと(※)であるので、「主論文」や「掲示物」に書く必要はないでしょう。
※例えれば、実験後に器具を洗いますとか、飛散防止に努めますとか、おいしくいただきましたとか、そのくらいのことなのです。わざわざ論文には書かなくてよい(むしろ、書いてはいけない)といえます。
そして、ここが最大の要<かなめ>であるという認識でございます。「よくわからないまま『統計ソフト』を使ったらなんかそれっぽいのが出てきたので転記していっちょうあがり!」というのでは、研究(論文)たりえないのです。
「R」を使ってのクラスター分析は、まさに「データを対象とした実験」なのです。理科の実験について書くのとまったく同じく、▼じぶんが何を調べるためにどのような計画を立て、▼どのような道具や材料を用意したのか、ぜんぶ書く必要があるのです。このとき、「道具」といって「Rを使いました」というだけではまったく不十分であり、「R」のうち、▼じぶんはどの関数を使うのか、▼その関数を使う理由は何か(何を調べることができる関数なのか、どんな出力が得られるのか※)、簡潔ではあっても説明を尽くすことが求められましょう。
※例えば「ヨウ素液」について書くのと同じことです。(試薬は「道具」の一種です。「材料」ではありません。)
※「Excel」でも「RANK関数」「CORREL関数」などの(やや高度な=自由研究としては特筆すべき)関数を使う場合には、「R」と同様に、表8の内容をまとめるとよいでしょう。
※(2017年12月10日に追記)逆にいえば、「分析には無料のRを使った」などと書きたてるということは、「実験には理科室にある道具を使いました(じぶんで買う必要はありませんでした)」みたいなことを書いているに等しいのだという自覚が必要であろうということです。
そういう面に配慮してプログラミング言語や統計処理言語を(小中学生もしくは一般に)教える教材は、いまのところないのではないでしょうか。本当でしょうか。
・「きょうはずいぶんとはぶりがいいじゃないか。」
http://thesaurus.weblio.jp/content/%E6%B9%AF%E6%B0%B4%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E4%BD%BF%E3%81%86
・「居住まいを正す」
http://thesaurus.weblio.jp/content/%E5%A8%81%E5%84%80%E3%82%92%E6%AD%A3%E3%81%99
・「札勘(さつかん)」
https://ja.wikipedia.org/wiki/%E6%9C%AD%E5%8B%98%E5%AE%9A
実際に自由研究で「R with Excel」していくとき、研究の流れは通常と異なるのでしょうか?
いいえ。「野帳」(「実験ノート」それに「原簿」とも)と「論文」(「主論文」とも)それに「掲示物」に関して[3520]などで紹介した「研究の流れ」は、まったくそのままです。「R」を使うから何かが特殊だということはありませんし、そんなことがあってはおかしいともわかります。
前節で「電子野帳」と呼んだ「Excelブック」には、どんどん、思いついたことや試したことを、その順番で書いていきます。ひとたび記入したことは、消してはいけません。だからといって、記入を躊躇してはなりません。なんでも、どんどん書いてください。
しかし、論文の書きかたは野帳とはまったく異なります。論文には構造があります。頭から順に書けば書けるというものではありません。
この構造に沿って論文の内容をつくりあげていくうえで、「実験計画」「材料」にあたる、上掲の表7、表8をまとめていくことが、最初の1歩になります。ここで用意できたものを使って分析しさえすれば、自動的に分析結果が出てくるのです。あとは、どのような分析結果が出たのかを淡々と報告すれば、論文の「メタ目次」([3093])でいう「3章」が、なかば自動的にできあがります。ほかの何も書かないうちに、極端にはタイトルも決まらないうちに、論文の「3章」はできあがるのです。
※詳しくは[3520]を参照してください。
この次に取り組むのが「考察」であり、論文の「4章」にあたります。「正解データとのクロス集計表をつくりましょう」という、この工程が「考察」そのものです。データのない話を好き勝手に繰り広げてはいけません。
「3章」と「4章」ができあがってみて、なるほど、じぶんが調べていたのはこういうテーマだったのかと、ここでようやく「タイトル」(テーマ)が見えてくるわけです。そして、タイトル(テーマ)が「じぶんだけの趣味じゃないよ☆みんなが興味を持ってる大事なテーマだよ」ということを確かめるべく、先行研究や文献を広く探し、その要約や、「いつだれがどんな研究をしてきたのでいまこういうことが注目されている段階にあります」というような『通時的』なこと(「研究の背景」)を述べます。これで「2章」ができあがります。
「2章」から「4章」までができたので、あとは「1章」と「5章」です。まず、「5章」のうち、自動的に書ける部分を先に仕上げましょう。「5章」では、「3章」の要点(「実験計画」「材料」「結果」)を短く述べ、同様に「4章」の要点(「3章」と対応づけた考察)を短くまとめて述べます。同じことは同じ言葉で述べます(「用語や表現の統一」)ので、「5章」は前の章の一部を繰り返したような文章になってよいのです。
そして、「5章」で初めて書くのが、「今後の課題」です。([3092]を参照。)
ここまでできてから「1章」の仕上げにかかるというのが理想的です。実際には、別口で「1章」の下書きをしていたり、日頃から「これおもろいでー(いつか1章に書いてやるぅ)」と思いながら生温めているウズラの卵みたいなのも、あるかもしれませんが、それはそれ、あくまで「2章」から「5章」がほとんどできてから、その内容に即して、うまくつながるように&読者が全体をひとまとまりの論文だと思えるように、隙間を埋めたりホットボンドを充填したりするような感じの文章を、「1章」に書くことになります。「1章」によって繋ぎ止めないと、各章は容易にばらばらにほどけてしまうのですよ。
・【盛り過ぎ注意】「ホットボンドで固定」のイメージです
http://www.k2.dion.ne.jp/~mitchan/2005052302.jpg
そして、自由研究では書かないかもしれませんが、実際の論文では「キーワード」と「あらまし(アブストラクト)」を書きます。ここで「キーワード」を5個程度に絞ることで、もう、ほとんどタイトルは決まってくる(=ほとんど『自由度』がない)ので、最終的にはあまり迷うことなく、自然なタイトルが決まってくることでしょう。
○【研究倫理】データに対するマナー(作法)
(初詣のにぎわいが去った後の神社のほうなど思い浮かべながら)「札勘」というのは、ちょうどよい例えだなぁと思われてきます。
・産経新聞のイメージです(2017年1月4日)
http://www.sankei.com/photo/images/news/170104/sty1701040003-f1.jpg
http://www.sankei.com/photo/story/news/170104/sty1701040003-n1.html
> 伏見稲荷大社の正月3が日で集まった賽銭を数える白衣姿の銀行員ら=4日午前、京都市伏見区
・[3326]
> > 最近では、素データがインターネット等で公開されていることも多く、そのようなデータを入手して活用することもできる(適当に検索して探してみると良いだろう)。
> 「素」で『素データ』へのビスケットが足りないのではないかねキミぃ
・[3187]
> いま、既に企業等でバリバリの人にあって、▼自分は(学校では)勉強していない、▼簡単そうに見えても、きちんと勉強しないと(きちんとは)できないことなんだ、という認識を持っていただかないと困ると思っています。
> 企業での「TOEICスコア」の扱われかたなど見ましても、かなり「エラい人」にあって統計や確率、ひいてはテストの設計など、ほとんど関心がないんだなぁ、とうかがわれます。
> レポートを書こうとして探して見つけて持ってきた統計が、いかなる目的で(Why)、いかなる主体によって(Who)、いかなる方法で(How)、いつ(When)、どこで(Where)、具体的には何を調べたのか(What)という、「新聞部!」もかくやというソレを読み解く読解力が、数学と同じくらい重要だとわかります。さらに、それぞれの項目において、自分がレポートでまとめようとしていることと整合が取れているのか、何か補う必要があるのか、見比べる(略)統計の足りない部分を、自分たちの観測値で補って、というのはシミュレーション([3097])に片脚を載せてただちにズルッとすべるようなソレです。「ヤフー報告」を見て、そこに、レポートの筆者がズルッとすべって後頭部を「きょう打」したようすを見てとり、思わず「大丈夫ですか?」と「お声がけ」したくなるというのが、大方の(ツイッターではつぶやかないオトナの)見かたではないでしょうか、たぶん。
統計の『向こう!』には1人1人の人間がいるのです。そこにビスケットなしで、スナック菓子をつまみながらべたべた触るような…とんでもない!(棒読み)…あ、いえ、正しくは「リスペクト」ですので、あしからず。
・(参考)きゅりあん
http://www.nihs.go.jp/drug/PhForum/14thRecord/14Forum5.pdf
https://goo.gl/maps/qVkotPu3hpJ2
・(あくまで参考)「Verification」の用例です
http://ecompliance.co.jp/CSV/MHLW_Guideline/Validation.html
> 1. テスト(Test)
> 2. 検証(Verification)
> 3. 適格性評価(Qualification)
> 4. 証明(Certificate)
> 5. 監査(Audit)
> 6. 照査(Review)
▼データ(統計)に対するマナーという面からも、▼論文(研究)としての再現性という面からも、データを「クラスタリングしてみた」で終わることや、恣意的な分析結果を振りかざして見せることは、許されません。
前述した「正解データとのクロス集計表をつくりましょう」というのは、ここでいう「2. 検証(Verification)」あたりのことをいっています。
命名規則の話にちょっと戻りますが、「Verification」に供するデータなのだから「べりー」と呼べばいいのではないかといって、データフレーム名としても「まい・べりー」と呼んでみようというわけでした。翻って、日本語で「正解データ」「クロス集計表」と呼んでいると将来が危ういのではないかという気がしてきます…ちょっとだけ。JISで定められた用語を無視して「クロス集計表」と呼ぶ総務省統計局なるほど統計学園も、…なんだかなぁ。
・「testee」
http://ejje.weblio.jp/content/testee
・[2836]
> 機器室の内部で電子機器につながる配線を「きれいな線」と呼び、機器室の外、現場の信号機器につながる配線を「きたない線」と呼んでいます。これはわかりやすいですね。
> プログラミングでも、何が入ってくるかわからない部分は「きたない入力(値)」などと呼んで区別したりします。データでも電気でも、わかりやすい言葉でわかりやすいイメージを持って対策をするというのは大事なことです。
名前はなるべく直感的に、という話でございました。「「Verification」に供するデータ」を「べりー」と呼べれば、どれだけ直感的になることでしょう。
・ぜおがら…じゃなくて、「ひえ」もしくは「はいあー」付近
https://dictionary.goo.ne.jp/jn/183152/meaning/m0u/
※「やだなぁ、さっきゼオガラヒーしたばかりじゃないですかぁ。」については[3517]を参照。
・ゼオガラヒー専用液…いえ、「ヨウ素液」の用例です
http://gakusyu.shizuoka-c.ed.jp/science/syougakkou/seibutu/daeki/QA/qa1-1r.htm
「自由研究総合(自由形)」としては、なんとしても「3. 適格性評価(Qualification)」まで到達できないと、わざわざクラスター分析を導入する意味が薄れますから、がんばって「よく考察」してください。
○「道具」先にありき
おおまかな研究課題というものは、日頃からなんとなく持っているものだと思いますし、そうでなければ自由研究とはいいがたいとも思っています。それに対し、具体的な研究計画というものは、具体的な「道具」「方法」「材料」が使える見通しが立ってから、ようやく具体化してくるというものだと思います。
※本節に限っては、あくまで「思います」のレヴェルで書いていますので、そのつもりで。
この「使える見通し」の中には、▼費用面で問題がない(じゅうぶんに安価である)、▼技術面で問題がない(本人が危険なく取り扱え、練習すれば習熟できる、じぶんの技量に見合った技術であり、重大なミスをする恐れがない)、▼科学的に問題がない(広くコンセンサスの得られている道具や方法である)、▼倫理的に問題がない(その方法や材料を使うことに倫理的な問題がない)、といったことが総合的に含まれてまいります。
この一連の記事では、大胆にも「自由研究総合(自由形)」などと仮題し、文系の研究課題に対して「クラスター分析」を採り入れようという主旨でまとめてきました。自由研究のテーマが「理科じゃない」というだけで、まともな研究指導が受けられず、講評を得て来年に活かすという機会(=コンクールの応募資格)すらも得られなくなるというのでは、文系の研究に取り組む者の質がどんどん下がってしまいかねません。(大学だけでなんとかしようというのは限界だという悲鳴でもございます。)
また、「統計グラフコンクール」のように、研究課題の探索や研究計画の立案に取り組ませるフェーズを省いて統計処理のみに特化させてしまうと、総合的な視点が育たないのではないかという心配もございます。
このような状況は大人の世界(技術者の研修)でも同様で、そこに対する『処方箋』的な事例を、元デンソー氏が紹介しておられました(=「詳説編」で述)。先に「道具」が見えていればいいのです。
自由研究としても、『先に』(テーマを探したり決めたりするより前に)、▼文系の研究で使える「クラスター分析」という方法があるのだよ、▼あなたのパソコンで「R」を使えば、多変量のクラスタリングが簡単かつ正確に完遂できるのだよ、▼あなたがこの先、学んでいく(かもしれない)数学や理科や工学の内容をじゃましませんよ(いますぐにも役に立つし、将来もそのまま役に立つのですよ)ということが知られることが望まれます。また、『つまみ食い』的に「R」を触るというのでは自由研究として成立しませんから、「大人と同じ方法が子どもも使える」、そのために「どこまでを大人と同じにして、どこを子どものために簡略化するのか」という、この点が(学習の単元にも照らして)明確にできてこそ、ようやく「自由研究や授業で「R」を使ってクラスタリング」というものをおすすめできようかと、こういうわけです。
※『自由研究専用××! かっこいいよ&かわいいよ』のような、大人になると役に立たないものであっては意味がないという考えです。
「処理編」([3526])に続きます。
|