問題の背景:私の研究の一環として、データセット(がん患者の遺伝子発現データ)から特徴のセットを選択できる2つのアルゴリズムを作成しました。次に、これらの機能をテストして、見えないサンプルをどれだけ癌または非癌として分類できるかを確認します。アルゴリズムの実行ごとに、ソリューション(一連の機能)が生成され、Z個の非表示サンプルでテストされます。ソリューションのパーセンテージ精度は、次のように計算されます(correct classifications / Z) * 100
。
アルゴリズムは2つあります:アルゴリズムXとアルゴリズムY
データセットA、データセットB、データセットCの3つの別々の(異なる癌)データセットがあります。これらのデータセットは互いに非常に異なります。サンプルごとに同じ数のサンプルや同じ数の測定(機能)はありません。
各データセットで各アルゴリズムを10回実行しました。したがって、アルゴリズムXには、データセットAから10件、データセットBから10件、データセットCから10件の結果があります。全体として、アルゴリズムXには30件の結果があります。
私の問題: 3つすべてのデータセットにわたるアルゴリズムXの合計パフォーマンスが、アルゴリズムYの合計パフォーマンスと統計的に有意に異なるかどうかを確認したいと思います。
各データセットのアルゴリズムXの結果を単一の結果セットに結合することは可能ですか?このようにして、アルゴリズムXの30の標準化された結果とアルゴリズムYの30の標準化された結果を取得します。t検定を使用して、2つの方法の間に有意差があるかどうかを確認できます。
編集-これらは進化的アルゴリズムであるため、実行するたびに少し異なるソリューションを返します。ただし、存在する場合にサンプルを癌または非癌のいずれかに強く分類できるサンプルの機能がある場合、アルゴリズムが実行されるたびにその機能が選択されます。
私が得る少し以下の理由により10回ごとに異なる結果を:
- これらのアルゴリズムはランダムにシードされます。
- 私は繰り返しランダムサブサンプリング検証を使用します(10回の繰り返し)。
- 私が使用しているデータセット(DNAマイクロアレイとプロテオミクス)は、アルゴリズムが行き詰まる可能性のある多くの局所最適値があるという意味で操作するのが非常に困難です。
- 検出したい機能間およびサブセット間の相互作用がたくさんあります。
- 私は50の染色体を訓練し、それらは特定の長さに制限されていません。それらは自由に成長したり収縮したりします(ただし、選択圧によって長さが短くなります)。これはまた、最終結果にいくつかのバリエーションをもたらします。
そうは言っても、アルゴリズムはほとんど常に機能の特定のサブセットを選択します!
これが私の結果のサンプルです(ここでは、アルゴリズムごとに10のうち4つだけが示されています)。
データセット/実行アルゴリズムXアルゴリズムY A 1 90.91 90.91 A 2 90.91 95.45 A 3 90.91 90.91 A 4 90.91 90.91 B 1 100 100 B 2 100 100 B 3 95.65 100 B 4 95.65 86.96 C 1 90.32 87.10 C 2 70.97 80.65 C 3 96.77 83.87 C 4 80.65 83.87
ご覧のとおり、3つのデータセットの2つのアルゴリズムの結果をまとめました。このデータでクラスカル・ウォリス検定を実行できますが、有効ですか?私はこれを尋ねます:
- さまざまなデータセットの精度が相応なものかどうかはわかりません。そうでない場合、私が行ったようにそれらをまとめることは意味がなく、それらに対して行われた統計的検定も意味がありません。
- このように精度を組み合わせると、全体的な結果が外れ値の影響を受けやすくなります。あるデータセットでのあるアルゴリズムの優れたパフォーマンスは、別のデータセットでの平均的なパフォーマンスを覆い隠す可能性があります。
この場合もt検定を使用できません。これは次の理由によります。
- 整合性-t検定は、データセットの違いが整合的である場合にのみ意味があります。
- t検定では、比較される2つのアルゴリズムの違いが正規分布であることを必要とします。私の場合、この条件を保証する方法はありません(少なくとも私は認識しています)。
- t-testは、外れ値の影響を受け、テスト統計を歪め、推定標準誤差を大きくしてテストの検出力を低下させます。
どう思いますか?この場合、アルゴリズムXとYを比較するにはどうすればよいですか?