統計ブログはじめました!

各専門分野の統計技術、方法、テクニックなどを気ままに分かり易く例題をもとに解説します。

統計のコツのこつ(18)

2016-09-17 12:35:00 | 日記・エッセイ・コラム
このブログは「すぐに役立つ統計のコツ」(オーム社)をもとに、チョットしたコツを書いています。今回は「ロジスティック回帰分析による判別分析」のお話です。
それでは、「すぐに役立つ統計のコツ」第7章(114ページ)を開いて下さい。
 
本書の例題(データ)は下記の情報統計研究所(HP)からダウンロード出来ますのでご利用下さい。
 
● 判別分析(本書114ページ)について。
本書「例題 19」(表7.23)はフリーオンラインソフトを利用しています。ここでは、データ解析環境「R」での方法をご紹介します。まずは、データを前号(16)の要領でダウンロードして下さい。
 
本書の例題(データ)は下記の情報統計研究所(HP)からダウンロード出来ますのでご利用下さい。
 
本書では、前号(16)と同じ要領でロジスティック回帰分析による非線形判別分析を行っています。分析方法は、
「Bias-Reduced Logistic Regression Analysis」ですが、目的変数の例数に大きな違いはないので通常のロジスティック回帰分析を行っても構いません。
 それでは、これを、[R」でやってみましょう。

「R]には、
線形判別分析用の関数(lda)がありますので、この方法で試してみましょう。
「R]のコマンドあ次の通りです。
***
dat<- read.deim("clipboard", header=T)
head(dat)
 
library(MASS)
fit<- lda(Disease~ U.Pro+ S.BMG, prior = c(1,1)/2, data=dat)
fit
 
出力結果:
Call:
lda(Disease ~ U.Pro + S.BMG, data = dat, prior = c(1, 1)/2)
 
Prior probabilities of groups:
糸球体腎炎 尿細管障害
       0.5        0.5
 
Group means:
              U.Pro    S.BMG
糸球体腎炎 248.5882 2.680588
尿細管障害 121.8667 8.432000
 
Coefficients of linear discriminants:
               LD1
U.Pro -0.002413304
S.BMG  0.186415093
 
切片は次により求めます。
> apply(fit$means%*%fit$scaling, 2, mean)
      LD1
0.5887669
 
よって、判別関数式は、
z=-0.002413304*U.Pro+ 0.186415093*S.BMG- 0.5887669
 
となります。
この判別関数式から求めた判別得点(z)が、
 
 Z<0 ならば "糸球体腎炎"、そうでなければ"尿細管障害"
 
と判別されます。
 
なお、判別結果は次によりおこないます。
> table(dat$Disease, predict(fit)$class)
           
             糸球体腎炎 尿細管障害
  糸球体腎炎         17          0
  尿細管障害          3         12
 
よって、
一致率は 29/32=0.90625(90.63 %)となります。
 
本書(116ページ)の
ロジスティック回帰分析(本書、116ページ)の一致率(84.38 %)よりも良い結果となっています。       
***
 
本書(116ページ)では、非線形判別分析の1方法として、
library(MASS)
qad((Disease~ U.Pro+ S.BMG, prior = c(1,1)/2, data=dat)
 
の結果を載せています。
 
情報統計研究はここから