誰でも、従来の決定木アルゴリズム(R など)と比較した条件付き推論木(Rのパッケージctree
からparty
)の主な違いを説明できますrpart
か?
- CIツリーの違いは何ですか?
- 強みと弱み?
更新:私はホーソーンらによるコメントでチーが言及している論文を見てきました。私はそれを完全に追うことができませんでした-順列を使用して変数が選択される方法を説明できますか(例:影響関数とは)?
ありがとう!
誰でも、従来の決定木アルゴリズム(R など)と比較した条件付き推論木(Rのパッケージctree
からparty
)の主な違いを説明できますrpart
か?
更新:私はホーソーンらによるコメントでチーが言及している論文を見てきました。私はそれを完全に追うことができませんでした-順列を使用して変数が選択される方法を説明できますか(例:影響関数とは)?
ありがとう!
回答:
価値があるもの:
両方rpart
とctree
再帰的に実行変量分割共変量のセットに値に基づいて、従属変数のを。rpart
また、関連するアルゴリズムは通常、現在の共変量を選択するために情報尺度(Gini係数など)を使用します。
ctree
、その著者によると(chlのコメントを参照)、次の変数選択バイアスrpart
(および関連するメソッド)を回避します。他とは異なり、ctree
情報測定値を最大化する変数(Gini係数など)を選択する代わりに、有意性テスト手順を使用して変数を選択します。
有意性検定、またはそれ以上:アルゴリズムの各開始時に計算される多重有意性検定(共変量の選択-分割の選択-再帰)は置換検定です。つまり、「帰無仮説の下での検定統計量の分布は、観測されたデータポイントのラベルの再配置の下で、テスト統計のすべての可能な値。」(ウィキペディアの記事から)。
ここで検定統計量については、従属変数と共変量の変換(恒等式、つまり変換なしを含む)から計算されます。両方の変数に対して多数の変換のいずれかを選択できます。DV(従属変数)の場合、変換は、求めていた影響関数と呼ばれます。
の置換テストの小さな例R
:
require(gtools)
dv <- c(1,3,4,5,5); covariate <- c(2,2,5,4,5)
# all possible permutations of dv, length(120):
perms <- permutations(5,5,dv,set=FALSE)
# now calculate correlations for all perms with covariate:
cors <- apply(perms, 1, function(perms_row) cor(perms_row,covariate))
cors <- cors[order(cors)]
# now p-value: compare cor(dv,covariate) with the
# sorted vector of all permutation correlations
length(cors[cors>=cor(dv,covariate)])/length(cors)
# result: [1] 0.1, i.e. a p-value of .1
# note that this is a one-sided test
ここで、上記の1つだけでなく、一連の共変量があるとします。次に、上記のスキームのように各共変量のp値を計算し、最小のp値を持つものを選択します。さまざまな種類の共変量(数値やカテゴリなど)を持つ可能性があるため、相関の代わりにp値を直接計算する必要があります。
共変量を選択したら、可能性のあるすべての分割(または、分割前にDVの最小数の要素を要求するなど、多くの場合制限される数のすべての分割)を調べて、順列ベースのテストを再度評価します。
ctree
DVと共変量の両方のための可能な変換の数が付属しています(のヘルプを参照Transformations
でparty
パッケージを)。
したがって、一般的に主な違いctree
は、統計理論に基づく共変量選択スキームを使用する(つまり、順列ベースの有意性検定による選択)ため、の潜在的なバイアスを回避するrpart
ことです。たとえば、条件付き推論ツリーは、ランダムフォレストのベース学習器として使用できます。
これは私が得ることができる限りです。詳細については、論文を読む必要があります。あらゆる種類の統計分析を適用したいときは、自分が何をしているかを本当に知っていることを強くお勧めします。