JMP 3.2入門

(c)Copyright 1996 高井省三


[1]JMP 3.2について

  1. はじめに
    JMPは対話的な統計的グラフィックスのためのソフトウェアだ。JMPの機能には,(1) データ編集・加工のためのスプレッドシート,(2) データ解析のためのグラフ的,統計的方法,(3) データの部分集合を表示させるオプション,(4) アプリケーション間でデータを受渡しする道具,がある。しかし,分析手法としては,(1) 分布の解析,(2) 曲線のあてはめ,(3) 重回帰,分散分析,(4) 主成分分析,(5) 2次元散布図マトリックス,(6) クラスター分析といったところで全ての統計手法を網羅したものではない。詳しくは後述するヘルプの「Stat Guide」を読んでみよう。JMPにない手法で分析したいときは,JMPの開発元であるSAS InstituteのSASを大型計算機で実行すればよいだろう。
  2. ヘルプ
    JMPを使っているときに不明なところがでてきたら,図表や例を含むヘルプファイルを呼び出してみよう。4つの方法でJMPの使い方を知ることができる。ヘルプファイルはもちろん英語だが,非常によくできているので,ぜひ活用されたい。 

[2]データ表をつくる

新規にJMPデータをつくる方法と,既存のデータをインポート(Import)してJMPデータをつくる方法をみてみよう。

  1. 新規データの入力
    JMPを直接起動したとき画面は新規JMPデータ表を用意している。
    Fileメニュー⇒Newコマンドを指定しても新規JMPデータ表が準備される。値を入力するには後述の変数の定義をする必要がある。新規のデータ表の第1カラムは変数名Column 1,尺度水準Continuous(C)になっている。
    データ数に相当するRowsにポインタをおいてクリックしてみる。

    指示に従ってダブルクリックすると,次のように4列の領域が確保される。

    今度は項目数に応じてColumnを増やしてみよう。Column 1の隣の空きcolumnをクリックしてみると,

    ダブルクリックして新項目を確保しよう。

    この方法では新カラムは1つづつしか増やせなくてめんどうだ。そこでいっぺんに新カラム,新行をあらかじめつくってみよう。新カラムの追加はColsメニュー⇒New Columnコマンドで,新しい行の追加はRowsメニュー⇒Add Rowsコマンドをクリックする。新たにつくられるセルには欠測値−「・」中黒(なかぐろ)−が埋め込まれる。これを上書きして値を入力していく。


  2. 既存のJMPファイルを開く
    Fileメニュー⇒Open...コマンドをクリックする。
  3. インポート
    まず,既につくってあるデータ(Microsoft Excel, StatView, DeltaGraph, ...)をそれぞれのアプリケーションからテキストデータとして書き出してみよう。テキストデータとはフィールドがタブ(tab)で,レコードがリターン(return)で区切られているマックの標準データだ。このデータはどのアプリケーションにも互換性がある万能型だ。
    Fileメニュー⇒Import⇒Text Fileコマンドをクリックする。


    他のアプリケーションで書き出したテキストデータの第1行目のレコードにラベルがあるときは,それも読むかどうかを指定できる。ラベルとは変数(カラム)の名札のことで,各ラベルは英数字で31文字までがJMPのラベルとして取り込まれる。上の図では,入力テキストデータはラベルを持たないので,データだけを読むように指示している。ラベルがあるのにData Onlyオプションで読むと,ラベルもデータとして読まれるし,ラベルがないのにLabelsオプションで読むと第1行のデータがラベルとして解釈されてしまう。
    読み込まれる変数の種類(後述)は自動的に決められる。
    パネルで分かるように,JMPのインポートではフィールド,レコード(Line)の区切り記号はかなり柔軟に設定できるようになっている。

