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

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

統計技術 第Ⅲ部:第3章-4.2(続き)

2022-07-29 10:57:22 | 日記・エッセイ・コラム

統計技術 第Ⅲ部 Free Online Caluclator (例題集)
第3章-4.2:Regression Trees(回帰木):DATA tab による法

前回からの続き!

下記URL(DATAtab)にアクセスしてみよう.
 https://datatab.net/statistics-calculator/decision-tree

例題は、
「R」のMASSパッケージ内の[birthwt]を使った "低出生体重児と変数の関係" を用いる.
本例題は、「統計技術 第Ⅰ部:第14章-1 樹木モデル」を参考に試されたい.なお、
データは情報統計研究所の下記 URLにまとめている「出産児体重」ダウンロードして利用すると便利である.
 http://kstat.sakura.ne.jp/dbase/dbase.html

● 「Free Online Calculator 」(DATAtab)による方法.
このDATAtabでは、名義尺度の従属変数と2つ以上の独立変数を選択するとDecision tree の作成と CHAID(カイ二乗検定)の計算結果を知ることができる.しかし、
連続量での回帰木(Regression tree)は対象外である.

それでは、上記のことを留意のうえでやってみよう.
--------------------------------------------------------
情報統計研究所からダウンロードした「出産児体重」の青色列名部分のみをすべて選択・コピーし
新規にExcelを作成しペーストし、任意のホルダーに任意の名前(例えば、Decision.xlsx)を付けて保存しておく.

図1 「DATAtab」の入力画面

● Cleat Table(赤矢印)をクリックしてTableをクリアー

● Inport(赤矢印)をクリック

図2 「Import」の破線枠内に任意のホルダーに保存した「Decision.xlsx」をスクロース&ドロップさせる.

図3 読み込んだExcel file(Decision.xlsx)のデータ


正しく読み込まれているか・・、列名等を確認する.
変数の形式を指定する(nominal:名義、metric:量的、ordinal:順序).

図4 Dependent Variable の選択

lowを選択を選択◎

図5 Independent Variable の選択

 race, smoke, ht, ui の各丸〇に✓チェックを入れる.

ディスプレイの画面を要約すると図6のようになった(Chi-sqの値は連続補正なし).

図6-1 CHAID decision tree(1)

上図から、
低出生体重児(low)は、ptl=早産の数(回数:0回~3回)の出現度数(比率)に有意な差がみられた(p=0.001).
まとめると、次のカイ自乗検定となる.
---------------------------------
............ptl[1]...ptl[0]...ptl[2]...ptl[3]
low[1].....16.........41......2........ 0
low[0].......8.......118..... 3.........1
---------------------------------
Chi-sq=16.864, p=0.0007538, df=3

以下、同じように、

図6-2 CHAID decision tree(2)


上図から、
低出生体重児(low)→早産の数(ptl)→喫煙(smoke:0=なし、1=あり)では、有意差を認めない(p=0.143).

以下、同じように、

図6-3 CHAID decision tree(3)

上図から、
人種(race:1=白人、2=黒人、3=その他)の関係は、「Chi-sq=5.79, p=0.05531, df=2」で積極的に有意とは言えない.以下、模式図は省略するが、分類木から喫煙(smoke)についても、次のように解釈される.

-----------------------------------------------------------------
..................................smoke[0]......smoke[1].......chi-sq(p-value) 
low[1]&ptl[0]&race[1].......4例.............11例...........4.43(p=0.035)
low[0]&ptl[0]&race[1].....38例.............29例........喫煙ありの比率が高い
-----------------------------------------------------------------
..................................ui[1]......ui[0].......chi-sq(p-value)
low[1]&ptl[0]&race[3].....5例.......12例.......4.37(p=0.036)
low[0]&ptl[0]&race[3]...12例........35例....子宮過敏性ありの比率が高い
-----------------------------------------------------------------

ここで、low=体重(目的変数)、age=母の年齢、lwt=母の体重、race=人種(1=白人、2=黒人、3=その他)、smoke=喫煙(0=なし)、ptl=早産の数(回数)、ht=高血圧(0=なし)、ui=子宮過敏症(0=なし)
・・・である.

 


統計技術 第Ⅲ部:第3章-4.1 Regression Trees(回帰木)

2022-07-23 13:45:48 | 日記・エッセイ・コラム

統計技術 第Ⅲ部 Free Online Caluclator (例題集)
第3章-4.1:Regression Trees(回帰木):Wassa.net による法

ここで紹介する樹木モデルは、目的(従属)変数が連続量であれば回帰木(Regression Trees)とか、名義尺度(0,1)であれば「分類木(Classification tree)」とか、「決定木(Decision tree)」と言われるもので、非線形回帰モデルや非線形判別分析の範疇に入る方法である.
主に、データマイニングなどの意思決定の1つの手段としてよく知られている.

