# 定型データの分析 ###### tags: `multivariate-causal-analysis-2023` ## 定型データ 大きさが$n$の(無作為)標本について、$m$個の変数を測定、調査または観察して、記録したデータを定型データという。 |#|$X_1$|⋯|$X_m$| |---|---|---|---| |1|$X_{11}$|⋯|$X_{1m}$| |2|$X_{21}$|⋯|$X_{2m}$| |︙|︙|⋱|︙| |n|$X_{n,1}$|⋯|$X_{n,m}$| 添字が複数あるとき、自然に区別できる場合は特に区切りは挟まないが、例えば$nm$に掛け算$n\times m$と$(n,m)$、また$111$に$(11,1)$または$(1,11)$の可能性があるなど、意味が曖昧になる場合にコンマ「,」で区切ることがある。 この表の分析には、変数$X_1, \ldots, X_m$の間の関係を分析と、対象$1, \ldots, n$の間の関係を分析の、二つの方向がある。前者を列間の関係の分析、後者を行間の関係の分析と区別する。 ### 時点がある場合 大きさが$n$の標本について、複数の時点$t=1, \ldots, T$において、同じく$q$個の変数を測定して記録したデータは、3次元の表になる。 |$t=k$|$X_1$|⋯|$X_m$| |---|---|---|---| |1|$X_{1,k,1}$|⋯|$X_{1,k,m}$| |2|$X_{2,k,1}$|⋯|$X_{2,k,m}$| |︙|︙|⋱|︙| |n|$X_{n,k,1}$|⋯|$X_{n,k,m}$| 時点を上添字で記すこともある。 |$t=k$|$X_1$|⋯|$X_m$| |---|---|---|---| |1|$X_{1,1}^k$|⋯|$X_{1,m}^k$| |2|$X_{2,1}^k$|⋯|$X_{2,m}^k$| |︙|︙|⋱|︙| |n|$X_{n,1}^k$|⋯|$X_{n,m}^k$| ## 変数間の分析 上の$n\times m$の表のデータの、列間の関係を分析する場合を説明する。 ### 内生変数またはアウトカム変数 $m$個の変数$X_1, \ldots, X_m$の間に、原因と結果のような関係があるとする。原因を表す変数が$p$個、結果を表す変数が$q$個あるとする。 $$ m = p + q $$ である。結果を表す変数を、$Y_1, \ldots, Y_q$と表記する。 $$ Y_j = X_{j+p}, \,\, j=1, \cdots, q $$ |#|$X_1$|⋯|$X_p$|$Y_1$|⋯|$Y_q$| |---|---|---|---|---|---|---| |1|$X_{11}$|⋯|$X_{1p}$|$Y_{11}$|⋯|$Y_{1q}$| |2|$X_{21}$|⋯|$X_{2p}$|$Y_{21}$|⋯|$Y_{2q}$| |︙|︙|⋱|︙|︙|⋱|︙| |n|$X_{n,1}$|⋯|$X_{n,p}$|$Y_{n,1}$|⋯|$Y_{n,q}$| ノードと矢線で関係を表す有向グラフを用いてこの関係を描くと、次の図のようになる。 ```graphviz digraph CausalRelationship { rankdir = LR node [shape=rectangle] "︙" [color=none] "︙ " [color=none] "︙" -> "︙ " [color=none] Xp -> "︙ " X1 -> "︙ " X2 -> "︙ " X1 -> Yq X2 -> Yq "︙" -> Yq [color=none] Xp -> Yq "︙" -> Y1 [color=none] Xp -> Y1 X1 -> Y1 X2 -> Y1 X1 -> Y2 X2 -> Y2 "︙" -> Y2 [color=none] Xp -> Y2 } ``` このとき、$Y$を内生変数、目的変数、あるいはアウトカム変数などと呼ぶ。JMPでは予測変数と表記される。 **回帰分析**、**ロジスティック回帰分析**、**生存時間回帰分析**、**ポアソン回帰分析**などがこれに相当する。**決定木**や**回帰木**、それらのアンサンブル学習もこれに相当する。 ![DALL·E 2023-12-12 10.47.50 - A diagram illustrating a general Multiple Regression Analysis. The image should include a 3D scatter plot representing multiple independent variables ](https://hackmd.io/_uploads/SJpRo4r8T.png) ![DALL·E 2023-12-12 10.49.05 - A diagram illustrating a general Decision Tree Analysis. The image should include a tree-like structure representing decision nodes, branches, and lea](https://hackmd.io/_uploads/Hyy72NHUT.png) ### 外生変数または共変量 $q$個の変数$X_1, \ldots, X_q$の間に、原因と結果のような関係なく、すべてが対象に関する測定、調査、観察、質問などの記録とする。このとき$p=m$として $X_1, \ldots, X_p$と表記する。 |#|$X_1$|⋯|$X_p$| |---|---|---|---| |1|$X_{11}$|⋯|$X_{1p}$| |2|$X_{21}$|⋯|$X_{2p}$| |︙|︙|⋱|︙| |n|$X_{n,1}$|⋯|$X_{n,p}$| ノードと線で関係を表す無向グラフを用いてこの関係を描くと、次の図のようになる。変数の間には因果の方向がないので、線に鏃をつけない。 ```graphviz graph Relationship { layout = circo node [shape=rectangle] X1 -- X2 X1 -- "⋯" [color=none] X1 -- X4 X1 -- X3 X1 -- Xp "⋯" [color=none] X2 -- X3 X2 -- X4 X2 -- "⋯" X2 -- Xp X3 -- X4 X3 -- "⋯" X3 -- Xp X4 -- "⋯" X4 -- Xp "⋯" -- Xp } ``` **相関分析**や**共分散選択**がこれに相当する。 ### 合成変数 モデルや手法を用いてデータを分析する際に、$p$個の変数を、それよりは次元の小さい$s$個の合成変数$Z_1, \ldots, Z_s$に縮約することがある。 ```graphviz digraph CausalRelationship { rankdir = LR X1 -> Zs X1 -> R X1 -> Z1 X1 -> "︙ " "︙" -> Zs [color=none] "︙" -> R [color=none] "︙" -> Z1 [color=none] "︙" -> "︙ " [color=none] Xp -> Zs Xp -> R Xp -> Z1 Xp -> "︙ " "︙" [color=none] "︙ " [color=none] X1,Xp,"︙ " [shape=rectangle] } ``` $R$は、合成されなかった余りの成分である。 **主成分分析**は、これに相当する。 ![DALL·E 2023-12-12 10.41.24 - A diagram illustrating Principal Component Analysis (PCA). The image should include a scatter plot of multi-dimensional data points in 2D space, with ](https://hackmd.io/_uploads/rkZO9VHUT.png) ### 潜在変数 モデルや手法を用いてデータを分析する際に、観測されない$s$個の変数$Z_1, \ldots, Z_s$を考えることがある。 ```graphviz digraph CausalRelationship { rankdir = LR "︙" [color=none] "︙ " [color=none] "︙" -> "︙ " [color=none] Zs -> "︙ " Z1 -> "︙ " Z2 -> "︙ " Z1 -> Xp Z2 -> Xp "︙" -> Xp [color=none] Zs -> Xp "︙" -> X1 [color=none] Zs -> X1 Z1 -> X1 Z2 -> X1 Z1 -> X2 Z2 -> X2 "︙" -> X2 [color=none] Zs -> X2 X1,X2,Xp,"︙ " [shape=rectangle] } ``` **直交回転を用いる因子分析**は、これに相当する。 ![DALL·E 2023-12-12 10.41.26 - A diagram illustrating Factor Analysis (FA). The image should include a conceptual representation with observed variables connected to latent factors ](https://hackmd.io/_uploads/BkmY54HLT.png) 潜在変数同士に相関関係を考えることもある。この場合、潜在変数同士の関係を表す線には鏃をつけない。 ```graphviz digraph CausalRelationship { rankdir = LR "︙" [color=none] "︙ " [color=none] "︙" -> "︙ " [color=none] Zs -> "︙ " Z1 -> "︙ " Z2 -> "︙ " Z1 -> Xp Z2 -> Xp "︙" -> Xp [color=none] Zs -> Xp "︙" -> X1 [color=none] Zs -> X1 Z1 -> X1 Z2 -> X1 Z1 -> X2 Z2 -> X2 "︙" -> X2 [color=none] Zs -> X2 Z1 -> Z2 [arrowhead=none] Z2 -> Zs [arrowhead=none] Z1 -> Zs [arrowhead=none] Z1 -> "︙" [arrowhead=none] Z2 -> "︙" [arrowhead=none] Zs -> "︙" [arrowhead=none] X1,X2,Xp,"︙ " [shape=rectangle] } ``` **斜交回転を用いる因子分析**や**構造方程式モデリング**が、これに相当する。 ## 対象間の分析 ### マッピング * 多次元尺度構成法 (MDS) * 多様体学習 ([小林(2017)](https://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/2057-01.pdf)) ### 分類、層別 クラスタ分析、クラスタリング。 #### 階層クラスタリング、計量クラスタリング、距離に基づくクラスタリング * 最小距離法 * 最大距離法 * 重心距離法(群平均法) * Ward法 ![DALL·E 2023-12-12 10.43.36 - A diagram illustrating Hierarchical Clustering. The image should include a dendrogram representing the clustering process, with various data points be](https://hackmd.io/_uploads/HyWJoVr8a.png) #### 非階層クラスタリング k平均法。 ![DALL·E 2023-12-12 10.45.39 - A diagram illustrating non-hierarchical clustering, such as the k-means algorithm. The image should include a scatter plot of data points with differe](https://hackmd.io/_uploads/SkEUjVrLa.png) ### 潜在クラス分析 順序尺度または名義尺度のデータのクラスタリング ![DALL·E 2023-12-12 10.46.31 - A diagram illustrating Latent Class Analysis (LCA). The image should include a conceptual representation showing a set of observed variables and their](https://hackmd.io/_uploads/rkHKoErLa.png) ### 潜在プロファイル分析、混合分布 連続尺度のデータのクラスタリング。 ## 様々な回帰分析 ### 回帰問題とは 予測したい連続尺度の変数が$1$個、予測に用いる任意の尺度の変数が$p$個、大きさがnの無作為標本の定型データ |#|Y|X1|⋯|Xp| |---|---|---|---|---| |1|Y1|X11|⋯|X1p| |2|Y2|X21|⋯|X2p| |︙|︙|︙|⋱|︙| |n|Yn|Xn1|⋯|Xnp| について、予測変数$Y$を説明変数$X_1,\ldots,X_p$で説明もしくは予測しようとする問題を、回帰問題という。 ![](https://hackmd.io/_uploads/HkyFiz5sq.png) このデータを例に話を進める。 ![](https://hackmd.io/_uploads/rykSoz5iq.png) ### 予測と分析 このデータにおいて、次のモデル図で表される問題は中間試験の点数のみから、総合点を予測する問題になる。 ```graphviz digraph A { node [shape=rectangle style=rounded] rankdir=LR 中間 -> 総合点 } ``` このデータにおいて、次の問題は中間試験と期末試験の点数が、総合点にどのような影響を与えているかを分析する問題になる。 ```graphviz digraph A { node [shape=rectangle style=rounded] rankdir=LR 中間 -> 総合点 期末 -> 総合点 } ``` 両者の違いは「アウトカムの変数が測定される時点よりも、予測に用いる変数が先に測定されているか、ほぼ同時か」にあります。「アウトカムの変数が入手可能となる時点よりも、予測に用いる変数の方が先に入手できるか、ほぼ同時か」の場合にも、予測と分析に分かれます。 ### 回帰する 予測する、説明する、あるいは分析するということを、この講義では回帰したい、と言い換えています。回帰とは「説明変数をすべて固定できた場合に、それらを条件とした予測変数の条件付き平均を推定すること」です。数式で表すと、次のような関係を持つ関数$g\left(x_1, \ldots, x_p\right)$をデータから推定することです。 $$ E\left[Y|X_1=x_1, \ldots, X_p=x_p\right] = g\left(x_1, \ldots, x_p\right) $$ 推定した関数$g\left(x_1, \ldots, x_p\right)$は、任意の値を代入して、新しい条件の元での平均に用いることができます。ただし代入する値が、推定に用いたデータの範囲にあるか、それともそれを超えた範囲にあるか、でその関数の果たす意味が異なります。前者は補間または内挿、後者は補外または外挿と呼ばれます。補外または外挿の場合、その関数を用いる責任は、分析者ではなく予測者が負うことになるので、注意してください。 [![](https://hackmd.io/_uploads/rkuaeVcjc.gif)](https://atmarkit.itmedia.co.jp/ait/articles/2008/26/news017.html) 連続尺度の変数の平均は、連続尺度です。2値の名義尺度の変数の平均は、それを因子として見た際の2水準の平均比率です。 ### 平均値モデル 平均値を求める問題も、回帰分析です。 ![](https://hackmd.io/_uploads/SJrdczcsc.png) 散布図の横軸に中間試験の点数を付置していますが、総合点の回帰分析に用いていません。このことと、総合点をその平均値で予測することは、同じです。切片=平均値になります。 ### 線形回帰モデル JMPの〔モデルのあてはめ〕を用いている限り、単回帰分析モデル、重回帰分析モデルの違いは説明変数の数だけです。単回帰分析モデルは〔モデルのあてはめ〕の他、〔二変量の関係〕、〔多変量〕で用いることができます。 単回帰分析モデルと重回帰分析モデルを両方合わせて、線形回帰モデルと呼ぶと誤解がありません。 | |分析名|モデル名| |---|---|---| |説明変数が一つの回帰分析|単回帰分析|単回帰分析モデル, 線形回帰モデル| |説明変数が複数の回帰分析|重回帰分析|重回帰分析モデル, 線形回帰モデル| |説明変数に回帰係数を掛けて切片を加えたモデル による回帰分析|線形回帰分析|線形回帰モデル| |説明変数自身の他に説明変数のべき乗も用いる回帰分析|多項式回帰分析|多項式回帰モデル| |説明変数が順序尺度や名義尺度の回帰分析|ダミー変数を用いた回帰分析|線形回帰モデル| ### 多項式 適切な回帰モデルが、切片と乗数だけで構成された線形回帰モデルとは限りません。 ![](https://hackmd.io/_uploads/BJTTb7qoq.png) JMPでは、説明変数に多項式を用いることができます。 ### 因子と水準 ある説明変数$A$が順序尺度または名義尺度で、取りうる値が$A_1$, $\ldots$, $A_a$とします。このときこの変数$A$を因子、取りうる値$A_1$, $\ldots$, $A_a$を因子$A$の水準と呼びます。 因子$A$を回帰分析に用いるには、$a-1$個のダミー変数を導入します。 |水準|XA1|XA2|⋯|XAa-2|XAa-1| |---|---|---|---|---|---| |A1|1|0| |0|-1| |A2|0|1| |0|-1| |︙| | | | | | |Aa|0|0| |1|-1| また、一部のモデル、特に実験計画の多くのモデルは、交互作用の項を含んでいます。因子が連続尺度の場合には、交互作用項(交差)は、それらの因子の積です。名義尺度や順序尺度の場合には、交互作用項(交差)は、カテゴリカルな水準を表すダミー変数の積です。 交互作用項がある場合、高次の効果を追加するには、その低次の要素が必ずモデルに含まれるように制約することがよくあります。この原則は、親子関係の原則(principle of effect heredity; 階層関係の原則)と呼ばれています。この原則に従えば、たとえば、2 次の交互作用項がモデルに含まれている場合は、(階層における上位の効果である)主効果もモデルに必ず含めるべきです。 [あてはめの手法](https://www.jmp.com/support/help/ja/16.2/index.shtml#page/jmp/fitting-personalities.shtml)によると、〔モデルのあてはめ〕には多くの手法があります。これらの中でも、標準最小2乗を用いるあてはめとステップワイズ法を用いるあてはめでは、交互作用項のダミー変数が異なります。できれば最後に、標準最小2乗を用いた回帰分析をやりなおして報告することをお勧めします。 ### 生存時間(パラメトリック) ある時間間隔が、生存時間あるいは寿命になぞらえて分析できるとき、その時間間隔を生存時間ということがあります。生存時間の例は、次のとおりです。 * 誕生から死亡までの時間を意味する寿命時間 * 製品の製造から故障までの時間も寿命時間 * 病気に罹患してから寛解するまでの治療期間 * 癌などステージが定義されている病気の無増悪生存時間(Progression Free Survival time) * 入院から退院までの入院期間 * 飲食店等への来客の入店から退店までの滞在時間 * 施療時間、介護時間などのいわゆるサービス提供時間 生存時間が従う確率分布を生存時間分布といいます。 ![](https://hackmd.io/_uploads/SJ5xLEqic.png) これは生存時間分布の生存関数をデータから推定した例です。 ![](https://hackmd.io/_uploads/r1Zb849iq.png) この図は生存時間分布の例で、左は密度関数、右は累積分布関数です。 ある時間間隔の計測値$T$と、その値の計測条件$X_1$, $\ldots$, $X_p$が記録されたデータを用いて、$T$が従う条件付き分布を推定するモデルを総称して、生存時間回帰モデルといいます。 * 寿命時間への食生活や睡眠時間など生活習慣の影響を調べたい * 治療期間への手術の種類の影響を調べたい * 無増悪生存時間への投薬レシピの影響を調べたい * 入院期間へのリハビリ体制の影響を調べたい * 滞在時間の時間帯ごとの差異を調べたい 生存時間回帰は、$T$が、$X_1$, $\ldots$, $X_p$を条件とした条件付きの生存時間分布に従う、というモデルを推定します。JMPの生存時間回帰では、分析に用いる生存時間分布に次のものが用意されています。 * Weibull分布 * 対数正規分布 * 指数分布 * Fréchet分布 * 対数ロジスティック分布 * 最小極値分布 * 正規分布 * 最大極値分布 * ロジスティック分布 生存時間回帰とモデルのあてはめの違いは、$T$が打ち切られていても回帰分析を行えることにあります。たとえば施療が長引いても1時間で打ち切ることが規則で定められている場合、本来行うべき施療の時間は記録されません。また、治療期間中の患者さんが再来院しなくなったり、入院中の患者さんが仕事の都合などで無理矢理退院していったりすると、完治までの期間が記録に残りません。こういう場合を、打ち切りと言います。 ところで、時間感覚が必ず生存時間分布に従うとして、生存時間回帰で分析しないといけないという訳ではありません。時間を一定の値にすることがこの時間の使い方の目標の場合には、その時間の分布は正規分布に近くなります。時間の発生の仕方にも考察が必要です。 ### 一般化線形モデルの中のロジスティック回帰 同一の試行の、ある一定回数の中での成功を数えて、成功回数と呼びます。 * コインを投げて表が出た回数 * サイコロを投げて勝ち目が出た回数 * 化合物の化合方法の成功回数 * 天気予報が当たった回数 * コインを投げて裏表を当てた回数 物の試行でも人の試行でも、成功を数えます。 一定回数$n$の中の成功回数$Y$と、その値の計測条件$X_1$, $\ldots$, $X_p$が記録されたデータを用いて、$N$が従う条件付きの二項分布を推定する分析の一つが、ロジスティック回帰分析です。モデルはロジスティック回帰モデルです。成功確率$p$のロジスティック変換 $$ \log \frac{p}{1-p} $$ に対して、線形回帰分析を行うことに近いです。$p$は$Y/n$で推定するので、 $$ \log \frac{Y/n}{1-Y/n} = \log \frac{Y}{n-Y} $$ に対する回帰分析とも言えます。$Y$が$0$か$n$の時だけ、特別な注意が必要です。 ### 一般化線形モデルの中のPoisson回帰 (ポアソン回帰) 繰り返し発生する事象のある一定期間の発生回数を、頻度と言います。 * 飲食店等への時間帯ごとの来客数 * 毎年の新生児数 * 1日の喫煙数 * 1日の飲酒回数(摂取アルコール量は頻度でない) * 1日の発作の発生回数(くしゃみでも) * ある地方自治体の1日の交通事故の発生回数 * 1年間の宇宙線の到来回数 頻度$N$と、その値の計測条件$X_1$, $\ldots$, $X_p$が記録されたデータを用いて、$N$が従う条件付きのポアソン分布を推定する分析を総称して、ポアソン回帰分析といいます。モデルはポアソン回帰モデルです。 ポアソン回帰は、平均の対数($\log \lambda$)に対する線形回帰分析になります。近似的には頻度の対数$\log N$に、標準最小2乗を用いて重回帰分析を行うことと、ポアソン回帰は信頼区間と残差を除いて、近くなります。 ### パーティション (決定木) JMPの中のパーティションという手法は、一般には決定木(ディシジョンツリー)と呼ばれます。 他の呼び名には次のものがあります。 * 二分木(必ず2つに分割する決定木) * 多分木(3つ以上に分割できる決定木) * 回帰木(予測変数が連続尺度の決定木) * 再帰的分割法(Recursive Partitioning) ![](https://hackmd.io/_uploads/Ska6yBci5.png) 横軸が野球のプロ選手としての年数、縦軸が年間のヒット本数、丸の色は青から赤までのグラデーションで年俸の低高を表しています。3次元散布図は次のとおりです。 {%youtube PXdQ9kaJDWI %} このデータに単回帰分析を行うと、次のような結果を得ます。 ![](https://hackmd.io/_uploads/S1kA4B5jq.png) 重回帰分析は次のようになります。 ![](https://hackmd.io/_uploads/r10mSSqjq.png) ちょっと残差が大きい選手がいますが、たぶんそれを除いても大丈夫で、ヒット1本あたり4.31、年数の1年増加あたり36.95の年俸増加が見込まれるモデルが推定されています。ヒット8本が1年に相当してますか。でも長くプレイするだけで年俸が上がる訳ではなく、打てない打者は淘汰されます。また単回帰の結果、年数が長くなると平均年俸が落ち込んでいますが、これが回帰分析では説明できません。 これに対して、病気の診断ルールのように、ある条件の組み合わせを満たしたらこれ、別の条件の組み合わせを満たしたらこれ、という風にデータを場合分けしていくのが決定木です。メタボの疑いのような条件の組み合わせではなく、変数を一つ選んで、その変数の値の範囲で道が枝分かれしていくのが、決定木の場合分けの特徴です。 決定木分析(回帰木)では、上のデータを次のように分割します。 <img src="https://hackmd.io/_uploads/BJUSOS5j5.png" width="50%"> <img src="https://hackmd.io/_uploads/BkeGdH5o9.png" width="50%"> 右と左が同じ分割を与えていることを理解してください。〔パーティション〕を用いた出力は次のとおりです。 ![](https://hackmd.io/_uploads/BJq6DScic.png) いずれも同じ分析結果です。決定木では、各セルを「ノード」と言います。これ以上は分割されないノードを、終端ノードといいます。もっと分割していくと、右の方にプレーヤー年数が7年以上の場合に、ヒットの本数が91本未満なら年俸の平均が458.6、91本以上なら658.0という分割があります。 ![](https://hackmd.io/_uploads/BJt6Ur5sq.png) プレーヤー年数があまり長くなると、ヒットの本数が落ちていくのが、上の単回帰分析で年俸が右に行くほど下がった理由かもしれません。 決定木は交互作用を検出するのに優れています。その一方で、重回帰分析と同じモデルを表すのに、とても多くの分割を用います。どちらを用いるかは、取り組んでいる問題において、変数の効果の抽出と、交互作用の推定のどちらが重要かによると考えています。 ### ニューラルネット ニューラルネットワークは、人の脳の構造を模倣した回帰モデルです。説明変数と予測変数の複雑な関係を多くのデータから柔軟に推定してくれます。 たとえば上の野球選手の年俸をニューラルネットで分析してみます。JMPのニューラルネットは深層学習はできません。隠れ層は1層のみです。でも、ノンパラメトリック回帰と呼ばれる手法の代替にはなります。 ![](https://hackmd.io/_uploads/SkI7nS9iq.png) これは隠れ層を10ノードに設定して、ニューラルネットワークにデータを学習してもらった結果です。緑の曲面は、年俸とヒット数に対する年俸の回帰モデルです。ヒット数が120あたりを超えると年俸が増え、年数が5年を超えると年俸が増える様子が見て取れます。これに加えて、年数が5年を超えると、ヒット数に対する年俸増加の傾きが異なります。 このような推定には、重回帰分析、ロジスティック回帰、生存時間回帰、ポアソン回帰と比べて多くのサンプル数が必要です。でも、より柔軟な構造(の回帰モデル)をデータから推定してくれます。残差の検討もできますが、てこ比プロットなどは出力できません。 ### ロジスティック回帰 ロジスティック回帰は、カテゴリカルな応答変数(Y)の水準の確率を1つまたは複数の効果(X)の関数としてモデル化します。「モデルのあてはめ」プラットフォームでは、ロジスティック回帰モデルのあてはめに2種類の手法が用意されています。どちらの手法を使用するかは、応答列の尺度(名義尺度または順序尺度)によって決まります。 ロジスティック回帰モデルのあてはめの詳細については、Walker and Duncan(1967)、Nelson(1976)、Harrell(1986)、McCullagh and Nelder(1989)を参照してください。 #### 名義ロジスティック回帰 応答変数が名義尺度の場合には、多水準のロジスティック関数に、線形モデルが最尤法によってあてはめられます。このモデルでは、応答の水準のうち1つを除くすべての水準が、ロジスティック曲線によってモデル化されます。応答水準ごとのロジスティック曲線は、指定のX効果の値での、該当の応答水準の確率を決めます。最後の応答水準の確率は、1からその他の応答水準の確率の和を引いた値です。その結果、X効果のすべての値において、応答水準の予測確率の和は1になります。 応答変数が2水準の場合は、「モデルのあてはめ」ウィンドウの「イベントを示す水準」で、どちらの応答水準の確率をモデル化するかを指定できます。デフォルトでは、最初の応答水準の確率がモデル化されます。 インゴットの製造に関する実験として、加熱時間とソーキング時間を変え、仕様に適合した、圧延可能な状態に仕上がったかどうかを調べてみました。Cox and Snell(1989)を参照してください。データは、サンプルデータのフォルダにある「Ingots.jmp」データテーブルにまとめられています。この例では、「モデルのあてはめ」プラットフォームを使い、「状態」の確率に「加熱時間」と「ソーキング時間」を説明変数としたロジスティック回帰モデルをあてはめます。 ![](https://hackmd.io/_uploads/SJWoQ8co5.png) ![](https://hackmd.io/_uploads/rJsjQU9i9.png) 名義ロジスティック回帰の場合、水準の順に $$ Pr[Y=A] = \frac{Lin[A]}{1+Exp[Lin[A]]+Exp[Lin[B]]} $$ $$ Pr[Y=B] = \frac{Lin[B]}{1+Exp[Lin[A]]+Exp[Lin[B]]} $$ $$ Pr[Y=C] = \frac{1}{1+Exp[Lin[A]]+Exp[Lin[B]]} $$ となります。これは、 $$ \log \frac{Pr[Y=A]}{Pr[Y\neq A]} = \beta_{A0}+\beta_{A1}X_1+\cdots+\beta_{Ap}X_p $$ $$ \log \frac{Pr[Y=B]}{Pr[Y\neq B]} = \beta_{B0}+\beta_{B1}X_1+\cdots+\beta_{Bp}X_p $$ $$ Pr[Y=C]=1-Pr[Y=A]-Pr[Y=B] $$ と同じです。 #### 順序ロジスティック回帰 応答変数が順序尺度の場合、最尤法によって、応答の累積確率に対してロジスティック関数があてはめられます。このモデルでは、応答変数の値が各水準以下となる累積確率がロジスティック曲線でモデル化されます。それらのロジスティック曲線は、どの水準でも同じ形状で、水平方向の位置が異なるだけです。 チーズの添加物(A~D)と味の関係について実験調査を行いました。この調査では、チーズの添加物(A~D)が味に与える影響を調べるため、試食グループによる味の判断を1(非常にまずい)から9(とてもおいしい)までの順序尺度で記録しました。McCullagh and Nelder(1989)を参照してください。データは、サンプルデータのフォルダにある「Cheese.jmp」データテーブルにまとめられています。分析の再現は、[こちら](https://www.jmp.com/support/help/ja/16.2/#page/jmp/example-of-ordinal-logistic-regression-2.shtml)を参照して、各自で行ってみてください。 ![](https://hackmd.io/_uploads/rkGqbI5j5.png) 順序ロジスティック回帰のモデルは $$ \log \frac{Pr[Y=A]}{Pr[Y\neq A]} = \beta_{A0}+\beta_{1}X_1+\cdots+\beta_{p}X_p $$ $$ \log \frac{Pr[Y\leq B]}{Pr[Y > B]} = \beta_{B0}+\beta_{1}X_1+\cdots+\beta_{p}X_p $$ $$ \log \frac{Pr[Y\leq C]}{Pr[Y > C]} = \beta_{C0}+\beta_{1}X_1+\cdots+\beta_{p}X_p $$ $$ Pr[Y=C]=1-Pr[Y=A]-Pr[Y=B]-Pr[Y=C] $$ となります。 ### その他 * 〔ブートストラップ森〕は、より一般にはランダムフォレストと呼ばれています。データサイエンスの実践においてランダムフォレストは、ニューラルネットワークと同等の予測性能を発揮することがあることで知られています。 * 〔ブースティングツリー〕も、決定木のブースティングの方が通りがいいです。これも、結構いい予測性能を発揮します。 * 〔サポートベクトルマシン〕は、理論的にはとてもいい予測方法です。ただし、 * 〔k近傍法〕は、説明変数の数が多い時には使用しない方がいい予測方法です。説明変数の数が少ない時に、他の予測方法と遜色ない性能を発揮します。通常は、これと比べてどれぐらいよくなったか、という比較のベースラインに用います。 * 〔一般化回帰手法〕には、説明変数がとても多い回帰分析において有効なLassoや弾性ネットという方法が用意されています。また説明変数の分布にも多くの分布を仮定できます。用意されているのは、正規分布、Cauchy分布、指数分布、ガンマ分布、Weibull分布、対数正規分布、ベータ分布、二項分布、ベータ二項分布、Poisson分布、負の二項分布、ゼロ強調の二項分布、ゼロ強調のベータ二項分布、ゼロ強調のPoisson分布、ゼロ強調の負の二項分布、ゼロ強調のベータ分布です。 ### 終わりに * モデルは複雑にすればいいとは限りません。データの大きさや、データの中の予測変数と説明変数の関係の複雑さに応じて、適切なモデルを用いることが望まれます。 * 人前で分析結果を説明する前に、当てはまりの良さの確認や、先行研究との比較は行ってください。 * 除いた外れ値は別途、検討してください。 * 私は分析手法に重きを置いて説明しましたが、分析の報告には様々な工夫があった方がいいです。 ![](https://hackmd.io/_uploads/r1VWBv9oc.png) ## クラスタ分析の目的 **データの中の群構造の発見、あるいは分類の生成** データの中に複数の群を発見したり、分類基準を生成することをクラスタリング(クラスタ化)といいます。1つ以上の変数からなり、測定単位が揃っているデータの中に、群構造を見出す手法です。 この目的で用いられる分析手法はクラスタ分析、離散混合分布、潜在クラス分析、潜在プロファイル分析などがあります。 |モデル|群の名前|境界線| |---|---|---| |クラスタ分析|クラスタ、群|あり| |混合分布|コンポーネント(分布)、分布|なし| |潜在クラス分析|潜在クラス|なし| |潜在プロファイル分析|潜在プロファイル|なし| 混合分布と潜在プロファイル分析は同じです。潜在クラス分析は「ほぼ」同じとも、「かなり」違うとも言えます。 ### 階層クラスタリング 階層クラスタリングは次のように、近いもの同士をまとめていく、ボトムアップ的なクラスタ分析手法です。下からまとめて行きます。次の図は、寿司ネタの選好データに基づいてネタ間の距離を算出して、それを元にクラスタ分析した例です。 [![](https://hackmd.io/_uploads/ByWMRAPto.png)](https://www.macromill.com/service/data_analysis/cluster-analysis.html) このグラフをデンドログラムと言います。階層クラスタ分析は必ず、デンドログラムを用いて行います。デンドログラムの最下部には必ず、対象を識別する文字、番号、ラベルなどを記します。そのため、あまり多くの対象がある場合には向きません。 対象同士の距離は普通に定義できても、一旦、小さな群にまとめた後で群と個との距離、また群と群との距離の定義が幾つかあります。 * 最小距離法 * 最大距離法 * 重心距離法(群平均法) * Ward法 例えば人が点在していて、近くにいる人同士でグループが繋がっていく場合など、2群の中のもっとも近い点同士の距離が群間の繋がりに影響する場合は最小距離を用いることが考えられます。そうではなく、健康指標などを分析している場合には、最小距離や最大距離に意味がある状況とは限りません。 そのため、重心距離法またはWard法を用いるのが通例となっています。 さて、デンドログラムを用いたクラスタ分析は、デンドログラムを上から見る方向と、下から見る方向の二つから成ります。 デンドログラムを下から見て、どのような対象が近くなるように並んでいるかを確認します。イクラ、数の子、ウニはいずれも卵です。魚でないネタも近くに集まっています。甲殻類と貝類の中のホタテが近いです。マグロ同士も近いです。青魚は貝類と近いのでしょうかね。 次に上から見て、クラスタに分けて行きます。例えば距離を1.58で切ると、赤線で切った左右の2群に分かれます。1.32で切ると、6群に分かれます。どこで止めるかは、各クラスタに属する対象の意味ある分類となるかを検討して決めます。 ### 非階層クラスタリング #### k平均法 k平均法(k-meansクラスタリング)が代表的な手法です。次のグラフは、選好度の個表データから、人のクラスタ分析を行った結果です。好みの異なる5群に分かれています。 ![](https://hackmd.io/_uploads/SJ8DekdKi.png) もちろん階層クラスタリングと同様に、寿司ネタのクラスタ分析も可能です。 #### 正規混合分布 データが複数の正規分布からなっている、とするモデルです。潜在クラス分析と考え方は同じです。ただし複数の正規分布には、幾つかの種類があります。 ![](https://hackmd.io/_uploads/Sk5M4k_Ki.jpg) これは像を飲んだうわばみと同じ形です。 ![](https://hackmd.io/_uploads/SyhSE1uKo.jpg) でもこんな場合もあります。 ![](https://hackmd.io/_uploads/HkjRSy_Ks.png) 混合分布を構成する分布は、平均だけでなく分散も異なっていいのです。データの分布が赤、推定されたクラスタが青と緑のとき、クラスタ間の境界をどこで引きますか? ただし正規混合分布の場合、AICやBICなどのモデル選択基準を用いて、最適な分布の数を選択することがあります。 #### 潜在クラス分析 潜在クラス分析も、混合分布を推定する分析です。 [![](https://hackmd.io/_uploads/r1eq9yuFj.jpg)](https://its.tos.co.jp/products/latentgold/about-latentclass) 通常は測定値などの数値の変数を含まず、順序尺度や名義尺度などの離散変数のみからなるデータを扱います。 [![](https://hackmd.io/_uploads/Sy3bik_ti.png)](https://www.macromill.com/service/data_analysis/latent-class-analysis.html) このデータに潜在クラス分析を行って見出すのが、潜在クラスです。原理は正規混合分布と似ていますが、分布の表現に離散データならではの工夫があります。クラス数はAICなどで定めます。 ![](https://hackmd.io/_uploads/SJsjLyuKj.png) 潜在クラス分析は、各対象がそれぞれのクラスに所属する確率(ベクトル)も出力してくれます。 ![](https://hackmd.io/_uploads/BkVGsk_ti.png) 各対象を、この確率が最も高い潜在クラスに分類します。この結果は他のクラスタ分析と同じなので、クラスタごとの特徴をみて行きます。 ![](https://hackmd.io/_uploads/H1azi1Oto.png) ### クラスタリングの用い方 単に分類するだけなら、クラスタリングを実行するだけで終わりです。しかし、生成したクラスタ(群)の特徴の把握が分析目的の場合には、大変です。 1. クラスタ数(クラス数, プロファイル数)を最も小さい値に設定します。 2. クラスタ分析を行います。 3. 生成したクラスタの特徴を考察します。 4. クラスタ数を1増やして、2に戻ります。2に戻らずに終了するのは、意味のあるクラスタが得られた時です。 これを、情報量基準などで端折って、次の3ステップで終わらせてもいいです。 1. クラスタ数(クラス数, プロファイル数)を最適になるように設定して、 2. クラスタ分析を行います。 3. 生成したクラスタの特徴を考察します。 ただし、特徴を掴む変数がクラスタ分析に用いられていない場合は、これはだめです。 ## 外れ値 分析に用いたモデルから大きく外れているデータを、取り出して別扱いにします。回帰分析、主成分分析、因子分析などの多変量解析の手法には、外れ値の基準が開発されていることが多いです。 ## 提出物について ### 提出期限 2022年7月31日中。 提出先は[こちら](https://drive.google.com/drive/folders/105RyRu9rmGtebte_pJcnCzHN_JyYXsoC?usp=sharing)です。 ### 報告の構成 研究発表の練習と位置付けて、下記のような部品で構成してください。 * 先行研究(大きなもの一つか二つ) * (社会的な)背景 * 目的、意義 * 概念図 * 特性要因図 * ロジックモデル、ラダリング等 * 分析の変数の説明、データの説明 * 分析手法の説明 * 分析結果の説明(モデル式かモデル図) * 考察 * 結論 ただし仕上がりの体裁は、これらが生で見えるよりは、先行研究と似た体裁が望ましいです。また分析結果から導いた主張や提案について、どのような新規性があるかも主張してもらうといいです。 ### 報告に有用なシナリオ構築手法 * ロジックモデル * なぜなぜ分析 * [ラダリング法](https://www.dm-insight.jp/various-analysis/laddering-method/) 他にもたくさん提案されています。自分に合ったものを用いてください。 ### 報告に使って欲しい部品 * 概念図 * 特性要因図 * モデル図 ### 成果物の著作権は皆さんにあります 次の二つはこの授業の課題をもう少し磨いて提出するのに向いています。ただし後者は課題に、政府・行政のオープンデータを用いた場合でしょうか。 * [JMP Discovery Summit 2022](https://discoverysummit.jmp/ja/2022/japan/home.html) (7月31日まで発表募集中) * [統計データ解析コンペティション2022](https://www.nstac.go.jp/statcompe/) その他、締切が近いものは次のものです。 * [第15回データビジネス創造コンテスト](https://dmc-lab.sfc.keio.ac.jp/dig15/)は今年は、株式会社JMDCが生活習慣病にかかった患者の病気発症前3年、発症後5年の健康診断結果、医療機関受診情報要約のデータを提供してくれます。レセプトデータを触ってみたい学生にはもってこいかと。