naite#14 メトリクス解析(データ解析)の初歩

48
岡野 麻子(NaITE) 2016/5/29 ©NaITE 1 NaITE #14 メトリクス解析 (データ解析)の初歩

Upload: asako-yanuki

Post on 08-Jan-2017

505 views

Category:

Data & Analytics


2 download

TRANSCRIPT

Page 1: NaITE#14 メトリクス解析(データ解析)の初歩

岡野 麻子(NaITE)

2016/5/29©NaITE 1

NaITE #14メトリクス解析

(データ解析)の初歩

Page 2: NaITE#14 メトリクス解析(データ解析)の初歩

自己紹介

• 岡野 麻子(おかのあさこ)

• 経歴• 自社では、SEPGに所属(2010~)。

• 主に、CMMIによるプロセス改善に従事。「定量的プロジェクト管理」の推進をしています。統計分析(プロセス実績ベースラインやプロセス実績モデルの構築)、ツールの管理、プロジェクト推進、・・・なんでも屋さんです。

• その前はQAをやっていました(2004~2010)。

• 所属しているコミュニティなど• NaITE(長崎IT技術者会) スタッフ

• PM学会 PDA研究会

• JFPUG FP活用研究会 など

©NaITE 22016/5/29

Page 3: NaITE#14 メトリクス解析(データ解析)の初歩

参考資料

• 統計学入門 東京大学教養学部統計学教室 (編集)

• メトリクス公団 TEF東海メトリクス勉強会著

• データ指向のソフトウェア品質マネジメント(デート本)

野中誠、小池利和、小室睦著

2016/5/29©NaITE 3

Page 4: NaITE#14 メトリクス解析(データ解析)の初歩

本セッションの目的(ゴール)

• メトリクス解析について(ソフトウエアメトリクスを対象)• プロジェクトの開始時には必ず、プロジェクト計画をたてます。品質指標値、生産性目標などを計画値として算出するシーンを想定し、ご紹介。

• 平均値と中央値の違い、四分位を使うことのメリット、回帰分析を行う際に考えなければいけないこと について、ご紹介。

• やってみよう、Excelで統計解析

• 最初の座学でご紹介したものを、実際に演習し、理解を確実にする。

2016/5/29©NaITE 4

Page 5: NaITE#14 メトリクス解析(データ解析)の初歩

参加者の状況(数学は好き?)

2016/5/29 5©NaITE

数学は好きですか?

好き! どちでも・・・ きらい>< 無回答

Page 6: NaITE#14 メトリクス解析(データ解析)の初歩

参加者の状況(データ分析を何かしらやったことはありますか?)

2016/5/29 6©NaITE

データ分析を何かしらやったことはありますか?

データ分析を何かしらやったことはありますか? やったことがある やりたいけど、経験はない 無回答

Page 7: NaITE#14 メトリクス解析(データ解析)の初歩

参加者の状況(つかったことのある分析ツールはありますか?)

2016/5/29 7©NaITE

つかったことのある分析ツールはありますか?

Excel R その他 無回答

Page 8: NaITE#14 メトリクス解析(データ解析)の初歩

はじめに

• データ解析の目的を考えてもらう• データの「見る切り口」「料理の仕方」は「手段」。

• データの意味をちゃんと理解してから料理しましょう。

• 目的が「データ分析」にならないように気をつけましょう!

→目の前にあるデータが、今の事実すべてだと思ってしまう現場によくある。

あくまでも、「全体の一部」であることを念頭においてください。

「母集団」の中の、ひとつの「標本」にすぎないのです。

2016/5/29©NaITE 8

Page 9: NaITE#14 メトリクス解析(データ解析)の初歩

≪First Session≫ソフトウェアメトリクス

について

2016/5/29©NaITE 9

Page 10: NaITE#14 メトリクス解析(データ解析)の初歩

ソフトウェアメトリクスとは

•様々な活動を定量化し、その定量化したデータを管理に使える

ように加工した指標

定義

•実力を把握するため

•見積もりをするため

•予実(計画と実績)差によるPDCAサイクルを回すため

取得の目的(一例)

2016/5/29©NaITE 10

