Loading
Relaterad information
Allmänt om multivariata metoder

Ett flödesschema för multivariata metoder

PLS exempel: Tobak


Externa länkar

Program:
SIMCA

Websidor:
The ordination web page

PLS

Beskrivning

PLS-modellering (PLS, Partial Least Squares regression to Latent Structures) är en robust standardmetod för att finna en modell för sambandet mellan en uppsättning variabler, ofta kallade X, och en annan uppsättning variabler, ofta kallade Y, i ett multivariat dataset. Den är också lämplig för klassificering. Exempelvis kan X bestå av tid, plats, nederbörd, temperatur, vindhastighet och Y av analyser av olika föroreningar i krondropp.

Metoden fungerar utmärkt med korrelerade X-variabler och många Y, vilket inte klassisk multipel linjär regression (MLR) gör. Vid PLS kan man säga att närvaron av korrelerade variabler till och med är att föredra då metoden i princip använder medelvärdet av de korrelerade variablerna vid modellberäkningen.

På Y-sidan kan man ha en eller flera variabler. Finner man t.ex. i en PCA på Y-variablerna att de är grupperade så kan det bli bättre modeller om man gör flera PLS-modeller, en för varje Y-variabelgrupp.

PLS kan också användas för att finna olinjära samband mellan X och Y. Detta kan ske via variabeltransformationer, eller genom att man lägger till kors-, kvadrat, eller tredjegradstermer av olika X-variabler till X-sidan av data.

Exempel

Samband X → Y

Ofta har man variabler Y som man vill kunna prediktera med en uppsättning X-variabler. Det kan vara så att X-variablerna är enklare / billigare att mäta än Y, eller att man helt enkelt söker eventuella sambad. I exemplet Tobak vill man prediktera oorganiska variabler från organiska analysdata.

Viktigt att veta

Skalning

I många program skalas variablerna automatiskt när man kör PLS, genom att de centreras och skalas till variansen = 1.0, innan komponenterna beräknas. Detta kallas ibland för ”autoskalning”. De flesta program för PLS har möjligheter att ändra skalningsförfarandet.

Det finns situationer då man inte vill detta, tex då man anser att storleken på variabelvariabiliteten är informationsbärande såsom vid vissa spektrala data, eller då alla variabler är i samma mätenhet. I sådana fall behöver man ange detta innan beräkningarna görs.

Fallgropar

Metoden förutsätter att sambandet mellan X och Y är någorlunda kontinuerligt. Därför är det lämpligt att börja analysen med PCA på hela datasetet, bara X-delen och bara Y-delen (om man har många Y). Då kan man förvissa sig om att man inte har grupperingar, eller oregelbundenheter i data.

PLS kan inte hantera rena språng i data. I sådana fall kan det ändå gå att göra modeller, men då måste modelleraren göra två modeller: en modell för data ”före” språnget och en annan efter språnget. Förkomsten av språng ser man oftast vid en inledande PCA på data.

Detaljer

Variabeltyper

PLS kan hantera både kvantitativa (t.ex. temperatur) och kvalitativa (går inte att rangordna, t.ex. svampsort eller platser) variabler. Kvalitativa variabler expanderas till lika många 0/1-variabler som det finns varianter av de kvalitativa variablerna.

Antal komponenter

Man kan säga att PLS beräknar komponenter, en komponent i taget, likt då man skalar lök, den mest dominanta först och sedan i fallande ordning genom att maximera kovariationen mellan ”vinkelräta” riktningar i X- och Y-rymderna. Finns det ingen kovariation kvar stannar algoritmen om den inte stannat tidigare pga korsvalideringen (se nästa stycke).

Med PLS vill man oftast ha en modell, vars framtida prediktioner man kan lita på. Då vill man ha en stoppregel för antalet komponenter som säger att hit men inte längre finns det prediktiv styrka hos komponenterna. Detta åstadkoms genom att för varje ytterligare komponent utesluta observationer i data, räkna delmodell med dessa utselutningar och sedan använda modellen för att prediktera de uteslutna observationernas Y-värden från deras X-värden. Om prediktionsfelet inte är för stort accepteras komponenten, annars stoppar man. Metoden kallas korsvalidering och görs automatiskt i Simca.

Metoden LOO, Leave One Out, är ett särfall av korsvalidering. Andra metoder som används är sk bootstrapping.

Modellekvation

En PLS-modell kan uttryckas som ett regressionssamband, Ypred = b0 + bPLS’ * X, där bPLS är modellkoefficienterna. Det finns två varianter av b: de oskalade som kan användas i ett Excelark för att beräkna predikterat Y från mätta X; samt de skalade som används vid utvärderingen av de olika X-variablernas betydelse för prediktionen av Y. I det senare fallet är alla X ofta skalade till variansen 1.0 och man kan se X-variablernas relativa betydelse för Y.

