111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111S-PLUS の有効利用
上田太一郎
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111.

統計解析でよく使用される回帰分析を例にとれば，はじめに回帰式の良きを確認するための残差のヒストグラムを

S‑PLUS (および S 言語)はオブジェクト指向デー

求めるには以下のようになる.データ x ( 説明変数)，タ解析ソフトウェアである. 92 年の夏，偶然 S-PLUSy ( 目的変数)に回帰式をあてはめるには !sfit(x ， y)y)$r四とする.

を知った.データ解析の可能性が無限に広がる思いでとする.残差を求めるには lsfit(x ，あった.

残差のヒストグラムを求めるには hist

15 年前コンビュータは汎用機が全盛の時，ソフトは$res)(Isfit(x , y)とすればよい.この過程は図のようになる.

まだハードの付録のようなものであった.ある調査会

S 言語は AT&T ベル研究所の研究者]. M. チェン社から計算機システムの問い合わせがあった.計算機

ノ〈ースほかによって開発された問題解決型の不定形なシステムのリプレースを考えているが，条件としてデータ解析およびグラフィックスに大変有用な諸機能① SPSS をサポートできること②数量化理論をサポを備え，さらにオブジェクト指向を積極的にとり入れートできること③統計がわかる SE がサポートしてくたデータ解析用言語および環境である. S-PLUS はきれることであった.

らに統計機能・グラフィック機能を充実している[7].

(当時としては珍しくソフトサービスが条件であった. )幸い条件をすべてクリアでき，S-PLUS の特徴をもとめると以下のようになる.

(当時の計算機の商談は半年 -1 年かかったが， )わず① WS，パソコンをターゲットにした，数値演算，統か 2 ヶ月でほとんど他社にきまっていた 1 億円の計算

計解析，データの視覚化，探索的データ解析の 1000 以機システムを逆転受注した.

上の関数をサポートするオブジェクト指向対話データ

SPSS のおかげである.

その後リプレース時期がきたときは WS( ワークステ解析ソフトウェアである.

ーション)と SAS を提案した.昨年の秋，日本に上陸② S は対話型インタープリタ言語であり文法は C

した Visua!stat は安価でかつ使いやすいソフトと思言語に似ている.スカラ，ベクトル，マトリクスの違う.今後，注目すべきソフトと考える.

いを意識しないてオ吏用できる.

