2016-10-03 5 views
0

this questionから、二次判別分析(QDA's)スコアを抽出してPCAスコアのようにしてから再利用することが可能かどうかは疑問でした。ここでは、ここでMASSをプロットする方法:qdaスコア

z <- qda(Sp ~ ., Iris, prior = c(1,1,1)/3, subset = train) 

## get the whole prediction object 
pred <- predict(z) 
## show first few sample scores on LDs 

QDAを使用して

## follow example from ?lda 
Iris <- data.frame(rbind(iris3[,,1], iris3[,,2], iris3[,,3]), 
        Sp = rep(c("s","c","v"), rep(50,3))) 
set.seed(1) ## remove this line if you want it to be pseudo random 
train <- sample(1:150, 75) 
table(Iris$Sp[train]) 
## your answer may differ 
## c s v 
## 22 23 30 

、あなたはそれが働いていないことがわかります。

head(pred$x) 
# NULL 
plot(LD2 ~ LD1, data = pred$x) 
# Error in eval(expr, envir, enclos) : object 'LD2' not found 
+0

だからこそ私は質問をします。私は、通常、 'predict'関数の' x'に格納されているスコアをどこで、どのように取得するのか分かりません。 –

+0

'class.'(MAP分類)と' posterior'(クラスの事後確率)を返す 'predict.qda' _clearly_ _states_の助けです。 – hrbrmstr

+0

ええ、しかし、私は聖職時代の得点がどこにあるのだろうか... –

答えて

0

注:コメントが長すぎます。

library(rrcov) 

z <- QdaCov(Sp ~ ., Iris[train,], prior = c(1,1,1)/3) 
pred <- predict(z) 
str(pred) 
## Formal class 'PredictQda' [package "rrcov"] with 4 slots 
## [email protected] classification: Factor w/ 3 levels "c","s","v": 2 2 2 1 3 2 2 1 3 2 ... 
## [email protected] posterior  : num [1:41, 1:3] 5.84e-45 5.28e-50 1.16e-25 1.00 1.48e-03 ... 
## [email protected] x    : num [1:41, 1:3] -97.15 -109.44 -54.03 2.9 -3.37 ... 
## [email protected] ct   : 'table' int [1:3, 1:3] 13 0 1 0 16 0 0 0 11 
## .. ..- attr(*, "dimnames")=List of 2 
## .. .. ..$ Actual : chr [1:3] "c" "s" "v" 
## .. .. ..$ Predicted: chr [1:3] "c" "s" "v" 

それはまた有用である可能性がある堅牢なPCA方法があります:あなたはrrcovパッケージを試してみたいことがありませANSWER

残念ながら、Rのすべてのモデルが同じオブジェクト構造/ APIに準拠しているわけではなく、線形モデルではないため、線形モデル適合構造APIに準拠する可能性は低いです。

ここQDA結果視覚化する方法の例があります - http://ramhiser.com/2013/07/02/a-brief-look-at-mixture-discriminant-analysis/

をそして、あなたが行うことができます:QDA結果のパーティションプロットのための

library(klaR) 

partimat(Sp ~ ., data=Iris, method="qda", subset=train) 

enter image description here

が。

+0

あなたの例を使用するとき、私はこのエラーがあります: 'error in solve.default(getCov(mcd)): システムは計算上単数です:相互条件番号= 3.75922e -17さらに、警告メッセージ:covMcd(x = x、raw.only = raw.only、alpha = alpha、nsamp = nsamp、: )変数4の絶対偏差の15次統計量はゼロです 超平面上に横たわっている15個の観測(26個のデータセットの全体のデータセット)が、 式a_1 *(x_i1 - m_1)+ ... + a_p *(x_ip - m_p)= 0で、(m_1、...、 m_p) の平均とベクトルa < - c(0、0、0、1)の係数a_i ' –

+0

また、 'klaR'プロットにはアラインメントスペースは表示されませんが、特性値の二変量の組み合わせ –

+0

LDAスコアとQDAスコアが同じであると結論付けなければなりませんか? –

関連する問題