Page 11: NaITE#14 メトリクス解析(データ解析)の初歩

基本メトリクスセット

•作業した時間。就業管理などで、開発オーダごとにつけていることが多い。

工数

•プロジェクトの活動を通じて作成される文書や何かしらのアウトプットのこ

と。

•例として、コード行数(LOC)、FP、ページ数などが挙げられます。

作業成果物

•開発中に発生した不具合や課題。

不具合・課題

2016/5/29©NaITE 11

Page 12: NaITE#14 メトリクス解析(データ解析)の初歩

メトリクス管理(よくある組み合わせ)

• 用途:レビュー密度評価(ページ/hr)、生産性(Line/hr)、等々

工数と作業成果物

• 用途:レビュー工数密度(件/hr)、誤り検出工数密度(件/hr)等々

不具合・課題と工数

• 用途:レビュー指摘密度(件/ページ)、誤り検出密度(件/Line)等々

作業成果物と不具合・課題

2016/5/29©NaITE 12

Page 13: NaITE#14 メトリクス解析(データ解析)の初歩

分析について

2016/5/29©NaITE 13

Page 14: NaITE#14 メトリクス解析(データ解析)の初歩

とりあげる分析手法・グラフ

•データのばらつき具合を示すのに用います。

•四分位を用いてデータの散らばりを表します。

箱ひげ図

•独立変数と従属変数の間の関係を推定するための統計的手法の

こと。(y = ax + b)

•散布図とともに使われることが多い。

回帰分析(単回帰分析)

2016/5/29©NaITE 14

Page 15: NaITE#14 メトリクス解析(データ解析)の初歩

箱ひげ図

•四分位を用いてデータの散らばりを表します。四分位とは

データを昇順に並べて、4等分したものです。

•第1四分位点から第3四分位点までの高さに箱を描き、中央

値で仕切りを描く。

特徴

•「箱」には全データの半数(25%目から75%目)が含まれます。それ

らのデータは、集団において中間層を形成することから、「順位的

にごく普通の(一般的な)データ」、すなわち「集団を代表する

データの集まり」とみなせます。

箱ひげ図からわかること

2016/5/29©NaITE 15

Page 16: NaITE#14 メトリクス解析(データ解析)の初歩

中央値と平均値• データの分布が対称である場合は、中央値は平均値に等しい。• 分散と標準偏差は、基準を平均値とした「ばらつき」を指標となるもの。一方、四分位は、基準を中央値としたばらつきの指標となるもの。

使い分けは、この「基準」をどちらで考えるか、によって判断される。

• 以下の性質により、平均値よりも、全体の傾向を表す代表値として適切である場合が多い。 (wikipediaより)

• 平均値は、測定ミスなどによって発生する外れ値(他の値より著しく異なる値)に大きく影響され、誤差が大きくなったり、無意味な値となることがある。しかし、中央値は外れ値にほとんど影響されない。

• たとえばデータが正値のみといったように限定されている場合、そうでない場合と比べて分布はより非対称になりやすく、少数の大きな値に引きずられて平均値は大多数の分布より大きくずれることがある。しかし、中央値ではそういった影響はほとんどない。

→ばらつきを考慮した値として最適である。2016/5/29 16©NaITE

Page 17: NaITE#14 メトリクス解析(データ解析)の初歩

中央値と平均値(余談)

• 平均を使用• 学校の偏差値とか。

• 学校での国語のテストの平均点とか。

• 異性の評価とか。(平均的な顔だよね~とか^^;)

• 中央値を使用• 各フェーズごとの不具合検出密度(これからご紹介)

• ソースコードの複雑度

等など

2016/5/29 17©NaITE

Page 18: NaITE#14 メトリクス解析(データ解析)の初歩

はずれ値とばらつき

[はずれ値]

• 「はずれ値」とみなすもの=箱ひげ図の両端から四分位範囲の1.5倍以上離れたデータ(出典:データ指向のソフトウェア品質マネジメント)

[ばらつき]

• 「品質」を見る際に、解析する元のデータに求められることは、「ばらつきの小ささ」が大きいと考えています。

[余談]

