Chap1 とにかく使ってみよう

コンテンツ

1.1 はじめに
1.2 データを眺めてみる
1.3 データを要約してみる
1.4 グラフを描いてみる
1.5 データを操作してみる
1.6 まとめ

1.1 はじめに

S-PLUSとはどのようなものなのか,今までS-PLUSに触れたことのない方には想像もつかないと思われる.そこで,まずは実際にデータを用いていくつかの簡単な統計的な分析をしてみることで,S-PLUSを体験してみよう.

[一番上へ]

1.2 データを眺めてみる

これからこの章を通して用いるデータは,1990年4月のConsumer Reportsからとられた車の情報である.あなたがこのデータを手に入れたときどうするだろうか,まずは全体をざっと眺めてみようとすると思う.そこで実際にこのデータを眺めてみる.

この章では,S言語の説明は最小限しか行わない.もし実際にこの章に書いてあることを試してみたいのならば,S-PLUSを起動し,コマンドウィンドウ(説明の順序が前後してしまいますが,起動の仕方は2.2を参照してください)の一番下に表示される>の後に,この章で説明したコマンドを入力したのち,Enterキーを押すと,同じ出力を得ることができる.#の後は入力したことの説明なので無視して構わない.

さて,早速次のように入力してEnterキーを押してみる.

> cu.summary    #車の情報のデータを表示する
すると,入力した行に続いて次のような出力を得る.
			Price   Country Reliability Mileage    Type 
       Acura Integra 4 11950     Japan Much better      NA   Small
          Dodge Colt 4  6851     Japan          NA      NA   Small
          Dodge Omni 4  6995       USA  Much worse      NA   Small
        Eagle Summit 4  8895       USA      better      33   Small
       Ford Escort   4  7402       USA       worse      33   Small
        Ford Festiva 4  6319     Korea      better      37   Small
          GEO Metro  3  6695     Japan          NA      NA   Small
          GEO Prizm  4 10125 Japan/USA Much better      NA   Small
         Honda Civic 4  6635 Japan/USA Much better      32   Small
       Hyundai Excel 4  5899     Korea       worse      NA   Small
       Mazda Protege 4  6599     Japan Much better      32   Small
      Mercury Tracer 4  8672    Mexico      better      26   Small
   Mitsubishi Precis 4  5899     Korea       worse      NA   Small
       Nissan Sentra 4  7399 Japan/USA Much better      33   Small
      Pontiac LeMans 4  7254     Korea  Much worse      28   Small
       Subaru Loyale 4  9599     Japan Much better      25   Small
        Subaru Justy 3  5866     Japan          NA      34   Small
      Toyota Corolla 4  8748 Japan/USA Much better      29   Small
       Toyota Tercel 4  6488     Japan Much better      35   Small
      Volkswagen Fox 4  7225    Brazil          NA      NA   Small
     Volkswagen Golf 4  8695    Mexico     average      NA   Small
    Volkswagen Jetta 4  9995   Germany     average      26   Small
   Chevrolet Camaro V6 10995       USA  Much worse      NA  Sporty
   Chevrolet Camaro V8 11545       USA  Much worse      20  Sporty
 Chevrolet Corvette V8 31979       USA  Much worse      NA  Sporty
         Dodge Daytona  9745       USA  Much worse      27  Sporty
 Dodge Daytona Turbo 4 12895       USA  Much worse      NA  Sporty
         Eagle Talon 4 12995       USA          NA      NA  Sporty
        Ford Mustang 4  9456       USA  Much worse      NA  Sporty
       Ford Mustang V8 12164       USA  Much worse      19  Sporty
            Ford Probe 11470       USA     average      30  Sporty
       Ford Probe GT 4 14726       USA     average      NA  Sporty
           GEO Storm 4 10390     Japan          NA      NA  Sporty
  Honda Civic CRX Si 4  9410     Japan Much better      33  Sporty