きて， S-PLUS であるが，筆者の担当業務では，人(UNIX , MS/DOS , WINDOWS とのインタフェ

事評価，データ(ソフトウェア試験に使用)作成，ソースがとられ使いよくなっている.

フトウェア信頼度成長モテルなどを求めるのに役に立FORTRAN のプログラムを呼ぶことができる.

った.統計解析手法(アルゴリズム)もいくつか考案できた.現在，ソフトウェアの生産性・品質向上ある

いはクライアント/サーバシステムの受注前活動のためにデータ解析を行なっている([l J ‑[5J ,[8J ,[9J).

④テキスト(ASCII)ファイルのデータの読み込み，書き込みが可能である.
⑤通常の統計解析，多変量統計解析の他，以下のような高度なデータ解析機能がサポートされている.
線形モデル

S-PLUS では人間の思考をそのまま S 言語で表現

実験計画

S

一般化線形モデル

PLUS においてはテータも関数もすべてオブジェク

一般化加法モデルすればよく，データを自在に生成・解析できる.

トとして扱う.何(オブジェクト)をどうするかを関局所回帰モデル数で示す.関数で処理した結果はオブジェクトであり，樹形ニモデル

この結果をどうするかも関数で指示すればよい.

非線形モデルうえだ

S-PLUS から C，たいちろう

生産管理部

三菱電機東部コンビュータシステム働

干 244 横浜市戸塚区川上町 87-1

1994 年 11 月号© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

(5)57
9

関数

オブジェクト関数

オブジェクトx, y→口豆己→

lsfit(x , y)$res• I hist コ→

hist(lsfit(x , y) 車問)

何をどうする

何をどうする結果(何)オブジェクト国 l

オブジェクトと関数

析(lsfit) ，正準相関分析(臼ncor) などを使用した.

2. 利用例

結論として，

2.
1 “入社時に学力優秀デキルと限らず?"
ーシステムエンジニアリング企業における入社試験

結果と数年後の能力評価との相関について一 [3J

日経新聞 (93 年 12 月 28 日夕刊)に載った見出し“入社時に学力優秀デキルと限らず? "“発掘は面接で“適性試験は有用性アリ"のようになった.新聞の反響は大きかった. 20 社(あるいは人)弱から電話，手紙などによる問い合わせがあった.今後プログラム製作の生産性は個人差が大きしまたシの課題として面接の評価に対しても同様に統計分析をステムの構築にあたっては，システムエンジニアリンしていきたいと考えている.また入社後の集合研修時

グの良否がシステムの出来不出来に関係すると言われの評価との相関も分析していきたい.ている.そのため，有能な人材を採用時にどのように2.
2 ソフトウェア(組合せ試験)のためのデータ作して見分けるかということが課題としてある.すなわ
ち入社試験の内容が将来の人材を見抜くものになって

成 [4J
某プロジェクトの支援をすることになった.膨大ないるかということである.そこで，入社試験の成績とデータを収集・加工・編集・出力するシステムの組合

入社後，何年か経ってからの能力評価との関係を調せ試験のためのデータを短期間(1ヶ月)で作成する必要があった.統計1. 5 M B ((300 本) x (500 コの数査・分析した.

I分野別専門技術」と「共通専門値/本) x (1 0 バイト/数値) )のデータが簡単に作成技術」および「業務遂行能力 j の 3 つについて個々にでき，当初の計画に比べて 5 -10 倍の効率向上が図れ評価している.

た.

能力評価制度では，I分野別専門技術」は設計・製作・試験技術など習得と訓練により培うもの，I共通専門技術」

はソフトウェア開発にあたって必須なもの(プロジェクト管理，エンジニアリング，コンピュータの知識など)，

I 業務遂行能力」は技術力ではなく業務を効果的に仕上げるための能力(責任感，コミュニケーション，リーダシップ)である.求める人材とは，これらを高い水準に維持していける者ということがいえる.

入社試験の内容は将来の人材を見分けることのできるものが望ましいが，これはなかなか難しい.そこで新卒採用にあたっては，いわゆる「良い学生 J (成績が良く，性格が良い)をターゲットとしてきた.試験科

以下はデータ作成のほんの数例である.わかりやすくするために簡単な事例とした.

① 500 から 1 までの数値を作成
data< 一 500: 1 で data というオブジェクトに 500から 1 までの数値(整数)が作られる.

(1 :500 とす

れば 1 から 500 までの数値)② 30 から 120 までの一様乱数を 1000 コ発生させ降順に並べる.

dat
a10<‑rev (sort(runif (1000, 30 , 120)))③(気温・雨量・ S02 のような)時系列データを 5000コ発生させる.

*100目はプログラマ適性試験(適性，スピード，正確度)

timeseries<‑sar4 (5000)と「良い学生」を選別するための基礎学力(英語，数sar4 はユーザ関数で以下のようにして作った.

学，国語)である.これらにそれぞれ基準点を設け，これをクリアーした者を合格としている.この外に面sar4< ー function (x) {arima.sim(x , model=list(ar=c(1. 2 ， -.8 ， .4 ， .15)))} データ(オブジェクト)

接を行なっているが，面接評価は数値化していないのを 3.5 インチフロッピーに書き込むには data 10 ならで取り上げなかった.会社の発足時から能力評価の検

write(data10, “ data 10")討を行ない，昭和 63 年度から能力評価を行なってき!copydat
a10 a:とすればよい.

た.

求める人材を能力制面が高い者ととらえ，この評価(注)!copy でパソコンの OS(MSDOS) のコマンドを呼んでいる.

データと入社試験の成績データとの相関分析を行なっ

読者諸氏は上の課題に対してどう対処しますか?

た. S-PLUS の関数としては相関行列 (cor) ，回帰分

手作業でやるにはつらく根気がいる .C あるは FOR580(6)© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

オベレーションズ・リサーチ

TRAN でプログラムを作りますか?

上のようにさまざまな要求に対応するために，そのつどプログラムを修正・コンパイル・リンク・実行しますか?

AIC (赤池) :nlogσ+2ρ(nlog (~e/) +2 ρ)
TIC (竹内) :AIC+ρ(ρ - 2)/nMDL(Rissanen) :(n/2)logσ+(ρ/2) log2(n)1 一 ( 1‑R2)

佐和の予測用修正重相関係数2.
3 ソフトウェア信頼度成長モデル(n‑2) (n- l) /{(nわれわれソフトウェア生産に従事するものにとって

竹内 :σ2(n 2 -n

大規模なソフトウェアプログラムのパグ収束時期およ(n‑p‑l)}

び、その時の累積パグ数を予測することは切実な問題でρρ2)(n- ρ-1) }2)/{n(n‑p‑2)1‑

芳賀ほかの自由度 2 重調整重相関係数(1‑R2) (n‑ 1) (n+p+ 1)/ある.
ソフトウェアの累積パグ数をロジスティック，ゴン

ベルツおよび遅れ S 字に当てはめた実プロジェクトでの例である .

x=1 ， 2 ，……，{(n‑p‑1) (n+l)}
Schwarz:ρlogn+nlogσ

11 に対して y= 7 ,ここで，R重相関係数

23 , 40 , 61 , 83 , 99 , 103, 125, 127, 146, 169 であつ

数の個数

ei

残差，

(1+9.665 ・った.ロジスティックでは y=175.86/exp(一 0.391x)) ，3.
06(0.
788)X) ，ゴンベルツでは y=194.4exp (遅れ S 字てすま y=18 1. 62(1-(1+0.
298x) exp (‑0.298x))

サンプル数，

ρ ・変σ: 残差の標準偏差2.
5 分散分析表を求める万能関数と適用
筆者は統計解析手法のなかで重回帰分析，判別分析，

S-PLUS によ

そして実験計画法(および分散分析)が有用であるとる関数(遅れ S 字型曲線の係数を求める)は次のよう思い業務に生かしている.特に， OR"? ンは実験計画法になる.

をもっと活用することを強〈希望する.実験計画法でfunction (x , y , P1 ，となった.

nρ2){d<data. frame(x=x , y=y)parameters (d)<‑list (ρ1=ρ1 ，ms (-(ρ1(ρ2は人 (OR "?ン)の知恵が発揮される.実験計画法は化学や医学などだけでなく企業の経営・営業支援などで

ρ2=ρ2)*(1 一( 1-ρ2 *x) *exp*x))‑y) 2 , d)}

もっと使用されてもよいと思う.
きて，実験計画法データを解析するには分散分析を行なう.分散分析は筆算あるいは電卓で可能であるが，

x: 1- η (n :カレンダータイムのポイン

電卓などによると計算の方ばかり目が向き，実験計画ト数)， y:x に対応した累積パグ数， ρ1 ， ρ2 :初期値の理解がおろそかになるおそれがある.実験の計画

S-PLUS のユーザはこのコードを参考にして任意(OR"?ンの知恵)に重点を置くべきであって，計算はのソフトウェア信頼度成長モデルさらにより一般化しコンビュータソフトウェアにやらせるのがベターであた非線形回帰関数を作ることができる[ 4].

ると考え，データと計画行列などを指定し分散分析表

ここで，を求める万能関数を作成した.多元配置，直交表，擬2.
4 重回帰分析変数選択基準

因子法，分割!法，直積法などによるデータはすべてこ

重回帰分析(数量化理論 I 類を含む)において最適の関数が処理してくれる.

[7J を読みながら延べ 2 週な変数(数量化理論 I 類ではアイテム)を選択する問間でこの関数を作った.関数 anovaall は以下のように題は重要なテーマで、ある.変数選択基準として Mal­なっている.わずか 3 ステップからなるこの関数は大lows の Cp (I eaps) ，赤池の AIC，竹内の TIC，佐和変便利であり，愛用している.の予測用修正重相関係数，芳賀ほかの自由度二重調整

anovaall<ー function (x , y , ex)

済重相関係数などが提案され実用に供きれている.上{fac<‑design(y)の基準を含めた提案されている各種規準を S-PLUSdata.fac<‑data.frame (fac, x)で関数を作り数 10 ケースについて確認した.多少の相違はあるものの，ほとんど同じ変数の組を選択した.
変数選択規準には次のものがある.

(竹内啓編「統計学辞典」を参照.規準値が大きくあるいは小さくなる変数の組合せを選択すればよい.

うがよいことを示す.)
1994 年 11 月号

は寸、きくなるほ

summary(aov(paste(日ここでx: データ ， y"

計画行列ex) , date.
fac))}ex

式例“ A+B ぺ“
適用例として，生産性向上のために WS の導入効果

データの統計的検定を紹介する.ソフトウェア製造のための WS が旧式になってきたので新しい WS を導© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

(7)581

入することを検討した.ある生産性向上を示す指標データ(大きい値ほどよい)をとった.

2o33312927302641293828403945
平均値を見ると向上しているように思われる.新ws が生産性向上に寄与しているかを統計的に検定した.

2 つの標本の平均値の差の有無は t 検定によってわかる.あるいはすこしおおげさかも知れないが 1 元
配置データの分散分析によってもよい.

t 検定(t. test) は附 145678910有無無無無有有有111213141516有無有無有無有無有無有無有有無無無無PM 晴
PM 雨
土日以外 PM 晴

有無無有有無無有有無無有有

土日

夜夜雨
晴

土日以外

夜雨

AM 雨日
AM 雨
土日以外 A M 雨
土表の見方は例えば，<‑c (20 , 33 , 31 , 29 ,日土土P乱4晴日P乱4日青土日以外 P恥f
土夜雨日青393037304419323038293831375037411242l325193320302241

NO.16 はエンド陳列は無し，値下げ有り，広告有り，土曜日，時間帯は夜，天候は晴で，牛27, 30, 26) , ws2<‑c(41 , 29, 38 , 28 , 40, 39 , 45)

乳は 37 本，インスタントラーメンは 15 ::J，清涼飲料はとして t. test(ws1 , ws2) とすればよい.危険率 1%

41 本の売上だったことを示す. )1頂序は NO.1 -16 をラ(p-value=0.0079) で両者に差があることがわかンダムにして実施された. 1 ヵ月でデータが集まった.分

る.分散分析 (anovaa ll)では散分析表を求めてどの要因が販売個数を多くするのに効

anovaall (c( ws l, ws2), c( rep (l, 7) , rep(2 ,いているかを調べた.販売個数を多くする要因と水準は，7)) , ".")と指定すると，次のような分散分析表が得ら

午乳では値下げ・広告有り，インスタントラーメンでは曜日(土日以外)・時間帯 (PM) ，清涼飲料では値下げ・天れる.
分散分析表

DfAResidu

12候(晴)であることがわかった.同時に，効いていない要SumofS
qMeanSq FValue Pr(F)292.
571292.
57
1 10.
122 0.
0079346.
857 28.
905

因もわかった.
(注)清涼飲料を例にとれば anovaall の実行は以下のようになる.データは y<‑c (40 , 41 , 48 , 50, 37,

分散分析表からも危険率 1 % (Pr(F)=0.0079) で両41 , 12, 42 , l3, 25, 19, 33 , 20, 30, 22 , 41)と定義す者に差があることがわかる.検定結果を参考にし，そる.計画行列は割り付け表で第 1 ・ 2 ・ 3 水準に対応しての他導入効果などを検討し導入にふみ切った.

しもう 1 つの適用例を紹介する.あるスーパーが行な

2，3 とする.

(これを dmat とする)そうすると

anovaall(y.dmat.".")で分散分析表が得られる.分散った販促効果を実験計画法を用いて定量的に捉え売上分析表をみると B ，の増加に成功した例である.そのスーパーでは牛乳，差にプールする.プールするには anovaall (y.dmat.

インスタントラーメン，清涼飲料の売上増加対策とし“ B+G")

G 以外の要因は効いていないので誤と指定すればよい.てエンド陳列(有，無)，値下げ(無，有)，チラシな分散分析表

どによる広告(無，有)をとりあげた.

(( )内は水準)これらはスーパーでコントロールできる要因なので制御要因である.その他の要因として曜日(士，日，土日以外)，時間帯 (AM ，PM ,夜)，天候(晴(曇を含む)，雨)をとりあげた.割り付け表(要因の種類と，実験条件)は以下のようになった.

CD

名称 エンド 値下げ 広告練列曜日ABEG

時間帯 天候有有有

582(8)

無有
無無無有

デ更(実ーし測タて{い直(売をる上)多個少数変)
牛乳げはタンi 清涼(トラーメン i 飲料NO
123

土日AM 晴A M 日青土日以外 A恥fABCDEG1Il22l

Res 7割り付け表記号F)Df SumofSq MeanSq FValue Pr(日青33 1
9 4026 1
9 4
131 1
6 4
86.
0
00
3
6.
0
00 3
52
9.
0
00 52
9.
0
0
0
5.
0
00
2
5.
0
00 24.
954
9.
90
91
58.
342 7
9.
171720.
8
20 7
20.
8
200.
3
31
34.
86800.
23010.
04560.
72866.
63320.
58290.
06310.
64610.
95570.
51590.
0367760.
6793. 関数の作成
過去 2 年間で以下のような関数を作り業務に役立てている.

AIC による分割j 表解析，非線形回帰，アイテム・カテ© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

オベレーションズ・リサーチ

ゴリデータの作成，数量化理論 III'N 類，ソフトウェア信④プロトタイプ開発に適している.実現可能性の早期

頼性成長モデル曲線，回帰分析変数選択規準，4'-IJ 別分析変確認に有効と思う.非定型なデータ解析業務に威力を発数選択規準，外れ値の簡易検出法， AR(ρ) モデルにおけ揮する.

BT (Bradley⑤各種関数に AIC が採り入れられているのは嬉しいTerry) モデル，スーパーなどにおける最適なレジ数決定

が，数量化理論，因子分析，田口メソッドの関数も欲し

法，商品の最適仕入れ個数決定法などし、.

る ρ の決定，分散分析， AHP モデル，

例えば，数量化理論 1 -IV 類は 20 年前，FORTRAN⑥コーザサポートは良い.誠意あるサポートに敬意をで開発した経験がある.数量化理論IV類は 500 ステップ表します.

位だった. S-PLUS では数ステップである.ソースを載謝辞本稿執筆の機会を提供していただきました OR 学

せておくので参考にしていただきたい.

会 OR ソフトウェア研究部会主査八巻直一氏および当社

hayashi4<function(x);1:93-1-10 作成上回

{eigen(contc(x))}
contc< 一 function (x)取締役生産管理部長黒田寿一氏，また原稿を読んでいただき，貴重なコメントをいただきました編集委員会に感;
1:eij要素行列を調整す謝いたします.

る

参考文献

{rsum<-apply(x , 1 , sum) ;1:行の和diagx< 一 diag(x)#対角要素を取り出す

diagy< 一 diagx-rsum#対角要素行の和diag(x)<一 diagy#x‑max(x)}#各要素からデータの[lJ 上回太一郎 (1993) :“ S-PLUS による回帰分析変数選択の試み七品質 Vo 1. 23，NO.3[2J 上田太一郎 (1993) ・“残差を用いた回帰分析変数選択情報処理学会第 47 回(平成 5 年度後期)全国大会予稿集

最大値を引く

[3J 上田太一郎，小林整功 (1993) :“システムエンジニ
4. 所感

アリンク、企業における入社試験結果と数年後の能力

筆者はノートパソコンで S-PLUS を使用している.使

成 5 年度後期)全国大会予稿集用した感想を述べる.

①パワフルなソフトウェアである. 15 年前の汎用機時

代ほほ 1 カ月かかる解析が 1 日でできる.豊富な関数がサポートされている.線形代数を体得するのに適している.統計手法の開発に適している.アルゴリズム記述言語の 1 つの候補である.

評価との相関について七情報処理学会第 47 回(平dimension, goto 文， if 文から解放された.
②オブジェクト指向ソフトウェアのお手本となる.研究者，実務家にとっては格好の題材になると思う[7].

③マニュアルは完備しているが，短時間で使いこなせるようになる仕掛けが欲しい.マニュアルの邦訳は S

PLUS の普及のため必須である.

(邦訳中とのこと)例題集もあれば親切である.筆者の経験では初心者に，手とり足とりでフォローしたところ 2 時間で使用可能になった.

[4J 上回太一郎(1 993) :"S-PLUS の有効利用七日本
計算機統計学会

第 7 回シンポジウム予稿集[5J 上回太一郎，小林整功 (1994) :“ソフトウェア業界の特質について

判別分析変数選択規準とその適用

例ーヘ情報処理学会第 49 回(平成 6 年度後期)全国大会予稿集[6J 渋谷政昭，柴田里程著 (1992) :rs によるデータ解析 J ，共立出版[7J ].M チェンパース +T. ].へイスティ編

柴田里

程訳 (1994) rs と統計モデル J. 共立出版

[8J 上回太一郎(1 994) :“ S-PLUS の有効利用， 94 年
度第 1 回 (OR 学会)ソフトウェア研究部会発表資料[9J 情報処理振興事業協会 (1994) :r先端技術の現状と製品化に関する調査報告書J

統計の教科書， Technometrics 誌などて引用される著名なデータが組み込まれていて大変便利である.

1994 年 11 月号© 日本オペレーションズ・リサーチ学会. 無断複写・複製・転載を禁ず.

(9)583