• CMMI レベル4のプラクティスなどを参考に考えると、「ばらつきが大きい」場合、まずはばらつきを小さくしていき、その後実力を上げていく(目標値、計画値を厳密にしていく)という流れが見られます。

2016/5/29 18©NaITE

Page 19: NaITE#14 メトリクス解析(データ解析)の初歩

回帰分析

• 独立変数と従属変数の間の関係を推定するための統

計的手法のこと。(y = ax + b)

• 散布図とともに使われることが多い。

特徴

• メトリクス同士の関係式を求める

ソフトウェア開発現場での主な用途

2016/5/29©NaITE 19

Page 20: NaITE#14 メトリクス解析(データ解析)の初歩

ケーススタディ1 品質指標を計画するプロジェクト計画を立てる際に、どの程度の誤り検出をすれば

このプロジェクトは成功となるか?

2016/5/29©NaITE 20

Page 21: NaITE#14 メトリクス解析(データ解析)の初歩

品質指標 導出手順

2016/5/29 21©NaITE

①データ収集

•実施プロ

ジェクトと

類似性のあ

る実績デー

タを収集す

②実力の把握

•箱ひげ図を

使い、対象

プロジェク

トの実力を

把握する

③指標値を決定

•指標範囲等

を決め、評

価に資する

値か否かを

確認する

Page 22: NaITE#14 メトリクス解析(データ解析)の初歩

品質指標 ①データ収集

•気をつけること•計画を立てようと考えているプロジェクトと類似性が限りなく高いこと

•層別する手段もいくつかある•データの取得方法などが統一されていること•(スキルも考慮されるとよい)

2016/5/29 22©NaITE

Page 23: NaITE#14 メトリクス解析(データ解析)の初歩

品質指標 ②実力の把握

②を実施していきましょう。

例題:A~Dのプロジェクトが、類似性が高いデータであるとする。

データは、ダウンロードしてもらったものの中にあります。

2016/5/29 23©NaITE

Page 24: NaITE#14 メトリクス解析(データ解析)の初歩

四分位の算出

2016/5/29 24©NaITE

最小値第一四分位

(25%)

第ニ四分位

(中央値)

方式設計レビュー指摘密度

詳細設計レビュー指摘密度

コードレビュー指摘密度

単体試験不具合密度

結合試験不具合密度

適格性確認試験不具合密度

=QUARTILE([範囲],0)' =QUARTILE([範囲],1)' =QUARTILE([範囲],2)'

第三四分位

(75%)最大値

方式設計レビュー指摘密度

詳細設計レビュー指摘密度

コードレビュー指摘密度

単体試験不具合密度

結合試験不具合密度

適格性確認試験不具合密度

=QUARTILE([範囲],3)' =QUARTILE([範囲],4)'

Page 25: NaITE#14 メトリクス解析(データ解析)の初歩

疲れてきましたね^^;

2016/5/29 25©NaITE

Page 26: NaITE#14 メトリクス解析(データ解析)の初歩

アイスブレイク -黄金比って?-

• 名刺も、ほぼ黄金比で作られているとのことです。

• では、黄金比の長方形を作ってみましょう。

2016/5/29 26©NaITE

正方形ABCDを描き,辺BCの中点をEとする。

点Eを中心としてEDを半径とする円弧を描き,BCの延長との交点をGとする。即ちED=EG

長方形ABGHを描けば,黄金長方形の出来上がりです。

A

BC

D

E G

FH

Page 27: NaITE#14 メトリクス解析(データ解析)の初歩

ケーススタディ2 相関をみるソフトウェアメトリクス同士の関係性をみる

2016/5/29©NaITE 27

Page 28: NaITE#14 メトリクス解析(データ解析)の初歩

相関をみる 導出手順

2016/5/29 28©NaITE

①データ選定

•関係性をみ

たいデータ

を選定する

②関係性の把握

•データの関

係性を見る

•回帰分析を

行う

③関係式導出

•回帰分析の

結果から、

関係式を出

Page 29: NaITE#14 メトリクス解析(データ解析)の初歩

相関をみる(回帰分析をしよう)

①のデータ選定が完了したと仮定します。

②を実施していきましょう。