Honda Prelude Si 4WS 4 13945     Japan Much better      27  Sporty
      Mazda MX-5 Miata 13800     Japan          NA      NA  Sporty
          Mazda MX-6 4 12279 Japan/USA Much better      NA  Sporty
            Mazda RX-7 17880     Japan Much better      NA  Sporty
        Nissan 240SX 4 13249     Japan     average      24  Sporty
       Nissan 300ZX V6 27900     Japan          NA      NA  Sporty
 Nissan Pulsar NX XE 4 12249     Japan     average      NA  Sporty
        Plymouth Laser 10855       USA          NA      26  Sporty
           Porsche 944 41990   Germany          NA      NA  Sporty
           Subaru XT 4 13071     Japan          NA      28  Sporty
                        Price   Country Reliability Mileage    Type 
   Toyota Celica GT-S 4 12268     Japan          NA      NA  Sporty
         Toyota Supra 6 22860     Japan      better      NA  Sporty
   Volkswagen Corrado 4 17900   Germany          NA      NA  Sporty
       Volkswagen GTI 4  9995    Mexico          NA      NA  Sporty
              Audi 80 4 18900   Germany          NA      27 Compact
              Audi 90 5 23990   Germany          NA      NA Compact
             BMW 325i 6 24650   Germany      better      NA Compact
        Buick Skylark 4 10565       USA       worse      23 Compact
    Chevrolet Beretta 4 10320       USA  Much worse      26 Compact
   Chevrolet Cavalier 4  8620       USA  Much worse      NA Compact
   Chrysler Le Baron V6 10945       USA      better      25 Compact
   Dodge Shadow Turbo 4  8845       USA     average      NA Compact
           Ford Tempo 4  9483       USA       worse      24 Compact
         Honda Accord 4 12145 Japan/USA Much better      26 Compact
            Mazda 626 4 12459 Japan/USA      better      24 Compact
   Mercedes-Benz 190E 6 31600   Germany     average      NA Compact
    Mitsubishi Galant 4 10989     Japan Much better      25 Compact
    Mitsubishi Sigma V6 17879     Japan      better      21 Compact
        Nissan Stanza 4 11650     Japan Much better      21 Compact
    Oldsmobile Calais 4  9995       USA       worse      23 Compact
          Peugeot 405 4 15930    France          NA      24 Compact
             Saab 900 4 16995    Sweden       worse      NA Compact
       Saab 900 Turbo 4 26945    Sweden       worse      NA Compact
        Subaru Legacy 4 11499 Japan/USA Much better      23 Compact
         Toyota Camry 4 11588 Japan/USA Much better      27 Compact
            Volvo 240 4 18450    Sweden     average      23 Compact
        Acura Legend V6 24760     Japan Much better      20  Medium
             Audi 100 5 26900   Germany          NA      NA  Medium
             BMW 535i 6 33200   Germany          NA      NA  Medium
        Buick Century 4 13150       USA     average      21  Medium
       Buick Riviera V6 23040       USA     average      NA  Medium
   Cadillac Eldorado V8 28855       USA     average      NA  Medium
     Chevrolet Lumina 4 12140       USA          NA      NA  Medium
   Chrysler Imperial V6 25495       USA     average      NA  Medium
Chrysler Le Baron Coupe 12495       USA       worse      22  Medium
 Chrysler New Yorker V6 16342       USA     average      22  Medium
        Dodge Dynasty 4 12995       USA     average      NA  Medium
       Eagle Premier V6 15350       USA       worse      22  Medium
          Ford Taurus 4 12640       USA  Much worse      NA  Medium
         Ford Taurus V6 13195       USA     average      22  Medium
    Ford Thunderbird V6 14980       USA  Much worse      23  Medium
       Hyundai Sonata 4  9999     Korea          NA      23  Medium
        Infiniti Q45 V8 38000     Japan          NA      NA  Medium
        Lexus LS 400 V8 35000     Japan          NA      NA  Medium
                              Price   Country Reliability Mileage    Type 
       Lincoln Continental V6 29422       USA       worse      NA  Medium
          Lincoln Mark VII V8 29246       USA  Much worse      NA  Medium
                 Mazda 929 V6 23300     Japan Much better      21  Medium
         Mercedes-Benz 300E 6 39950   Germany  Much worse      NA  Medium
             Nissan Maxima V6 17899     Japan Much better      22  Medium
   Oldsmobile Cutlass Ciera 4 13150       USA       worse      21  Medium