Algoritm

En PLS-modell modellerar sambandet mellan de centrerade X och Y i ett dataset enligt

X = T * P + E,
Y = U * C + F,
samt parametern W.

Här är E och F residualer (det som inte beskrivs av modellen). T, P, W, U och C är modellparametrar. Vid prediktion använder man

Ypred = Y0 + X’ * W * inv(P’ * W) * C’ = Y0 + X’ * bPLS

Modelleringsgraden, hur mycket av Y som är modellerat, anges av R2Y:
R2Y = 1 – (kvadratsumma(F) / kvadratsumma(Y)).

Prediktionsgraden, modellens prediktionsförmåga, Q2Y fås från korsvalideringen:
Q2Y = 1 – (kvadratsumma(prediktionsfelY) / kvadratsumma(Y)).

R2Y ökar alltid med antalet komponenter. Q2Y ökar i början för att sedan falla då modellen blir överanpassad pga för många komponenter. R2Y är alltid större än Q2Y, differensen mellan de två bör inte vara större än ca 0.2 - 0.3. Modeller med Q2Y i intervallet 0.5 – 0.9 är ofta användbara .

Extra modelltermer

Ibland vill man identifiera en kvadratisk, eller kubisk, modell eller så anar man att det finns interaktioner bland X-variablerna. I dessa fall lägger man till extra termer såsom Xi*Xi, Xi*Xi*Xi, Xi*Xj på X-sidan.

Tidsseriemodellering (AR, MA, ARMA) kan man åstadkomma genom att lägga till tidsförskjutna X- eller Y-variabler som extra termer på X-sidan. Vi går inte in närmare på detta här, utan hänvisar till manualen för t.ex. Simca.

Transformationer

Det är inte ovanligt att man erhåller en bättre modell genom att transformera vissa variabler. Det är möjligt att transformera både på X- och på Y-sidan.

Konfidensintervall

Via korsvalideringen får man även skattade konfidensintervall för modelltermer och prediktioner.

Residualer

Den del av X som inte modelleras av T*P är residualen, E. I idealfallet beskriver T*P strukturen i X och i E hamnar bruset i data. Är modeldimensionaliteten för låg är modellen underanpassad och det finns struktur kvar i E. Är den för hög är modellen överanpassad och det finns brus i modellen. Residualen kan visualiseras som varje observations avstånd till modellplanet, kallad Distance to the Model i X, DModX. På samma sätt är U*C strukturen i Y och redidualen F kan användas för att beräkna DModY.

Avståndsfördelningen är approximativt Sqrt(F)-fördelad och man kan beräkna ett tröskelvärde DCritX/Y för detta avstånd, vilket kan användas för avvikelsedetektion och klassificering.

Klassificering

Vid klassificering har man en kvalitativ Y-variabel som innehåller de grupper man vill klassa mot. Metoden kallas PLS-DA och är en variant av diskriminantanalys. Som Y har man då klasstillhörighet som 0/1-variabler, lika många som man har klasser. En sådan modell kommer att domineras av X-variabler som korrelerar med klassuppdelningen. För att PLS-DA skall fungera är det bäst om klasserna ligger hyfsat separerade i rymden, detta kan man ofta se med en PCA av data. Fördelen mot klassisk DA är att varje ny observation som skall klassas först kontrolleras map på X, som måste vara likt X hos träningsdata, DModX får inte vara för stor. Om inte, kan det vara så att man fått en observation som inte passar till någon klass, exvis: vi klassar äpplen och har råkat få in ett päron. Klassisk DA skulle förutsätta att alla nya observationer tillhör någon av klasserna.

PLS-varianter

OPLS är variant som först modellerar det i X som inte hänger ihop med Y, subtraherar detta från X och sedan bygger modell X → Y på resten. En OPLS-modell kan vara enklare att tolka än en PLS-modell, men ger aldrig bättre prediktioner.

Det finns ytterligare varianter av PLS, men de presenteras inte här.

Hantering av värden under en detektionsgräns och saknade värden

Vissa algoritmer kan klara bortfall i data. Femtio procent bortfall i variabler eller observationer är då sällan problematiskt, bara bortfallen är någorlunda spridda i data (slumpmässiga).

Det finns inget enkelt sätt att inkludera värden under en detektionsgräns. För vissa tillämpningar och när man har få värden under detektionsgränsen kan man ersätta dessa värden med t.ex. 0.5*detektionsgränsen.

Programvara

PLS finns i vissa kommersiella statistikprogram, men det är inte alla som kan hantera bortfall.
Matlab, R, PAST (delvis)
SIMCA från Umetrics hanterar bortfall


Ansvarig för webbsidan:
webmaster@miljostatistik.se