統計工学実験 第一週
前後関係
まず日本の品質管理の領域では
- PDCAサイクル
- Plan
- Do
- Check
- Act
が改善の基本行動パターンとして徹底して用いられる。PDCAでそして
- QCストーリー
- 問題解決型QCストーリー
- 課題達成型QCストーリー
が問題解決に関するコミュニケーションのポピュラーなテンプレートとして、それぞれ用いられている。QCストーリーは問題解決のフローチャートでもあり、1度にストーリーを問題設定から水平展開・今後の課題まで直行できる訳はなく、そこここで小さなPDCAサイクルを回しつつ、中ぐらい、大きなPDCAも回すことになる。ただ成果発表は、このテンプレートで行われるのが通例である。
QCストーリーに則して説明される問題解決や改善において、日常的に用いる現状把握や問題の解析手法には大きく、
- QC7つ道具:
- グラフ
- ヒストグラム
- 管理図
- チェックシート
- パレート図
- 特性要因図 (cause and effect diagram)
- 散布図
- 層別
- 新QC7つ道具
- 親和図法
- 連関図
- 系統図
- マトリックス図
- マトリックス・データ解析法
- 過程決定計画図法(PDPC法)
- アロー・ダイヤグラム法
の2つのセットがある。互いに、QC7つ道具が基本で、新QC7つ道具が少し高度、といった位置づけである。 幾つかのシンプルな統計的データ手法と問題解析手法を徹底して使い込むのが、品質管理における現状把握や問題の解析の基本姿勢である。 また現場のエンジニアが自ら、データの収集、現状把握、問題の解析、状況改善や問題の解決に取り組むこと、そして歯止めや水平展開まで必ず取り組むこと、が日本の産業界の大きな特徴であり、強みである。 QC7つ道具も新QC7つ道具も、問題解決法と合わせて初めて、これらの名称を持つのであり、手法のみを教育すると、他の名称を持つ酷似した手法との区別が付きにくくなる。
統計工学実験の第1週の目的は、品質管理の探索的データ解析法としてのQC7つ道具の用い方を、演習課題を通した疑似体験を通して学習することである。 そしてその結果を、次週からの課題で用いるデータに適用する。
配付資料
- 「統計工学実験第1週」(第1週の実験内容についてのメモ、旧版)
- 「講義内演習課題」(これの内容が終わったら、帰ってもいい)
- 「時間外演習課題 解析事例」(時間が余ったら、こっちも終わらせて帰るといい)
- 「データのとり方・まとめ方」(レポートの考察を書く際の参考資料になるかも、と配布した)
- 「統計工学実験第1週QC7つ道具」 (プレゼンテーション形式の資料)
参考資料
TICデータの説明
TIC2000
tic.data.txtからの要約。
- CoIL 2000 Challengeで用いられた保険会社の顧客に関するデータ。86個の変数は、契約状況(V44-V85)と社会人口統計学的な変数(V1-V43)を含んでいる。この調査は “Can you predict who would be interested in buying a caravan insurance policy and give an explanation why?” という問いに答えるように集められた。
- このデータはオランダのデータマイニング会社Sentinent Machine Researchから提供され、現実のビジネスの問題に基づいている。学習用データ(ticdata2000.txt)は5000レコードでcaravan insurance policyの契約の有無(V86)を含んでおり、検証用データ(ticeval2000.txt)は4000レコードで契約の有無(V86)は含んでいない。検証用データの正解は、CoIL 2000 Challengeの開催時には公開されていなかったが、現在はテストデータ(tictest2000.txt)として公開されている。
- V1-V43のうち、コード化が指定されていない変数はすべて、郵便番号の一桁目のエリアを指している。たとえばV30が9ならばその顧客は郵便番号が9で始まるエリアに家を借りていることを、V31が5ならば郵便番号が5のエリアに持ち家があることを意味する。職業、社会層などもすべて、該当するエリアの箇所が郵便番号の一桁目で埋まっている。
変数
dictionary.txtからの抜粋と要約、の日本語版。
変数 | 分類 | メモ |
V1 | 顧客分類2 | L0でコード化されている、数字の大きさに意味なし |
V2 | 住居数 | 大きいほど住む箇所が多い |
V3 | 世帯構成員数の平均 | 人数 |
V4 | 世帯構成員の平均年齢 | L1でコード化されている、年齢 |
V5 | 顧客分類1 | L2でコード化されている、数字の大きさに意味なし |
V6-V9 | 宗教 | L3でコード化されている、V6+V7+V8+V9は9から12の間。それぞれの宗教を信じる割合? |
V10-V13 | 結婚 | 場所を表す変数, 例えばV10が0ならば無し? |
V14-V15 | 世帯の大きさ | L3でコード化されている、なぜかV14+V15は10以下。割合? |
V16-V18 | 教育水準 | L3でコード化されている、なぜかV16+V17+V18はほぼ10、それぞれの年数?割合? |
V19-V24 | 職業 | L3でコード化されている、なぜかV19+V20+V21+V22+V23+V24は9から13の間 |
V25-V29 | 社会層 | L3でコード化されている、なぜかV25+V26+V27+V28+V29は9から12の間 |
V30-V31 | 住居 | L3でコード化されている、なぜかV30+V31は9か10 |
V32-V34 | 自動車 | L3でコード化されている、なぜかV32+V33+V34は9から11の間 |
V35-V36 | 健康保険 | L3でコード化されている、なぜかV35+V36は9か10 |
V37-V41 | 収入 | L3でコード化されている、なぜかV37+V38+V39+V40+V41は9から13の間 |
V42 | 平均収入 | L3でコード化されている |
V43 | 購買力 | L3でコード化されている、1から8の間。 |
V44-V64 | 各種保険支払い額 | L4でコード化 |
V65-V85 | 各種保険契約件数 | 件数 |
メモの確認用のコード。
table((tic.learn$V16+tic.learn$V17+tic.learn$V18)) table((tic.learn$V19+tic.learn$V20+tic.learn$V21+tic.learn$V22+tic.learn$V23+tic.learn$V24)) table((tic.learn$V25+tic.learn$V26+tic.learn$V27+tic.learn$V28+tic.learn$V29)) table(tic.learn$V30+tic.learn$V31) table(tic.learn$V32+tic.learn$V33+tic.learn$V34) table(tic.learn$V35+tic.learn$V36) table(tic.learn$V37+tic.learn$V38+tic.learn$V39+tic.learn$V40+tic.learn$V41)
各変数のコーディング
L0:分類を表す数字なので、大小関係に意味がなく、名義尺度である。そのままでは説明変数にならない。
Value | Label |
1 | High Income, expensive child |
2 | Very Important Provincials |
3 | High status seniors |
4 | Affluent senior apartments |
5 | Mixed seniors |
6 | Career and childcare |
7 | Dinki's (double income no kids) |
8 | Middle class families |
9 | Modern, complete families |
10 | Stable family |
11 | Family starters |
12 | Affluent young families |
13 | Young all american family |
14 | Junior cosmopolitan |
15 | Senior cosmopolitans |
16 | Students in apartments |
17 | Fresh masters in the city |
18 | Single youth |
19 | Suburban youth |
20 | Etnically diverse |
21 | Young urban have-nots |
22 | Mixed apartment dwellers |
23 | Young and rising |
24 | Young, low educated |
25 | Young seniors in the city |
26 | Own home elderly |
27 | Seniors in apartments |
28 | Residential elderly |
29 | Porchless seniors: no front yard |
30 | Religious elderly singles |
31 | Low income catholics |
32 | Mixed seniors |
33 | Lower class large families |
34 | Large family, employed child |
35 | Village families |
36 | Couples with teens 'Married with children' |
37 | Mixed small town dwellers |
38 | Traditional families |
39 | Large religous families |
40 | Large family farms |
41 | Mixed rurals |
L1:大きさが年齢の順なので、そのまま説明変数に使える。
1 | 20-30 years |
2 | 30-40 years |
3 | 40-50 years |
4 | 50-60 years |
5 | 60-70 years |
6 | 70-80 years |
L2:数字は分類を表すだけなので、連続尺度でも順序尺度でもなく、名義尺度。そのままでは説明変数にならない。
1 | Successful hedonists |
2 | Driven Growers |
3 | Average Family |
4 | Career Loners |
5 | Living well |
6 | Cruising Seniors |
7 | Retired and Religeous |
8 | Family with grown ups |
9 | Conservative families |
10 | Farmers |
L3:順序尺度。このまま連続尺度の説明変数として用いる。
0 | 0% |
1 | 1 - 10% |
2 | 11 - 23% |
3 | 24 - 36% |
4 | 37 - 49% |
5 | 50 - 62% |
6 | 63 - 75% |
7 | 76 - 88% |
8 | 89 - 99% |
9 | 100% |
L4: 順序尺度。今回はこのまま連続尺度の変数として用いる。
0 | f 0 |
1 | f 1 - 49 |
2 | f 50 - 99 |
3 | f 100 - 199 |
4 | f 200 - 499 |
5 | f 500 - 999 |
6 | f 1000 - 4999 |
7 | f 5000 - 9999 |
8 | f 10.000 - 19.999 |
9 | f 20.000 - ? |
TICデータの読み込み
保険データの読み込みは、Rに次の命令を実行させてから、Rコマンダーを起動するとよい。
Sys.setenv("http_proxy"="http://130.153.8.66:8080/") tic.learn <- read.table("http://kdd.ics.uci.edu/databases/tic/ticdata2000.txt") tic.eval <- read.table("http://kdd.ics.uci.edu/databases/tic/ticeval2000.txt") tic.test <- read.table("http://kdd.ics.uci.edu/databases/tic/tictgts2000.txt") tic.eval <- cbind(tic.eval, tic.test) colnames(tic.eval)[86] <- "V86" rm(tic.test)
あとはRコマンダーで、tic.learnについて分析を進める。
library(Rcmdr)
参考
kernlabパッケージに、加工済みのデータが入っていて、それを使うこともできる。
install.packages(c("kernlab"), dependencies=TRUE) tic.learn <- ticdata[1:5822,] tic.eval <- ticdata[5823:9822,]
講義内演習
- R言語のインストール (インストール済みのPCでは、この作業はパスできる)
- CRANからRのダウンロードとインストール。
- インストールしたのRのショートカットをデスクトップに作成し、“–sdi”というオプションつきで起動するように編集する
- インストールしたフォルダの中でRgui.exeを見つける。
- Rgui.exeのショートカットをデスクトップに作成する。(作成してから移動してもいい)
- 「Rgui.exeのショートカット」という名称を「実験用R」と変更しておくと、既にインストール済みだったRと区別がつく。
- ショートカットを右クリックし、プロパティを表示させ、「リンク先」の中の「“C:\…..bin\i386\Rgui.exe”」を「“C:\…\Rwin.exe –sdi”」と変更しておくと良い。
- パッケージをインストールするために、Rの中でプロキシを設定する。
Sys.setenv("http_proxy"="http://130.153.8.66:8080/")
- Rの拡張パッケージ(RコマンダーとRコマンダーのプラグインとRコマンダーが必要とするパッケージ)のインストール。ドキュメントにはメニューから・・・とあるが、Rのコマンドラインから次の命令をを実行すれば済む(はず)。
install.packages(pkgs=c("Rcmdr"),dependencies=TRUE) install.packages(pkgs=c("RcmdrPlugin.FactoMineR","FactoMineR"),dependencies=TRUE install.packages(pkgs=c("RcmdrPlugin.HH","HH","car","multcomp","leaps","lattice","grid","grDevices"),dependencies=TRUE) install.packages(pkgs=c("RcmdrPlugin.TeachingDemos","TeachingDemos","tkrplot"),dependencies=TRUE) install.packages(pkgs=c("mgcv","abind","rgl","vcd"),dependencies=TRUE) install.packages(pkgs=c("RcmdrPlugin.qcc","qcc"),dependencies=TRUE) install.packages(pkgs=c("DAAG","HSAUR","Hmisc","MASS"),dependencies=TRUE) install.packages(pkgs=c("abind","alr3","asuR","ca","effects"),dependencies=TRUE) install.packages(pkgs=c("faraway","ggm","homals","lmtest"),dependencies=TRUE) install.packages(pkgs=c("mda","mvtnorm","qAnalyst"),dependencies=TRUE) install.packages(pkgs=c("relimp","sandwich","strucchange","vcd","zoo"),dependencies=TRUE)
- RコマンダーのQC7つ道具プラグインのインストール。
- データのダウンロード。
- RコマンダーのQC7つ道具プラグイン(パレート図、グラフ、ヒストグラム、散布図)を使ってみる。
- R 2.13.0以降では、Rコマンダーで日本語を含むデータファイルを読み込むことができないことがある。ここにある手順に従って、CSVファイルをExcelで開いて、コピーしてクリップボード経由でインポートすることになる。ご不便をおかけして申し訳ない。上のパッケージをすべてインストールした後に、日本語を含むファイルの読み込みに成功する場合があることが分かっている。
- グラフの持ち帰り方法には主に次の2つがある。
- 描画したグラフの上で右クリックをして表示されるメニューで、「メタファイルに保存」(Word等で再利用する場合)か「ポストスクリプトファイルに保存」(LaTeXで再利用する場合)を選ぶ。グラフ1枚ごとに1ファイル保存し、すべて保存し終わったら、圧縮フォルダなどを作成して持ち帰ることになる。
- 描画したグラフの上で右クリックをして表示去れるメニューで、「メタファイルにコピー」を選び、Wordなどに「貼り付け(P)」る。すべてのグラフを1つのWordファイルに入れて持ち帰ることになる。
- ファイルの持ち帰り方法には主に次の2つがある。持ち帰ったファイルを再び実験室で必要とすることは、たぶんない。
- ブラウザで自分のウェブメールにログインし、ファイルを添付して送付する (ブラウザで利用できるGoogle Driveなどのオンラインストレージサービス、宅ふぁいる便などのファイル送信サービスもあり得る)
- 自分のUSBメモリに、ファイルをコピーして持ち帰る
- 「講義内演習課題」の事例に沿って、各種のグラフを作成する (グラフは表示させたら、右クリックで保存できるので、JPEGないしEPSで保存すると良い)
時間外演習
- 「講義内演習課題」と「データのとり方・まとめ方」に則して、考察を付記する。「講義内演習課題」に記されていない考察は、強調して記すこと。
- 調べてまとめる (宿題)
- 層別
- QCストーリー、QCストーリーとQC7つ道具の関係
- 管理図の種類、作り方、読み方
「時間外演習課題 解析事例」の各種グラフの再現(管理図含む)と、記載されている考察のグラフを見ながらの確認と、この事例のストーリー以外の可能性の検討(技術的詳細を調べる、あるいは想像するなど)TICデータのV1-V43のQC7つ道具+αでの分析
レポート
レポート提出要領:下記「XXXXXXX」は各自の学籍番号(半角文字)で置き換えること
項目 | 指定 |
---|---|
提出期限 | 次回の実験実施日の前日(月曜日)の午後6時00分まで (←よく寝て欲しいから、変えました) |
提出方法 | 電子メールに添付 (宛先は配付資料に記載) |
ファイル形式 | Wordファイル (LaTeXで作成する場合は、dvipdfmxでPDFに変換すること) |
メールの件名 | 統計実験1レポート提出(XXXXXXX) |
レポートファイルの名称 | 統計実験1_XXXXXXX.doc あるいは 統計実験1_XXXXXXX.docx |
提出部数 | レポートは各自1通ずつ。レポートの表紙に、共同実験者の学籍番号と氏名を記すこと。 |
参考資料
- 荒木孝治・編著 (2009) フリーソフトウェアRによる統計的品質管理入門 第2版
サポート欄
- 経営情報学実験室について、簡単なメモを起草した。
- Rコマンダーについて、簡単なメモが見つかった。Macユーザは注意が必要。
- RとRcmdrとその他のパッケージの組み合わせで、日本語の扱いについて不具合が生じている。
- qccをインストールすると、RcmdrPlugin.QCtoolsでパレート図が描けるようになる。
- すべてをインストールすると、日本語を含むデータファイルをメニューで読み込めた、という例がある。
- Rの2.13.0もしくはそれより前のバージョンを用いれば、不具合が解消されるとのこと。(むしろRコマンダーのmultilingualな対応が、2.13.1以降に追いついていない、とも)
- 10月実施の班では必要なソフトウェアのダウンロードとインストールを、実験中に各自が行うこととしたが、その翌週以降、約2週間以上、ネットワーク機器の障害が発生した。念のため、12月実施の班では多くのペアでその作業が不要となるよう、アンインストールせずにそのままにしてある。