Oldsmobile Cutlass Supreme V6 14495       USA          NA      21  Medium
                Peugeot 505 4 19945    France          NA      NA  Medium
                 Saab 9000S 4 25995    Sweden          NA      NA  Medium
              Sterling 827 V6 23550   England          NA      NA  Medium
            Toyota Cressida 6 21498     Japan     average      23  Medium
               Volvo 740 GL 4 21700    Sweden     average      NA  Medium
             Buick Electra V6 20225       USA     average      NA   Large
            Buick Le Sabre V6 16145       USA     average      23   Large
         Cadillac Brougham V8 27400       USA  Much worse      NA   Large
         Cadillac De Ville V8 26960       USA     average      NA   Large
         Chevrolet Caprice V8 14525       USA  Much worse      18   Large
   Ford LTD Crown Victoria V8 17257       USA     average      20   Large
          Lincoln Town Car V8 27986       USA     average      NA   Large
           Chevrolet Astro V6 13790       USA  Much worse      NA     Van
      Chevrolet Lumina APV V6 13995       USA          NA      18     Van
              Dodge Caravan 4 11995       USA     average      NA     Van
       Dodge Grand Caravan V6 15395       USA     average      18     Van
             Ford Aerostar V6 12267       USA     average      18     Van
                 Mazda MPV V6 14944     Japan Much better      19     Van
           Mitsubishi Wagon 4 14929     Japan          NA      20     Van
              Nissan Axxess 4 13949     Japan          NA      20     Van
                 Nissan Van 4 14799     Japan          NA      19     Van
         Volkswagen Vanagon 4 14080   Germany          NA      NA     Van
1行目を見ると,このデータがどのような情報を持っているかが分かる.1列目は空白になっているが,2行目以下を見ると,車の名前であることが分かる.2列目のPriceは価格の情報である.3列目のCountryは製造した国である.4列目のReliabilityは信頼性を表す.5列目のMileageは燃費をあらわす(ちなみに単位はmiles/gallonである).6列目のTypeは車の一般的なタイプを表している.
[一番上へ]

1.3 データを要約してみる

さてデータを眺めることはできたが,このままではこのデータがどのような情報を持っているのか容易には分からない.そこでデータを要約してみる.

次のように,入力しEnterを押す.

> summary(cu.summary) #データの要約をする

すると,次のような結果が出力される.

      Price           Country      Reliability       Mileage           Type   
    Min.: 5866         USA:49    Much worse:18      Min.:18.00   Compact:22  
 1st Qu.:10125       Japan:31         worse:12   1st Qu.:21.00     Large: 7  
  Median:13150     Germany:11       average:26    Median:23.00    Medium:30  
    Mean:15743   Japan/USA: 9        better: 8      Mean:24.58     Small:22  
 3rd Qu.:18900      Sweden: 5   Much better:21   3rd Qu.:27.00    Sporty:26  
    Max.:41990       Korea: 5          NA's:32      Max.:37.00       Van:10  
                   (Other): 7                       NA's:57.00               
この出力を見ると,このデータの各情報の基本統計量や水準ごとの度数が分かる.

次に,出力について説明する."Price"や"Mileage"のようにすべて数字のデータに関しては,

の各基本統計量が分かる."Country","Reliability","Type"のようにすべて文字のデータに関しては,水準名とそれぞれの度数が分かる.たとえば,"Country"には次の水準がある. (Other)はその他だが,その他に含まれる国を見たいならば,次のように入力してEnterを押すとよい.
> summary(cu.summary$Country)   #Countryについてさらに詳細に見る
 Brazil England France Germany Japan Japan/USA Korea Mexico Sweden USA 
      1       1      2      11    31         9     5      3      5  49
(Other)に含まれていた国は, であることが分かる.
[一番上へ]

1.4 グラフを描いてみる