データ同士の関係性、データの持つ意味を考えて、どういう回帰分析を行うのが最適なのか?を最初に考えることも必要と考えます。

→ちょっと紹介します。(数式込み)

2016/5/29 29©NaITE

Page 30: NaITE#14 メトリクス解析(データ解析)の初歩

相関をみる ~データの現象論~

2016/5/29 30©NaITE

Page 31: NaITE#14 メトリクス解析(データ解析)の初歩

① 𝑑𝑦/𝑑𝑥 = 𝑘 ⇒ 𝑦 = 𝑘𝑥 + 𝑐

② 𝑑𝑦/𝑑𝑥 = 𝑘𝑦 ⇒ 𝑦 = 𝑐 exp(𝑘𝑥)

③ 𝑑𝑦/𝑑𝑥 = 𝑘𝑥 ⇒ 𝑦 = 1/2 𝑘𝑥2 + 𝑐

※数式中の 𝑐 と 𝑘は定数でタイプごとに独立

相関をみる 関係式(1/2)

Page 32: NaITE#14 メトリクス解析(データ解析)の初歩

相関をみる 関係式(2/2)

Page 33: NaITE#14 メトリクス解析(データ解析)の初歩

相関をみる 回帰モデルのタイプ

2016/5/29 33©NaITE

※これら4タイプは共通の一次式 𝑌 = 𝐴𝑋 + 𝐵に帰着することができ、線形モデルを用いて回帰分析が可能になる。※4タイプのモデルのうち、最適なモデルの採択は決定係数で判定する。

Page 34: NaITE#14 メトリクス解析(データ解析)の初歩

相関をみる 関係式の導出[目的]

• 回帰分析を行う理由のひとつに、「 1つの目的変数を1つの説明変数で予測する」ということがあります。

例:工期と規模のデータがある場合

受託工事の見積もりをしたら、200(Kline)となった。

計画した工期で妥当か?

[手順]

• 散布図を描き、データの散らばり具合をみてみる。• Excelの「分析ツール(回帰分析)」を使用し、最小二乗法を用いて回帰分析を行う。

• 回帰分析結果の相関(決定)係数(R2)を見てみる。80をこえていたら、相関関係にあるといってもよいでしょう。

• 回帰分析結果より、Y=aX+bの式を導出し、近似線を引いたりしてみよう。

2016/5/29 34©NaITE

Page 35: NaITE#14 メトリクス解析(データ解析)の初歩

相関をみる 関係式

•回帰直線(y=ax+b)

回帰分析結果「係数」を見る。

「切片」=b :関数 intercept(Y範囲,X範囲)

「X値」= a :関数 slope(Y範囲,X範囲) )

※ 決定係数:関数 rsq(Y範囲,X範囲)

2016/5/29 35©NaITE

Page 36: NaITE#14 メトリクス解析(データ解析)の初歩

まとめこれまでをまとめます

2016/5/29©NaITE 36

Page 37: NaITE#14 メトリクス解析(データ解析)の初歩

まとめ

1.統計は敵じゃない!

2.箱ひげ図を使ってしまえば実力の把握もお手の物!

3.関係性の把握は回帰分析から!

2016/5/29 37©NaITE

Page 38: NaITE#14 メトリクス解析(データ解析)の初歩

2016/5/29 38©NaITE

休憩です。

Page 39: NaITE#14 メトリクス解析(データ解析)の初歩

≪Second Session≫ソフトウエアメトリクスの関係を導出しよう

2016/5/29©NaITE 39

~単回帰分析演習~

Page 40: NaITE#14 メトリクス解析(データ解析)の初歩

回帰分析をして相関をみよう!

• データの相関をみてみましょう。

Excel のアドイン「分析ツール」を動かして回帰分析。

データは、事前にご連絡したものを使用します。

値を対数変換しない形式の回帰分析演習です。

2016/5/29 40©NaITE

Page 41: NaITE#14 メトリクス解析(データ解析)の初歩

演習 回答

2016/5/29 41©NaITE

Date Tokyo Fukuoka 概要

Yi Xi

5月7日 1019.4 1018.4 回帰統計

5月8日 1005.7 1007.6 重相関 R 0.802971

5月9日 1002 1006.2 重決定 R2 0.644763

