Beruflich Dokumente
Kultur Dokumente
((Persze azrt meg vannak az eszkzk arra, hogy az ilyen kiugr rtkeket
objektven kezeljk...)
Amit viszont itt rdemes megemlteni az az, hogy amg az els modellnl a 63-
mas borminta nagyon kiugr volt (valsznleg valami mrsi hiba miatt),
addig a robusztusabb modell ezt a kiugrst tomptotta, s mr nem is olyan
kiugr.
Ha mgis ilyen eset van, akkor msik megkzeltsre van szksg. pldul a
ROBPCA : ami Projection Pursuit s a robusztus kovariancia becslst
kombinlja. ( a PP alkalmazsval alacsonyabb dimenzij alteret keres,
amelyben az MCD becslst lehet alkalmazni)
rrcov-ot installlni
summary(X.HubPCA5)
standard deviation= standard eltrs Ez valsznleg az adott (mestersges)
magyarz vltoz eltrse az tlagtl.
Pl.: prolinkoncentri standard-hibja:
Van szzvalahny borom -> szzvalahny prolin-tartalmom. Kiszmolom ezen
prolin-koncentrcik tlagt, s megnzem a szrst (tlag -
1.borprolinkoncentrci)^2 + (tlag-2.borprolinkoncentrci)^2 + ... Aztn
beosztok a mintaszmmal s gykt vonok. gy megkaptam a prolin-
koncentrci standard hibjt.
summary(X.HubPCA)
gy ltszik, hogy az optimlis szm ebben az esetben 7-tel egyenl:
plot(X.HubPCA)
diszkusszi:
A robusztus megkzelts rendkvl fontos lehet azokban az esetekben, amikor
felttelezzk, hogy az adatok nmelyike kiugr rtk. A klasszikus becslsek
nagyon rzkenyek lehetnek a szlssges rtkekre, s gyakran elfordul,
hogy csak egy vagy nagyon kevs minta dominl az adatok tbbi rszben. Ez
nem felttlenl hiba, mert a befolysos megfigyelsek (kiugr mrsek)
helyesek lehetnek, de ltalban inkbb egy olyan modellbe helyeznnek tbb
bizalmat, amely sok megfigyelsen alapul, nem pedig nhny. Ez nem
ellenttes a ritka modellek kialaktsnak vgyval, amint az az SVM-ekrl
szl rszben lthat: pl. A szkssget gy kaptk meg, hogy csak azokat az
objektumokat vlasztottk ki a szban forg rszterleten, a tbbi kivlasztsi
objektumot folyamat.
pls-t betlteni
center = colMeans(gasoline$NIR[odd,]))
validation = "LOO")
ww <- gasoline.pls$loading.weights[,1]
pp <- gasoline.pls$loadings[,1]
NIR = Xcorr)
NIR = Xcorr2)
col = 2, lty = 2)
col = 4, lty = 4)
0,2093
rms(gasoline$octane[even], gasoline.opls1.pred)
0.3790201
rms(gasoline$octane[even], gasoline.opls2.pred)
0.4488759
11.3.1 PCDA
Az egyik mdja annak, hogy az adatokat egy fatmtrixba tmrtsk,
knnyebb elemzsre, a PCA. Ezt kveten az LDA-t az eredmnyekre (az
eredmnyt gyakran PCDA vagy PCLDA-nak nevezzk). A prosztata adatai j
plda: a vltozk szma messze meghaladja a mintk szmt, annak ellenre,
hogy ez a szm abszolt rtkben nem alacsony. Ismt megprblunk
megklnbztetni a kontroll mintkat s daganatosmintkat, ezrt a hrom
osztly kzl csak kettt tekintnk. Most viszont minden vltozt hasznlunk
{az SVM-ek esetben, s ennek nvelse nagy memriaignyeket
eredmnyezett volna, de a jelenlegi eljrs sokkal hatkonyabb. Az SVD-t a
prosztata adatok nem-bph mintinak crossproduct mtrixn, a 48. oldalon
bemutatott eljrshoz hasonlan, pontokat s terhelseket kapunk. Az els 16
PC-k az X mtrix variancijnak csak 70% -t fedik le, nem tl meglep a
vltozk szmnak figyelembevtelvel. Meg kell nznnk a pontszmokat, az
egyrtelmsg rdekben, amely az els t komponensekre korltozdik:
##INCORRECT
Az egyszeri hatllyal vgzett keresztvalidls az esetek tbb mint 80% -ban helyes elrejelzshez
vezet, jobb, mint amit a 11.4. bra alapjn felttelezhettnk. Nem szabad megfeledkeznnk
azonban arrl, hogy a rk osztly tbb mint ktszerese a kontroll osztlynak, gy a rk nem tl okos,
vletlenszer osztlyozsa valamennyi mintra 65% feletti sikeressghez vezetne. Megjegyezzk,
hogy a predikcis hibk enyhn kiegyenslyozatlanok: tbb kontrollmintt rkk becslnek, mint
fordtva. Ez az eredmny a lda funkci alaprtelmezett eltti eredmnye, ami arnyos a kpzsi
kszlet osztlykpzsvel.
Amint mr emltettk, a fenti eljrs nem megfelel: a hiba becsls optimistn elfogult, mert a PCA
lpst (belertve az tlagcentrlst s a sklzst) nem ptettk be a keresztvalidlsba. A baloldali
Nem baloldali, hanem kihagyott :-)minta (ezek a tesztelsre fenntartott mintk) mg ma is hatssal
van a klasszifikcis modellre a PC-khez val hozzjrulsa rvn, mg a helyes mdon a
keresztvalidlsnak tartalmaznia kell a PCA-t. Ezt egy explicit keresztvalidls hurok hasznlatval
lehet elvgezni, a mintk egy rsznek elhagysval, a PCA elvgzsvel s az LDA modell
kiptsvel, de egy egyszerbb megkzelts az, ha a klasszifikcit regresszis problmaknt
rtelmezik, s a pcr funkcit hasznljk, a beptett - keresztezdsi lehetsgek. Amg itt vagyunk,
el kell klntennk a kpzsi adatokat a vizsglati adatoktl, hogy valamifle becslst kapjunk a
becslsi hibra, valamint a latens vltozk optimlis szmra.
Itt lthat:
Az eredmny a 11.5 brn lthat jobb brn lthat. Br a bal oldali brn
szerepl RMS rtkek (magasabbak a PC-k szmval) nvekednek, ahogy a
fkomponensek szma n, a hibs szmok szma nem. A kpzsi adatok
sszer teljestmnyt mutatnak, egy hatszm, hatrtk hiba esetn pedig
csak 15% alatt hat PC-k figyelembevtelvel.
Termszetesen ugyanezt tehetjk a tesztkszlethez is:
betlteni kohonent
predictions.loo <-
sapply(1:16, function(i, arr) classmat2classvec(arr[,,i]),
prostate.pcr$validation$pred)
loo.err <- apply(predictions.loo, 2, err.rate,
prostate.type[odd])
plot(loo.err, type = "l", main = "PCDA", col = "red",
ylim = c(.2, max(loo.err)),
xlab = "# PCs", ylab = "Misclassif. rate")
Ez a 11.6 brn lthat szrke egyenes vonalat eredmnyezi (a besorolsi hiba elg magas az
sszetevk sszes szmnl. Taln nyolc komponenst lehet legkevsb rossz modellknt
felvenni (16-tal mgkevesebb lenne a hiba, de 10-nl kevesebb fkomponenst akart a szerz
kivlasztani az egyszersg s a processzor kedvrt). A vizsglati eredmnyek teljes
mrtkben analg mdon rhetk el, s ugyanazon a telken fekete szaggatott vonalak(knt)
jelennek meg:
prostate.pcrpred <-
predict(prostate.pcr, new = prostate.df[even,])
predictions.pcrtest <-
sapply(1:16, function(i, arr) classmat2classvec(arr[,,i]),
prostate.pcrpred)
lines(apply(predictions.pcrtest, 2, err.rate,
prostate.type[even]),
type = "l", lty = 2)
table(prostate.type[even], predictions.pcrtest[,8])
Gyakran szmoltak be arrl, hogy ez a mdszer jl mkdik a gyakorlatban, ugyanakkor van egy
( ismert) hibja: nincs ok felttelezni azt, hogy az osztly diszkriminci szempontjbl relevns
informcikat az els fkomponensek tartalmazzk.. Mivel a PLS figyelembe veszi a fgg
vltozt, amikor ltens vltozk vannak, ez logikus alternatva. Az irodalomban ezt a
diszkriminancia analzisnek ezt a formjt, ltalban a kdolt osztlyvltozkra val kzvetlen
regresszi formjban, PLSDA-nak nevezik [148].
Az elz oldalakon a PCDA-gyben teljesen analg kdot hasznlva, a 11.6 brn jobbra tallunk.
A vrt mdon kevesebb komponensre van szksg az optimlis eredmnyek elrshez {hat a
PLSDA esetben lenne kivlasztva, mg a PCR-nek nyolcra lenne szksge. A PLSDA hiba rtkei
lnyegesen alacsonyabbak, mint a PCR-nl, mind a LOO-hatrokon, mind a vizsglati adatok
esetben: mr egy PLS komponenssel a vizsglati adatok elrejelzse jobb, mint a PCDA-modell
nyolc. Hat sszetevvel, A tesztkszlet PLSDA elrejelzse gy nz ki:...
Egy alternatva egy klasszikus LDA elvgzse a PLS pontszmokon {tbb papron (pldul [148,
149, 150]), amelyrl azt lltjk, hogy a minsg jobb. Ha az els pr PC-n vgzett LDA teljes
mrtkben analg a PCR-re az osztlymtrixon (legalbb egyenl osztlymretek esetn), ez nem
gy van a PLS-ben, mivel az osztlyismereteket a ltens vltozkban hasznljk. Az egyik ezrt
szmthat bizonyos eltrsekre. Elszr ki kell szmolnunk a tesztkszlet pontszmait, amelyet a
(sklzott) vizsglati adatok utlagos szorzsval vgznk a PLS objektum vetleti mtrixval:
Ezt kveten LDA-modellt pthetnk a training set pontszmaira, amelyek kzvetlenl elrhetk a
pontszm-kivon funkcival, s hasznlhatjuk ezt a modellt, hogy elrejelzseket tegynk a teszt
kszletre:
NA EDDIG AZ N RSZEM!!!!!
data(shootout)
wl <- seq(600, 1898, by = 2)
indices <- which(wl >= 1100 & wl <= 1700)
nir.training1 <-
data.frame(X = I(shootout$calibrate.1[,indices]),
y = shootout$calibrate.Y[,3])
mod1 <- plsr(y ~ X, data = nir.training1,
ncomp = 5, validation = "LOO")
RMSEP(mod1, estimate = "CV")
eredmny: 4,974 (Nem sokkal rosszabb, mint a tant adatoknl mrt rtk.----
RMS(e)-re azt az eredmnyt dobja ki, hogy: 4,485 (Nyilvn azrt nem nulla,
mert nincs a vilgon olyan F mtrix, ami az egyik mszeren mrt rtkekbl
(adott hullmhosszakon mrt elnyelsek) tkletesen kiszmoln a msik
mszeren mrt rtkeket mind az SSZES mintnl. Ha csak 1 db mintnk
lenne akkor a spektrum-mtrixaink helyett spektrum-vektoraink lennnek, s
akkor az F-vektor tkletesen t tudna vinni az egyik spektrumot a msikba.
Ott az RMSE rtke nulla lenne :-)
Mivel a teljes felvett spektrumnak csak kis rsze fontos, ezrt nincs rtelme a
teljes spektrumot (minden hullmhosszt) felhasznlni ahhoz, hogy megjsoljuk
az egyik mszer mrsbl a msik mszert. ((Ht ja, a gzolajosnl is elg
volt nhny hullmhosszat kivlasztani az oktnszm megtippelshez.))
Msik alkalmazsi terlete az MCR-nek a HPLC-UV analzis. Ott sem biztos, hogy
a valamelyik idpillanatban felvett spektrumot tnyleg egy anyag hozza ltre (tiszta
spektrum), simn lehet, hogy kt -egymstl el nem vlasztott- anyag spektrumjnak
(koncentrcijukkal slyozott) sszegt ltjul.
11.5.1. Elmlet
Az E-mtrix a hiba-mrtix. Minden mrsben van egy kis hiba (pl valamelyik
idpillanatban, a szomszd szobban a egy bekapcsol hajszrt
feszltsgingadozst okozott, s a mszer tpja nem tudta korrignli azt) .
Nyilvnval ezrt, hogy nem tudja a C*ST tkletesen reproduklni az X-et.
Addig folytatja, amg meg nem unja, akarom mondani, amg az E hibamtrix
elemeinek rtke nem lesz elg kicsi
Ksbb szletett meg az EWFA (ablakos EFA) mdszer, ahol az almtrix nem
kap jabb s jabb sorokat, oszlopokat, hanem "vgigpsztzzk vele az
eredeti mtrixot. Na ez egy kicsit kusza volt, de nem az:
Van egy pl 6*5-os mtrixom. Kivlaszom pl a bal fls sarokban lv 4
elemt(zld):
Aztn tovbbmegyek
Addig folytatoim, amg vgig nem psztztam az egsz mtrixot. Minden egyes
zld kismtrixnak kiszmolom a sajtrtkait, s feljegyzem ket.
X <- bdata$d1
X.efa <- efa(X, 3)
matplot(X.efa$forward, type = "l", ylab = "Singular values")
A Msik rajzon a backward (htrl) EFA analzis brja van. Ott az eredeti nagy
(40*73-mas) X mtrix sorait s oszlopait kezdik elhagyni, s annak
fggvnyben figyelik a nulls sajtrtkek arnyt. Ez a rajz meg kb azt
mutatja meg, hogy mikor jutott el a detektorhoz az utols csepp is az adott
komponensekbl .
samitezenazbrnltunk,htazfelfoghataCmtrixunkelzetes
becslsnek.Minhahromdarab(kicsitcsnya)egykomponens
kromatogramotraktakvolnaegymsra.HtgytudjaazEFAalgoritmus
megbecslniakezdCmtrixot,amitakorbbanlertMCRitercis
modelltovbbfinomt.
(Azt mg nem tudjuk, hogy konkrtan mennyi az els anyag molris extinkcis
koefficiensnek rtke az adott hullmhosszakon, hiszen ehhez tudni kne azt, hogy
mikor pontosan mennyi a koncentrci, de azt mr legalbb igen, hogy pl 325nm-en
ktszer akkora, mint 330nm-en) (ex-has adatok ezek, csak a hasamra csaptam...)
s azt is meg tudjuk figyelni, hogy milyen a leglassabban lejv anyag eltn (idben
cskken) spektruma. Ami kirly, mert az is egy tiszta spektrum! Hiszen a msik kt
anyag mr rg lecsurgott a HPLC-rl.
if (i == 1) {
Xref <- newX / sqrt(crossprod(newX))
} else {
Xref <- rbind(Xref, newX / sqrt(sum(crossprod(newX))))
}
}
dimnames(Xref) <- NULL
NINI! Csak nem 3 spektrumot ltok? ---> Megvan az S-mtrix kicsit pontatlan rtke.
Ezt betplljuk az MCR-be, aztn addig iterlgat a gp amg ki nem dob valami
pontosat/vglegeset C-re s S-re
Ezzel lefutott a modell a bert forrskd vgl is a kezdeti S mtrixot hasznlta fel. HA
what =="row" -t rtunk vonla az tdik sorba, akkor a kezdeti "C" elcis mtrixot
hasznlta volna fel indtbecslsnek, Igazbl tkmindegy.
Az rms az valami szrs lesz. nem tudom minek a szrst tra ida, de az egyik
az efa a msik az opa mdszerhez val
X.mcr.efa$rms