次にグラフを描いてみる.たとえば"Price"の箱ひげ図を描いて,価格がどのように分布しているのかを見てみる."Price"についての箱ひげ図を描くには次のように入力してEnterを押す.
> boxplot(cu.summary$Price)     #Priceの箱ひげ図を描く
すると次のような箱ひげ図ができる.
図1.1 "Price"の箱ひげ図

作成した箱ひげ図を見てみると,5つの外れ値が存在することが分かる.では,この外れ値が何番目の車であるか,またその値段はいくらかを,図に重ね書きしてみる.各コマンドは少々複雑なので,試してみたい方は,コマンドの意味は考えずに同じように入力してそれぞれEnterを押してほしい.

> price = cu.summary$Price[rev(order(cu.summary$Price))][1:5]
> id = rev(order(cu.summary$Price))[1:5]
> text(25,price,label=id)
> text(75,price,label=price)
すると先ほどの箱ひげ図に番号と値段が書き込まれる.
図1.2 番号と値段が書き込まれた箱ひげ図

このデータの中で,一番値段の高い車は43番目の車で,値段は41900であることが分かったが,43番の車における他の情報を見るためには次のように入力してEnterを押す.

> cu.summary[43,]
すると43番目の車の情報が出力される.
            Price Country Reliability Mileage   Type 
Porsche 944 41990 Germany          NA      NA Sporty
この車は,ドイツ製のポルシェ944で価格は41900であり,信頼性と燃費の情報は欠損しており,スポーツタイプであることが分かった.なお,先ほどの入力で43を他の番号にすれば,その他の車の情報を取り出すこともできる.

S-PLUSでは,他にも散布図や水準ごとの箱ひげ図など,さまざまなグラフを描くことができる.

> plot(cu.summary$Price,cu.summary$Mileage,type="n")
> text(cu.summary$Price,cu.summary$Mileage,label=1:117) #散布図
図1.3 価格と燃費の散布図
> plot(cu.summary$Country,cu.summary$Price)     #国別の箱ひげ図
図1.4 国別の箱ひげ図
[一番上へ]

1.5 データを操作してみる

前節で描いた価格と燃費の散布図を見てみると,負の相関がありそうなことが分かった.そこで相関係数を計算してみようと考えたとする.S-PLUSでは相関係数を計算することももちろんできる.相関係数は次の入力によって計算する.

> cor(cu.summary$Price,cu.summary$Mileage)
するとなにやら英語の出力が返される.要約するとNA(欠損値)があるからうまくいかないと書いてある.統計において欠損値の扱いは慎重でなくてはならない.今回は欠損値を持つデータを削除してみる.ここから先もコマンドが少々複雑なので,意味は考えずに流れをつかんでほしい(そしてS言語の学習が進んだら戻ってきてその意味が分かるようになっていることを確認してほしい).

まず,NAを含むデータを削除してみる.