ここでは統計技術的に"Free Online Calculator"での方法を紹介する.
これは既に、
統計技術 第Ⅰ部:第14章-1 樹木モデル」で「R」での方法を紹介しているので参考にされたい.
   http://toukei.sblo.jp/article/188432693.html

ここで紹介する「wessa.net」では、「Regression Software→Regression Tree」が用意されているが、残念ながら分類過程や回帰過程の計算が定かでないので、簡単に、その方法を例題の説明(独立)変数が連続量についてのみとし、名義尺度の変数については、次回の「Free Online Calculator」(DATAtab)で紹介する。

例題は、
「R」のMASSパッケージ内の[birthwt]を使った"低出生体重児と変数の関係"を用いる.本例題は、上記URL(統計技術 第Ⅰ部:第14章-1 樹木モデル)で紹介しているが、例題のデータは情報統計研究所の下記 URLにまとめている「出産児体重」ダウンロードして利用すると便利だと思う.
情報統計研究所(データベース)
http://kstat.sakura.ne.jp/dbase/dbase.html

(1)情報統計研究所からダウンロードした「出産児体重」の青色列名のB列~D列のデータ(数値)のみをすべて選択・コピーし使用する(列名はコピーしない).

「Wessa.net」による方法.
---------------------------------------------------------
「Wessa.net」のトップページから、

Regression Software

Regression Trees

Data X の既存のデータを右クリック→すべて選択→[Delete]キーで削除

上記(1)でコピーしたデータを右クリックで貼り付け(ペースト)

図1 Excel から貼り付けたデータ



図2 列名の入力


Categorization [ none ]

[ Compute ]をクリック

出力結果:
図3 分類木(Classification tree)

「出産児体重」の重要な因子として、lwt(母の体重)が表示された.
図3から、lwt<=105(n=37)、lwt>105(n=152)で・・、p-value=0.04(有意)である.

ここでのp-valueは「R」のlibrary(coin)の「independence_test」で求めることができる.
------------------------------------------
「R]
dat<- read.delim("clipboard", header=T) # Excel から例題のデータ(列名を含む)を読み込む.
head(dat)
library(coin) # 事前にインストールしておく.
independence_test(age+ lwt~ low, data=dat)
------------------------------------------
出力結果:
Asymptotic General Independence Test

data:  age, lwt by low
maxT = 2.3258, p-value = 0.0394 # 標準化された線形に基づく検定統計量
alternative hypothesis: two.sided
------------------------------------------
independence_test() は任意の尺度で測定された2群の変数の独立性を検定する関数である.

注釈;
名義尺度(0、1)の説明(独立)変数については、次回に別の「Free Online Calculator 」(DATAtab)で紹介する.

次回に続く!

 


統計技術 第Ⅲ部:第3章-3 Bias-Reduced Logistic Regression(続き)

2022-07-07 10:56:21 | 日記・エッセイ・コラム

統計技術 第Ⅲ部:第3章-3:Bias-Reduced Logistic Regression(続き)

統計技術 第Ⅲ部 Free Online Caluclator (例題集)
第3章-3(2):「R」による Penalized regression model の検証

前回の”Free Online Culculator”で紹介した"Bias-ReducedLogisticRegression"は、2値の目的変数のデータ数に大きな違いがある場合などに適用される例題を紹介した.
その際に、
Penalized regression(正則化回帰モデルとも言う)について記述したが、これに対する杉本典夫先生(統計学入門)からのコメントを頂いたので要約して紹介する.
コメントの抜粋:
-------------------------------------------
試験を実施する時は、複数の観察項目間の関連性を説明するために、まず最初に科学的に合理的と思われるモデルを想定します。
そして次に、そのモデルを数学的に近似して解析するために、回帰モデルや相関モデルを当てはめます。
さらに、それらの回帰モデルや相関モデルを用いた解析結果の信頼性が高くなるように、試験デザインと試験の例数を決めて試験計画を立てます。
そしてそれから、実際に試験を実施するのが原則です。
 :
後略
-------------------------------------------
このコメントは実験等における大切な原理・原則・・・、でも稀少な臨床実験データ等では、そうも行かない事例が多いのも事実である.
そこで、
「Penalized regression model」とは・・、どの様なものかを「R」を用いた検証を簡単に紹介しよう.

ペナルティ付きロジスティック回帰とは、簡単に言うと、変数が多いためにロジスティック・モデルにペナルティを与えて寄与度の低い変数の係数を縮小させることを回帰係数の制約(正規化)と言っており、1つの変数選択であるかもしれない.
主に、ビッグデータなど機械学数(AI)の分野が対象であり、リッジ回帰(ridge)とラッソ回帰(lasso)が知られている.
そして、変数選択によって最的な回帰モデルを見つけることを、”スパースモデリング(sparse modeling)”と言うなど、機械学習独特の呼び方があるが、ここでは、
単に回帰モデルの係数の違いをデータ解析環境「R」で見てみよう.