[3]データ表の操作

  1. 変数の定義
    変数の定義は,基本的には(1) カラムを選び,(2) Colsメニュー⇒Column Infoコマンドからのパネルの中で設定できる。これは,インポートはできたものの,予期しない変数定義になったときなどに有効である。
  • 行(レコード,observation)の状態
    除外,隠蔽等をするレコード(行)を選択する。後にこれらの行を選択するときは,Rowsメニュー⇒Selectを実行する。Rowsメニューはつぎのサブメニューを持っている。
    (1)Exclude / Include
    対象となる行を選ぶ⇒Rowsメニュー。統計計算から除外されるが,散布図などでは除外されない。除外される行には交通標識アイコンがつく
    (2) Hide / Unhide
    散布図などでは除外されるが,統計計算から除外されない。隠される行にはサングラスのアイコンがつく
    (3)Label / Unlabel
    散布図において,選択した行のデータにラベル変数で指定した値をつける。荷札アイコンがつく
    (4)Markers
    散布図において,選択した行に指定したマークをつける
  • データ表の変形
    TablesメニューからSubset(部分集合),Sort(ソート),Concatenate(連結),Join(併合),Transpose(転置)コマンドなどを選ぶことができる。

    [4]JMPで統計学に一歩を踏み出そう

    JMPをつかってデータ解析ないしは統計学の初歩を体験してみよう。ここではデータの分布,基本統計量(平均値,標準偏差,中央値など),2群の平均値の差の検定,相関・回帰について学ぶ。
    1. データの分布
      データの統計解析に当っては,その分布状態を視覚的に捉えることが大事だ。飛び離れた値によって平均値はかなり影響を受ける。そして,大部分の統計的検定はデータが正規分布というある形式に従って分布していることが前提になっている。視覚的に分布を捉えたら,今度は分布の特性をさまざまな基本統計量をつかってあらわしてみる。
      例題の「somatometry.ex」のJMPファイルを開く。sexの列をスクロールしてみると分かるように,このデータには男(M)と女(F)が混在している。では,男女別に身長の分布を見てみよう。
      カテゴリー毎にデータを分類するには,TableメニューからGroup / Summaryサブメニューを選択する。

      すると,どの項目(列)の変数でグループ分けをするかを問い合わせてくる。このようなグループ分けの対象になるのは,ここでの性別のようにカテゴリーデータ(測定タイプは名義尺度,Nomial)が対象になる。年齢は連続尺度だから,カテゴリーに分けるとすると無数になってしまう。このようなときは新たにAge Class(年齢群)といった変数を名義尺度でつくり,そこにある一定の年齢の値を入れる。例えば,15.00〜15.99歳の年齢は中央値である15.5歳というAge Classの値をあたえるといったように。
      まず,左側の変数名のボックスからsexを選び,クリックする。ついで, ≫Group≫ ボタンをクリックすると右側のボックスに現れる。これで Done ボタンを押す。

      新たなウィンドウが現れる。左上の By-Mode Off をクリックして,以後の分析が性別に(by sex)行われるようにOnに設定する。

      heightのカラムのrole assignment boxをクリックしてYに設定する。

      男女別に分類された「somatometry.ex By sex」というウィンドウをクリックしてアクティブにする。
      AnalyzeメニューからDistribution of Y'sを選んで実行する。

      このような横並びの表示をさせるには,分布図のウィンドウの下方のバーにあるアイコンのうちから「チェックマーク」アイコンをクリックして,Horizontal Layoutを選んでいる。

      ヒストグラムは釣鐘型,すなわち正規分布,をしているように見える。ここで先ほどのチェックマークアイコンをクリックしてNormal Curveを選んでみよう。

      ヒストグラムに曲線がオーバーラップされただろう。この曲線がこのデータでの理論的な正規分布曲線だ。
      ヒストグラムは実測値で,正規分布曲線は理論値だ。
      では,その違いは偶然にこの程度なのかどうかを調べてみよう。これが統計的検定だ。
      分布図ウィンドウの上のバーの変数名(height)の左の三角マークをクリックしてTest Dist is Normalメニューを実行してみよう。

      するとのようなボックスがウィンドウに追加される。これはこのような実測値が正規分布をするデータから取り出されたものであるという仮説を検定するものだ。0.811という数字はこの仮説が起こる確率が80%以上あるという意味だ。8割というのは非常に良くあることだから,この身長データは正規分布する母集団からのサンプルである,すなわちこの身長データは正規分布することだ。どれくらいの割合なら仮説を棄てる(正規分布を否定する)かというと0.05より小さい数字をとるのが一般的だ。
      さて,分布図のウィンドウの下方のバーにあるアイコンのうちから「チェックマーク」アイコンをクリックして,「Quantile Box Plot」を選んでみよう。あらたな図形を見てみよう。これが探索的データ解析(Explanatory Data Analysis, EDA)での箱ひげ図(box-whisker-plot, box-plot)だ。箱は全データの中央の50%(25パーセンタイルから75パーセンタイル)の範囲を示す。箱の中のダイヤモンドが平均値を現す。ヒストグラムをみると170cm以上にはビン(柱)がないのでデータが無いように見える。しかし,箱ひげ図はつぎのようなデータの分布を示す。

      だから,170cm当たりには一人くらいのデータがあるはずだ。
      Toolsメニューから手袋アイコンを選んで,ヒストグラムを上下にドラックする。

      すると,ビンが細くなり矢印で示す先に,見えなかったビンがでてきた。これはビンの幅(まとめるクラス幅)を狭くしたからだ。
      つまり,ここにおそらく一人の飛び離れた値を持った者がいることを示している。

      Toolsメニューから矢印アイコンを選んで,このビンをクリックしてみると,ビンは反転するばかりでなく,元データ表(somatometry.ex)のある部分も反転する。

      つまり,10行目のデータでID番号814538の個体が174.4cmの身長だということがわかった。
      このようにJMPで視覚的,探索的にデータのチェックができるわけだ。
    2. 基本統計量
      AnalyzeメニューのDistribution of Y'sで実行されたヒストグラムの脇に分布の特性を示している,いくつかの基本統計量のボックスがある。まず, Qauntiles のボックスには,箱ひげ図で見たようなパーセンタイル値(percentile)がみえる。これは,例えば,100個のデータを大きい順に整列させたときの順位に対応するデータ値をあたえるものだ。25パーセンタイルとは小さい方から数えて25番目のデータの値だ。丁度まん中の50番目のデータは50パーセンタイルであるが,とくに中央値(median)という。このパーセンタイルは分布のかたち(とくに歪みや外れ値)に影響されない。
      ここでの女子の身長は正規分布に従うことを検定したので,正規分布を表すパラメータである平均値,標準偏差を見てみよう。Momentsのボックスには平均値(Mean),標準偏差(Std Dev, Standarad Deviation),サンプル数(N)などが表示されている。ヒストグラムと箱ひげ図のパーセンタイル値,平均値(ダイヤモンド)を対応させてみよう。この例のように分布が正規ならば平均値と中央値は一致する。正規分布をする標本では,平均値μと標準偏差σは次のような具体的な意味をもつ。
      μ± σ  は全観測数の68.27%の観測個体を含む。
      μ±2σ  は全観測数の95.45%の観測個体を含む。
      μ±3σ  は全観測数の99.73%の観測個体を含む。
      だから,μ±2σを越える値は異常値(この外側には100人中で5人もいないから)とみなせるだろう。パーセンタイル値ならば2.5パーセンタイル値と97.5パーセンタイル値に相当するわけだ。
    3. 2群の平均値の差の検定
      男と女の身長はそれぞれ169.3±5.05cm(平均値±標準偏差)と156.9±5.20cmであった。サンプル数は114と339というように3倍の開きがあるが,標準偏差はそれほどでもない。この男女の身長の平均値の差,12.4cm,は偶然このようになったのだろうか?それともこのような差がでることはめったにないほど希なことが起こっているのだろうか?このような偶然の結果かどうかを調べるのが統計的検定だ。ただし,差があるとか無いとかは,ある確率のもとでしかいえないのだが...
      • 視覚に検定する
        Analyzeメニュー⇒Fit Y by Xを選ぶ。

        2群に分ける標識であるsexを左欄からクリックし,≫X≫ボタンを押す。ついで検定の対象になるheightを左欄からクリックし,≫Y≫ボタンを押す。そして Done ボタンを押して検定を実行させる。

        男と女の身長のバラツキを示す散布図が現れる。左下隅のAnalysis三角アイコンをクリックしてでるポップアップメニューからCompare Each Pairを選ぶ。

        JMPは散布図の右に2つの円を,下に検定結果を表示する。男子と女子の平均値の差は12.4392cmであることがわかる。危険率5%(Alpha = 0.05)でこの差は統計的に優位であることがわかる。統計的検定の意味は,このような検定を100回行ったとき,5回は男女差が0と出る確率はありえるけれども,95回は男女差は0ではないということだ。この差が有意であることは,図の右の2つの円(その位置は男女の平均にある)が完全に離れていて,重なってないことからもわかる。

      • 2群の等分散性の検定
        今度は詳しい統計的検定をしてみよう。平均値の差の検定は,(1) 2つの分散が等しいかどうかをまず検定し,(2) 等しいか等しくないかによって別々の平均値の検定を施す,というプロセスを踏む。分散とはデータの散らばり具合のことで,先ほどのデータのヒストグラムのかたちのことだ。ほぼ釣鐘型に散らばるデータでも,釣鐘の裾が広がっているかどうか,釣鐘の高さが高いかどうかなどの違いがある。左下隅のAnalysis三角アイコンをクリックしてでるポップアップメニューからUnEqual Variancesを選ぶ。

        JMPは4種類の等分散性のテスト結果を表示する。Prob>Fの欄をみるといずれも0.05より大きな値だ。従って,男女の身長のバラツキ方には差は無いと結論する。

        これで次の段階の,男女の身長の平均値に差があるかどうかの検定に移ることができる。
      • 2群の平均値の差の検定
        先ほどのAnalysisi三角アイコンを再びクリックしてみよう。ポップアップメニューからMeans, Anova?t-Testを選択してみよう。

        t-Testの欄をみると,このような平均値の差が現れる確率は限りなく0に近いことがわかる。従って,男女の身長の平均値には統計的に有意な差があるとみなすのだ。
        では,さきほどの等分散性の検定で両者の分散に差があったときはどうしたらよいのだろうか?このようなときにはStudentのt-Testは使えない。

        等分散の仮説が棄却されたときは,分散の検定のときのウィンドウをみると下方にもう一つのボックスがある。これがt-Testの代りになる,Welchの検定だ。

        もし,当分散の仮説が棄却されていたら,この例でも平均値に差はないと結論できる。
    4. 相関と回帰
      2つの変量の間の直線関係を分析する方法が相関と回帰だ。回帰分析の方は原因と結果という図式で表されるが,相関は2変量間の直線関係だけをいうだけだ。大事なことは直線関係を問題にするわけだから,まず2変量散布図を描いて視覚的に直線関係があるかを吟味することが大切だ。ここでは,(女子の)身長と体重の関係を見てみよう。
      • 相関
        role assignment boxをクリックしてweightにはY,heightにはXという変数の役割を割り当てよう。相関の場合はどちらがXでもYでも構わない。つぎに,AnalyzeメニューからFit Y by Xのサブメニューを選ぶ。


        上のような身長,体重の2次元散布図が表示された。どうやら2変量の間には直線関係がありそうだ。点の散らばり方がU字形になっていたりしたら,ある種の関係はあるが直線関係ではないので相関は低くなる。普通はこのように点は楕円状に散らばる。この楕円が細くなればなるほど相関は高くなる。最大に細くなって点が一本の直線になったら相関係数は1.0だ(直線が右下がりならば相関係数の符号はマイナスになる)。また,最大に太くなって点が真円状になったら相関係数は0.0だ。
        上の方に飛び離れた値があるので,Toosメニューの矢印ツールでクリックしてみると,296番目の個体であることが分かった。
        上の散布図は男女を込みにしているので,これを分けてみよう。
        ウィンドウの左下のFitting三角アイコンをクリックしてGroup Variable...メニューを選択する。


        sex項目を選んでOKボタンを押す。
        ついで,先ほどのようにウィンドウの左下のFitting三角アイコンをクリックしてDensity Ellipsesを選び,さらに.95(.90でもよい)サブメニューを選択する。

        2次元散布図に95%の確率楕円が描かれ,下の方にBivariateボタンがでてくるのでクリックして見よう。現れたCorrelation欄の数字が両者の直線関係を表す相関係数だ。となりのSignif. Prob欄は,この相関係数が0.0であるという仮説(帰無仮説H0:ρ=0)を検定した結果だ。もちろん,この相関係数は0.0ではないことを示している。

        データの数が多いと,相関係数が0.2くらいでも有意となる。これは,相関係数が0.0ではないことを示しているに過ぎない。
      • 回帰
        では,身長を計ってその値から体重を予測するという問題を考えてみよう。回帰分析はこのような予測式,体重=α+β・身長,をつくるパラメータα,βを推定することでもある。相関とはちがって,回帰には独立・従属関係がある。
        従って,予測される変数の体重はYで説明する変数の身長にはXの変数の役割を割り当てなければならない。AnalyzeメニューからFit Y by Xを実行して。相関の手続きと同様に男女別に計算することにしよう。
        ウィンドウの左下のFitting三角アイコンをクリックしてGroup Variable...メニューを選択する。sex項目を選んでOKボタンを押す。
        回帰分析では,ウィンドウの左下のFitting三角アイコンをクリックしてFit Lineメニューを選択する。

        男女の回帰直線が描かれる。
        図の下にはこの直線の式に関するパラメータとその統計的検定結果が表示されている。


        まず,Analysis of Variance欄は線型関係があるかどうかの検定だ。 Prob>Fは0.05より小さいから,ここには偶然ではない意味のある(有意な)線型関係があることを示している。有意な線型関係とは,データが円状に散らばってなく楕円状に散らばっていることを意味する。では,どのような線型関係だろうか? α,βはどうだろうか?
        Parameter Estimates欄を見よう。Term列のInterceptは直線の切片だ。heightは直線の傾きだ。だから散布図に引かれた直線の式(回帰式)は,
            女子では,体重=−45.97184+0.6269190×身長
            男子では,体重=−69.30996+0.7741028×身長
        で表される。 Prob>|t|の欄はこの切片と傾きが0.0かどうかの検定結果だ。傾きが0ならば直線は無数に引けることを意味する。そのようなときは,データは楕円ではなく円形にバラツイテいるときだ。
        (練習)
        (1)somatomery.exデータのbicrist(腸骨稜幅,腰幅)について平均値の男女差を検定せよ。もし,はずれ値があったならそれを取り除いて検定してみよ。はずれ値を除くと,平均値,標準偏差は変わるだろうか?
        (2)biacrom(肩峰幅,肩幅)とbicristの関係を分析せよ。男女で両項目の関係はどのような違いがあるだろう?
        (3)BMI(Body Mass Index)の項目をつくり,分布を調べてみよ。はずれ値をもつ個体のそのほかの項目はどうなっているだろうか?

    高井省三のホームページにもどる
    発育体力学・解剖学のホームページにもどる