> cu.omit = na.omit(cu.summary) #NAを含むデータを削除
これだけで,NAを含むデータを削除できた.実際に削除できているか見てみる.
> cu.omit       #NAを除いたデータを表示
                           Price   Country Reliability Mileage    Type 
            Eagle Summit 4  8895       USA      better      33   Small
           Ford Escort   4  7402       USA       worse      33   Small
            Ford Festiva 4  6319     Korea      better      37   Small
             Honda Civic 4  6635 Japan/USA Much better      32   Small
           Mazda Protege 4  6599     Japan Much better      32   Small
          Mercury Tracer 4  8672    Mexico      better      26   Small
           Nissan Sentra 4  7399 Japan/USA Much better      33   Small
          Pontiac LeMans 4  7254     Korea  Much worse      28   Small
           Subaru Loyale 4  9599     Japan Much better      25   Small
          Toyota Corolla 4  8748 Japan/USA Much better      29   Small
           Toyota Tercel 4  6488     Japan Much better      35   Small
        Volkswagen Jetta 4  9995   Germany     average      26   Small
       Chevrolet Camaro V8 11545       USA  Much worse      20  Sporty
             Dodge Daytona  9745       USA  Much worse      27  Sporty
           Ford Mustang V8 12164       USA  Much worse      19  Sporty
                Ford Probe 11470       USA     average      30  Sporty
      Honda Civic CRX Si 4  9410     Japan Much better      33  Sporty
    Honda Prelude Si 4WS 4 13945     Japan Much better      27  Sporty
            Nissan 240SX 4 13249     Japan     average      24  Sporty
           Buick Skylark 4 10565       USA       worse      23 Compact
       Chevrolet Beretta 4 10320       USA  Much worse      26 Compact
      Chrysler Le Baron V6 10945       USA      better      25 Compact
              Ford Tempo 4  9483       USA       worse      24 Compact
            Honda Accord 4 12145 Japan/USA Much better      26 Compact
               Mazda 626 4 12459 Japan/USA      better      24 Compact
       Mitsubishi Galant 4 10989     Japan Much better      25 Compact
       Mitsubishi Sigma V6 17879     Japan      better      21 Compact
           Nissan Stanza 4 11650     Japan Much better      21 Compact
       Oldsmobile Calais 4  9995       USA       worse      23 Compact
           Subaru Legacy 4 11499 Japan/USA Much better      23 Compact
            Toyota Camry 4 11588 Japan/USA Much better      27 Compact
               Volvo 240 4 18450    Sweden     average      23 Compact
           Acura Legend V6 24760     Japan Much better      20  Medium
           Buick Century 4 13150       USA     average      21  Medium
   Chrysler Le Baron Coupe 12495       USA       worse      22  Medium
    Chrysler New Yorker V6 16342       USA     average      22  Medium
          Eagle Premier V6 15350       USA       worse      22  Medium
            Ford Taurus V6 13195       USA     average      22  Medium
       Ford Thunderbird V6 14980       USA  Much worse      23  Medium
              Mazda 929 V6 23300     Japan Much better      21  Medium
          Nissan Maxima V6 17899     Japan Much better      22  Medium
Oldsmobile Cutlass Ciera 4 13150       USA       worse      21  Medium
         Toyota Cressida 6 21498     Japan     average      23  Medium
         Buick Le Sabre V6 16145       USA     average      23   Large
                           Price   Country Reliability Mileage    Type 
      Chevrolet Caprice V8 14525       USA  Much worse      18   Large
Ford LTD Crown Victoria V8 17257       USA     average      20   Large
    Dodge Grand Caravan V6 15395       USA     average      18     Van
          Ford Aerostar V6 12267       USA     average      18     Van
              Mazda MPV V6 14944     Japan Much better      19     Van
さらにデータを要約してみる.
> summary(cu.omit)
      Price           Country      Reliability       Mileage          Type   
    Min.: 6319         USA:23    Much worse: 7      Min.:18.0   Compact:13  
 1st Qu.: 9599       Japan:14         worse: 7   1st Qu.:21.0     Large: 3  
  Median:11650   Japan/USA: 7       average:12    Median:23.0    Medium:11  
    Mean:12452       Korea: 2        better: 6      Mean:24.8     Small:12  
 3rd Qu.:14944      Sweden: 1   Much better:17   3rd Qu.:27.0    Sporty: 7  
    Max.:24760      Mexico: 1                       Max.:37.0       Van: 3  
                   (Other): 1                                               
どうやらNAを削除することに成功したようなので,早速相関係数を計算してみる.
> cor(cu.omit$Price,cu.omit$Mileage)    #相関係数を計算する
[1] -0.6765191
相関係数が計算でき,相関係数は-0.6765191であった.やはり価格と燃費の間には負の相関関係があることが分かった.

※注)実は相関係数は次のように入力することで計算することができるが,その値は先の結果とは異なる.その理由については課題とする.この課題はS-PLUSの理解と欠損値の扱い方の重要性を理解を深めてくれると考える.

> cor(cu.summary$Price,cu.summary$Mileage,na.method="omit")
[一番上へ]

1.6 まとめ

実際にデータを用いてS-PLUSを使ってみたが,基本的なことをするだけならば,1行のコマンドを入力するだけでいいことが分かっていただけただろうか?S-PLUSにはさらにGUIという,クリックひとつで様々な統計的な処理をすることができる.是非S-PLUSとこのS+rescueを有効に用いて行いたい統計解析をスマートに行ってほしい.

[一番上へ]