例題は、
前回の”Free Online Culculator”で紹介した"Bias-ReducedLogisticRegression"の既存データ(Data X)を選択しExce にペーストし、「R」に読み込んで使用した.ただし、データ数が少ないので、不正確であるかもしれないが、あくまでも1例として体験されたい.

「R」の実行:
------------------------------------------------
dat<- read.delim("clipboard", header=T) # Excel から読込む
head(dat) # 読込んだデータの確認
dx<- data.matrix(dat[,-1]) # X1, X2, X3 のデータマトリクス
dy<- dat[,1] # Y の抽出
head(dy) # Yデータの確認
head(dx) # Xデータの確認

library(glmnet) # ライブラリーを事前にインストールしておく
set.seed(123) 
cv.lasso <- cv.glmnet(dx, dy, alpha = 1, family = "binomial") # alpha = 1 は lasso
model.1 <- glmnet(dx, dy, alpha = 1, family = "binomial", lambda = cv.lasso$lambda.min)
coef(model.1) # 係数の出力

cv.ridge <- cv.glmnet(dx, dy, alpha = 0, family = "binomial")  # alpha = 0 は ridge
model.2 <- glmnet(dx, dy, alpha = 0, family = "binomial", lambda = cv.ridge$lambda.min) # alpha = 1 は lasso
coef(model.2) # 係数の出力

# 比較のために"brglm"と"glm" の「R」コマンド
attach(dat)
library(brglm) # 事前に"brglm" ライブラリーをインストールしておく
mlb<- brglm(Y~ X1+ X2+ X3, family = "binomial", data=dat)
summary(mlb)

glmModel<- glm(Y~ X1+ X2+ X3, family = "binomial", data=dat)
summary(glmModel)
-----------------------------------
出力結果の係数をまとめると図1のようになった.

図1 各回帰モデルの係数

Lasso ではX1が除外され、通常のロジスティック回帰モデル(glm)ではX3の値が他に比較して大きく、係数の比重が大きいことが分かる.
このことから、
目的変数(Y)の2値のデータ数に大きな違いがあると・・、すなわち、バイアスが大きいと回帰モデルに影響を与えるので、注意すべきことが分った.
ただし、
この例題のデータ数自体が少数であるので、不正確であるかも知れないので留意されたい.

 


統計技術 第Ⅲ部:第3章-3 Bias-Reduced Logistic Regression

2022-07-01 10:37:38 | 日記・エッセイ・コラム

統計技術 第Ⅲ部 Free Online Caluclator (例題集)
第3章-3:Bias-Reduced Logistic Regression(ロジスティック回帰)

ロジスティック回帰分析は、多くの場合名義尺度(0, 1))からなる2値の目的変数に対して適用されるが、
2値のデータ数に大きな違いがある場合などは、DavidFirth(英国の統計家)によって提案された"Bias-ReducedLogisticRegression"を用い、推定値と標準誤差の修正することがある.
したがって、よく用いられる "Logistic Regression"の結果とことなるので、データ数に大きなバイアスがなければ、通常の方法で良い.

ここで紹介する方法はデータ数に大きなバイアスがあるときの方法である.
それでは、
下記のURLで試してみよう.

使用する Free Online Calculator :
● Free Statistics Software (Calculator) - Web-enabled scientific services & applications 
 https://www.wessa.net

上記URLのトップページから、

Regression Software

Logistic Regession

[Data X]を確認

Compute をクリック

出力結果:
-------------------------------------
図1 推定値などの統計量

図2 統計量の記述

ここで、
Deviance とは、回帰モデルの適合性統計(逸脱の指標)であり、すなわち、モデルへのフイティング(当てはめ)の良さを表す.
また、
Penalized regression(正則化回帰モデルとも言う)とは、制約付き最小二乗法や罰則化回帰モデルとも呼ばれるもので、通常の最小二乗法では、説明変数が増えると過学習してしまうことがある.
予測モデルは未知のデータに対して既存のデータから学習した推定式による予測の当てはまり(フイティング)をよくすることであるが、学習データを過剰に学習して、かえって、未知のデータへの当てはまりを悪くしている場合があり、これを過学習と言っている.
すなわち、
必要以上の説明変数を用いることで、かえって予測の精度を悪くしている場合がある.
これを防ぐために、変数選択をしたりするが、その1つの方法として正則化項を入れた"Penalized regression model"がある.
ここでは、
専門的な詳細は割愛するので、専門書やWebサイトを参照されたい.

「参照」
統計技術 第11章-5 ロジスティック回帰分析
 http://toukei.sblo.jp/article/188015481.html

また、
ホスマー・レメショウ検定( Hosmer-Lemeshow test)もロジスティック回帰モデルへの適合度を調べる統計学的検定である.

図3 ROC曲線

ここでのROC 曲線はかなり大雑把であるので、下記のサイトを紹介しておこう.

情報統計研究所(やさしい医学統計手法)「9.6. ROC(Receiver Operating Characteristic)について」
 http://kstat.sakura.ne.jp/medical/med_038.htm