統計工学実験 第一週

前後関係

まず日本の品質管理の領域では

  • 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週の実験内容についてのメモ、旧版)
  2. 「講義内演習課題」(これの内容が終わったら、帰ってもいい)
  3. 「時間外演習課題 解析事例」(時間が余ったら、こっちも終わらせて帰るといい)
  4. 「データのとり方・まとめ方」(レポートの考察を書く際の参考資料になるかも、と配布した)
  5. 「統計工学実験第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顧客分類2L0でコード化されている、数字の大きさに意味なし
V2住居数大きいほど住む箇所が多い
V3世帯構成員数の平均人数
V4世帯構成員の平均年齢L1でコード化されている、年齢
V5顧客分類1L2でコード化されている、数字の大きさに意味なし
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:分類を表す数字なので、大小関係に意味がなく、名義尺度である。そのままでは説明変数にならない。

ValueLabel
1High Income, expensive child
2Very Important Provincials
3High status seniors
4Affluent senior apartments
5Mixed seniors
6Career and childcare
7Dinki's (double income no kids)
8Middle class families
9Modern, complete families
10Stable family
11Family starters
12Affluent young families
13Young all american family
14Junior cosmopolitan
15Senior cosmopolitans
16Students in apartments
17Fresh masters in the city
18Single youth
19Suburban youth
20Etnically diverse
21Young urban have-nots
22Mixed apartment dwellers
23Young and rising
24Young, low educated
25Young seniors in the city
26Own home elderly
27Seniors in apartments
28Residential elderly
29Porchless seniors: no front yard
30Religious elderly singles
31Low income catholics
32Mixed seniors
33Lower class large families
34Large family, employed child
35Village families
36Couples with teens 'Married with children'
37Mixed small town dwellers
38Traditional families
39Large religous families
40Large family farms
41Mixed rurals

L1:大きさが年齢の順なので、そのまま説明変数に使える。

120-30 years
230-40 years
340-50 years
450-60 years
560-70 years
670-80 years

L2:数字は分類を表すだけなので、連続尺度でも順序尺度でもなく、名義尺度。そのままでは説明変数にならない。

1Successful hedonists
2Driven Growers
3Average Family
4Career Loners
5Living well
6Cruising Seniors
7Retired and Religeous
8Family with grown ups
9Conservative families
10Farmers

L3:順序尺度。このまま連続尺度の説明変数として用いる。

00%
11 - 10%
211 - 23%
324 - 36%
437 - 49%
550 - 62%
663 - 75%
776 - 88%
889 - 99%
9100%

L4: 順序尺度。今回はこのまま連続尺度の変数として用いる。

0f 0
1f 1 - 49
2f 50 - 99
3f 100 - 199
4f 200 - 499
5f 500 - 999
6f 1000 - 4999
7f 5000 - 9999
8f 10.000 - 19.999
9f 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,]

講義内演習

  1. R言語のインストール (インストール済みのPCでは、この作業はパスできる)
    • CRANからRのダウンロードとインストール。
    • インストールしたのRのショートカットをデスクトップに作成し、“–sdi”というオプションつきで起動するように編集する
      1. インストールしたフォルダの中でRgui.exeを見つける。
      2. Rgui.exeのショートカットをデスクトップに作成する。(作成してから移動してもいい)
      3. 「Rgui.exeのショートカット」という名称を「実験用R」と変更しておくと、既にインストール済みだったRと区別がつく。
      4. ショートカットを右クリックし、プロパティを表示させ、「リンク先」の中の「“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)
    • データのダウンロード。
  2. RコマンダーのQC7つ道具プラグイン(パレート図、グラフ、ヒストグラム、散布図)を使ってみる。
    • R 2.13.0以降では、Rコマンダーで日本語を含むデータファイルを読み込むことができないことがある。ここにある手順に従って、CSVファイルをExcelで開いて、コピーしてクリップボード経由でインポートすることになる。ご不便をおかけして申し訳ない。上のパッケージをすべてインストールした後に、日本語を含むファイルの読み込みに成功する場合があることが分かっている。
    • グラフの持ち帰り方法には主に次の2つがある。
      • 描画したグラフの上で右クリックをして表示されるメニューで、「メタファイルに保存」(Word等で再利用する場合)か「ポストスクリプトファイルに保存」(LaTeXで再利用する場合)を選ぶ。グラフ1枚ごとに1ファイル保存し、すべて保存し終わったら、圧縮フォルダなどを作成して持ち帰ることになる。
      • 描画したグラフの上で右クリックをして表示去れるメニューで、「メタファイルにコピー」を選び、Wordなどに「貼り付け(P)」る。すべてのグラフを1つのWordファイルに入れて持ち帰ることになる。
    • ファイルの持ち帰り方法には主に次の2つがある。持ち帰ったファイルを再び実験室で必要とすることは、たぶんない。
      • ブラウザで自分のウェブメールにログインし、ファイルを添付して送付する (ブラウザで利用できるGoogle Driveなどのオンラインストレージサービス、宅ふぁいる便などのファイル送信サービスもあり得る)
      • 自分のUSBメモリに、ファイルをコピーして持ち帰る
  3. 「講義内演習課題」の事例に沿って、各種のグラフを作成する (グラフは表示させたら、右クリックで保存できるので、JPEGないしEPSで保存すると良い)

時間外演習

  1. 「講義内演習課題」と「データのとり方・まとめ方」に則して、考察を付記する。「講義内演習課題」に記されていない考察は、強調して記すこと。
  2. 調べてまとめる (宿題)
    • 層別
    • QCストーリー、QCストーリーとQC7つ道具の関係
    • 管理図の種類、作り方、読み方
  3. 「時間外演習課題 解析事例」の各種グラフの再現(管理図含む)と、記載されている考察のグラフを見ながらの確認と、この事例のストーリー以外の可能性の検討(技術的詳細を調べる、あるいは想像するなど) TICデータのV1-V43のQC7つ道具+αでの分析

レポート

レポート提出要領:下記「XXXXXXX」は各自の学籍番号(半角文字)で置き換えること

項目指定
提出期限次回の実験実施日の前日(月曜日)の午後6時00分まで (←よく寝て欲しいから、変えました)
提出方法電子メールに添付 (宛先は配付資料に記載)
ファイル形式Wordファイル (LaTeXで作成する場合は、dvipdfmxでPDFに変換すること)
メールの件名統計実験1レポート提出(XXXXXXX)
レポートファイルの名称統計実験1_XXXXXXX.doc あるいは 統計実験1_XXXXXXX.docx
提出部数レポートは各自1通ずつ。レポートの表紙に、共同実験者の学籍番号と氏名を記すこと。

参考資料

サポート欄

  • 経営情報学実験室について、簡単なメモを起草した。 
  • Rコマンダーについて、簡単なメモが見つかった。Macユーザは注意が必要。
  • RとRcmdrとその他のパッケージの組み合わせで、日本語の扱いについて不具合が生じている。
    • qccをインストールすると、RcmdrPlugin.QCtoolsでパレート図が描けるようになる。
    • すべてをインストールすると、日本語を含むデータファイルをメニューで読み込めた、という例がある。
    • Rの2.13.0もしくはそれより前のバージョンを用いれば、不具合が解消されるとのこと。(むしろRコマンダーのmultilingualな対応が、2.13.1以降に追いついていない、とも)
  • 10月実施の班では必要なソフトウェアのダウンロードとインストールを、実験中に各自が行うこととしたが、その翌週以降、約2週間以上、ネットワーク機器の障害が発生した。念のため、12月実施の班では多くのペアでその作業が不要となるよう、アンインストールせずにそのままにしてある。