No.01866 判別分析による判定  【たかはし】 2006/12/12(Tue) 13:07

初めて投稿させていただきます。R初心者です。
青木先生の判別分析discを使用させていただきました。
訓練データから得られた判別モデルを使用して,テストデータの判別を
行いたいのですが,その場合はソース中のpredictionを参考にして
関数を作成すればよいのでしょうか?
宜しくお願いいたします。

No.01867 Re: 判別分析による判定  【青木繁伸】 2006/12/12(Tue) 13:25

その通りです。

No.01871 Re: 判別分析による判定  【たかはし】 2006/12/12(Tue) 17:05

ご返信ありがとうございます。

訓練データを含めたテストデータで判別推定を試してみました。
訓練データよりもケース数が増えたため,テストデータ中の訓練データのDistance, P.Value は,disc関数で訓練データのみで求めた時の値とは異なってしまいましたが,推定の方法が間違っているのでしょうか?

引数にtestdataを与えるようにし,discに以下のソースを追加してみたのですが。

#testdata_prediction
ncase_test <- nrow(testdata)
t.data_test <- t(testdata)
D2_test <- (ncase_test-ng)*matrix(sapply(1:ng, function(i) {temp <- t.data_test-mean[i,]; sapply(1:ncase_test, function(j) temp[,j]%*%inv.w%*%temp[,j])}), nr=ncase_test)
P2_test <- pchisq(D2_test, p, lower=FALSE)
prediction_test <- as.factor(g.name[apply(P2_test, 1, order)[ng,]])

宜しくお願いいたします。

No.01872 Re: 判別分析による判定  【青木繁伸】 2006/12/12(Tue) 17:31

#D2_test <- (ncase_test-ng)*matrix(sapply(1:ng,
function(i) {temp <- t.data_test-mean[i,]; sapply(1:ncase_test,
function(j) temp[,j]%*%inv.w%*%temp[,j])}), nr=ncase_test)

D2_test <- (ncase-ng)*matrix(sapply(1:ng,
function(i) {temp <- t.data_test-mean[i,]; sapply(1:ncase_test,
function(j) temp[,j]%*%inv.w%*%temp[,j])}), nr=ncase_test)
ではないでしょうか?

No.01875 Re: 判別分析による判定  【たかはし】 2006/12/12(Tue) 18:16

青木先生,
早速ご回答いただきありがとうございました。
解決できました。

● 「統計学関連なんでもあり」の過去ログ--- 039 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る