5月10日 1006.7 1009.9 補正 R2 0.625028

5月11日 1005.1 1010.8 標準誤差 3.148221

5月12日 1010.1 1013.2 観測数 20

5月13日 1016.7 1016.2

5月14日 1011 1009.1 分散分析表

5月15日 999.5 1003.1 自由度 変動 分散観測された分散比

有意 F

5月16日 1006.9 1012.5 回帰 1 323.8062 323.8062 32.67042 2.03E-05

5月17日 1001.9 1006.4 残差 18 178.4033 9.911295

5月18日 1007.5 1006.3 合計 19 502.2095

5月19日 1014.4 1012.2

5月20日 1014.3 1015 係数 標準誤差 t P-値 下限 95% 上限 95%下限95.0%

上限95.0%

5月21日 1014.6 1017.4 切片 16.08757 173.7333 0.092599 0.927245 -348.913 381.0877 -348.913 381.0877

5月22日 1009 1016.5 X 値 1 0.982213 0.171842 5.715805 2.03E-05 0.621187 1.343239 0.621187 1.343239

5月23日 1006.7 1012.1

5月24日 1009.4 1008.7

5月25日 1011.8 1009.2

5月26日 1009.4 1009.2

Page 42: NaITE#14 メトリクス解析(データ解析)の初歩

議論しましょう!

•どういうメトリクスをプロジェクトでとっていますか?

( →それは、なんでそのメトリクスをとっているんだろう?)

•どういうことを把握したいと考えますか?( →なんで把握したいんだろう?)

[余談] この議論の目的は、「GQM」の理解。

2016/5/29©NaITE 42

Page 43: NaITE#14 メトリクス解析(データ解析)の初歩

最後に・・・

箱ひげ図だけで判断しないこと!

→そのデータがすべてではない。

ただの標本(sample)であって、母集団(population)ではない。

データの偏りを考えて分析をするならば、正規分布をする母集団なのか否かを考慮する。

標本数が少ない場合には、t分布を適用する。

「詳しく知りたい~♥」となった方は、統計の世界へ入ったという証拠♥

2016/5/29 43©NaITE

Page 44: NaITE#14 メトリクス解析(データ解析)の初歩

≪Additional≫

2016/5/29©NaITE 44

~おまけ~

Page 45: NaITE#14 メトリクス解析(データ解析)の初歩

t分布小話 出典:統計学入門

~統計学理論はギネス・ビールから!~

ビール会社に入社したウイリアム・ゴセット。

常に平均と分散を計算しながら、ビールの品質を監視していたが、

標本数が小さいときに、分散や標準偏差の値がおかしくなることに気がついた。

それから、ピアソンらとともに、1908年、「平均が有する可能な誤差」という論文を発表したのである。これが、t分布の発見である。

2016/5/29 45©NaITE

Page 46: NaITE#14 メトリクス解析(データ解析)の初歩

大数の法則から

•一般的に、大標本では、観察された標本平均を母集団の真の平均とみなしてもよい、という常識を数学的に証明したもの。

•中心極限定理•確率分布の形は、nが大のときには、だいたい正規分布と考えてよい。

•二項分布•コインを投げるときなどの確率分布に適用される。

2016/5/29 46©NaITE

Page 47: NaITE#14 メトリクス解析(データ解析)の初歩

クイズ(お暇があればどうぞ)• 「通勤でバタバタする毎日。こんな状況を改善したい!何分前に家を出れば、遅刻しないですむかな。目安を出したい!」

• 上記のような目標を立てました。下記のような所要時間の場合、どのくらいを目安とするでしょうか?

• 乗り継ぎなどの時間も含めた所要時間と考えてください。

2016/5/29 47©NaITE

10分±3分 20分±4分

ヒント:【遅刻しないですむ】=3σ(99.7%)程度の確率と考える1.標準偏差を±の値(3と4)と想定してみよう2.分散(標準偏差の二乗)を考えてみよう!3.二項分布を参考にしてみよう!

Page 48: NaITE#14 メトリクス解析(データ解析)の初歩

Thank you!実務にて、是非活用して下さい!

2016/5/29©NaITE 48