ソフトウェアの品質を学びまくる2.0

ソフトウェアの品質、テストなどについて学んだことを記録するブログです。

『R』勉強会で、統計を学んでいるところです。

 「ソフトウェアの品質」というテーマに関わる以上、「統計のことはよく知りません」なんて、恥ずかしくて言えませんよね(統計のことはよく知りませんが)。
 統計は、ソフトウェア開発の日々の業務に直接は関係ない、数学という学問。なので、どうしても勉強の優先度が下がってしまいます。が、統計を知りもせずに「ソフトウェアの品質を学びまくる」なんて欺瞞にもほどがある。
 そんな折にふってわいたのが、ヤマハの小池さんによる「(ソフトウェア品質技術者のための)R勉強会」
 この勉強会、大きく分けて次の3つからなります。
  1. 入門書をテキストに、統計を学習
  2. テキストの例題で、統計解析ソフト『R』の操作を学習
  3. 統計の考え方の、現場への適用に関するディスカッション
 10月22日に参加してきましたので、レポートとして以下、簡単に振り返ってみます。統計の具体的な内容に触れません。統計のことはよく知りませんから・・・。
 なお、参加されていた秋山さんの、勉強会の後のtweetをコチラにまとめていますので、参考にしてくださいね。

統計の学習

 良質な本として小池さんが指定した『例題で学ぶ統計的方法』をテキストに、基本の基本から学びました。たとえば、平均・モード・メジアン、分散・標準偏差、ヒストグラム・・・。さすがにこれらの概念を知らない人はいなかったと思いますが、(2)のRの使い方を学ぶ題材として、基本的なものから。 

例題で学ぶ統計的方法 [改訂版]

例題で学ぶ統計的方法 [改訂版]

 

  といいつつも、「幹葉表示」という聞いたこともない表現方法もありました。これは、ヒストグラムでは不可逆的に落としてしまう情報を落とさず、かつ一見して分布の様子もつかめるというものですが、手集計をしていた昭和の匂いを感じさせます。

 11月に予定されている次回は、テキスト第7話の「散布図・相関係数」。品質管理ではまさに肝となる概念であり、盛り上がりそうです。
 ちなみに、数式が黒板にガンガン書かれて、みんなそれを無言で板書する、というような「授業」ではないです、まったく。別に数式を否定するつもりはありませんが、この勉強会では、統計の概念・考え方を学ぶことを目的としており、インテグラルさんたちには控えていただいております。
Rの学習
 『R』は、統計解析とグラフ描画のための、オープンソース・マルチプラットフォームのソフトウェアです。
 今回テキストに使った『「R」Commanderハンドブック』によると、
簡単な計算機能から数値計算関数、簡単なデータ解析手法からの最新の統計解析手法、プログラムやシミュレーション用のツール、シンプルなプロット図から複雑なグラフィックス機能まで備わっています。
「R」Commanderハンドブック

「R」Commanderハンドブック

 

  ただし、Rはコマンドベース。やや敷居が高い。
 が、これに「R Commander」というこれまたフリーのソフトウェアをかぶせることで、GUIでの操作ができるようになるのです。 R CommanderからGUIで入力したコマンドも表示されていますので、そのコマンドを直接Rに与えることもできます。

 以下の50個の数値でヒストグラムを描いてみましょう。
0.1  0.5  1.5  1.5  1.7  2.2  6.3  6.5  2.8  3.1  
3.4  3.4  3.5  3.8  3.8  3.8  4.1  4.1  4.2  4.3  
4.5  4.6  4.6  4.8  5.1  5.6  5.6  5.7  5.8  5.8  
5.9  5.9  6.0  6.0  6.5  6.6  6.6  6.7  7.0  7.0  
7.1  7.1  7.2  7.2  7.2  7.4  7.5  9.4  8.1  8.2  
 まずはExcelで。Excelらしく、対象となるデータと、階級の範囲を、セル番地で指定するという操作になります。

3-1_581e85f3

 美しいですねえ。
 次に、R。Rは、ExcelファイルやCSVファイルだけでなく、クリップボードにあるデータを展開することができます。最初は慣れませんでしたが、これは便利。で、描いてみると、こう。

3-2_940f9c58

 地味ですねえ。もともと、人さまに見せるような見栄えのいい派手なグラフを描くことを目的としていないんですね。方向が違う。
 たとえば、3つの変数をもつ50個のデータが採れたとして、重回帰分析をするときには、どの変数が互いに関係していそうかをまずはザックリ知りたいものです。Excelだと、3つの変数の組み合わせ分、3C2 = 3 個のグラフを1つずつ描くことになりますが、Rなら「散布図行列」を描いてくれます。

3-3_2d73bdac

 変数の全組み合わせで散布図を描いたものです。ややっ、どうも変数BとCの間に、強い正の相関がありそうですぞ!
 変数を8、データの数を500に増やして試してみましたが、わたしの普通のパソコンでも3秒で描き終わってくれます。これは力強いですね。
 おそらく、大量データを使って本格的な解析を行うようなときこそ、Rの出番なのかと思います。

現場の統計の現場での活用

 ソフトウェア開発の現場において使われる統計は、最先端で難解な概念ではなく、標準偏差相関分析区間推定実験計画法といった、「とりあえず名前くらいは知っているもの」が中心になると思います。
 とはいえ、自分の適用の仕方が合っているのか、いまいち心もとない。そういう疑問を持ち寄って議論し、理論と実践をすりあわせていく。
 実はわたしは、この部分にけっこう期待して参加しました。
 仕事でデータを見ていてどうも腑に落ちなかった点、統計の適用の仕方の妥当性について質問し、みなさんと議論させていただくことができて、本当に有益でした。これは教科書を読んでもわかりません。
 本勉強会は、理論とツール、そして現場への適用と、バランスよく学べる、とてもいい場だと思います。主催者の小池さんに感謝。
 別途告知があると思いますが、次回は11/19予定。第1回の参加を前提としているわけではないので、興味のある方はぜひ、参加してみてくださいね。