Informatie

Canonical Correspondence Analysis gebruiken op matrices met ontbrekende gegevens


Ik heb een matrix van locaties waar niet alle omgevingsvariabelen die ik wil beoordelen, zijn bemonsterd. Met andere woorden, er zijn sites waar de hele set variabelen is bemonsterd, en er zijn andere sites waar slechts enkele variabelen zijn gesampled. Werkt Canonical Correspondence Analysis met ontbrekende gegevens voor de omgevingsvariabelen? Zo ja, wat zou het effect zijn als de ontbrekende waarden niet worden opgenomen?


Ten eerste kun je paarsgewijze correlaties tussen je omgevingsvariabelen niet volledig analyseren met NA-waarden, en daarom kun je covariërende variabelen niet volledig buiten beschouwing laten. Als dit het geval is, weet u niet welke van de covariabele variabelen verantwoordelijk is voor eventuele trends in uw gegevens.

Ten tweede geloof ik niet dat CCA zal werken met NA-waarden - je zult ofwel de waarnemingen met die ontbrekende waarden moeten elimineren of ze moeten invullen met kolomgemiddelden. Beide methoden hebben echter invloed op uw resultaten, dus ga voorzichtig te werk.

Ten derde vraag ik me af of CCA wel de weg is die je wilt gaan. nMDS (niet-metrische multidimensionale schaling) is veel minder beperkt dan CCA. Bovendien heeft het niet zoveel aannames/beperkingen als CCA.

Van McCune & Grace (2002):

De volgende twee vragen kunnen worden gebruikt om te beslissen of CCA geschikt is: (1) Bent u alleen geïnteresseerd in de gemeenschapsstructuur die verband houdt met uw gemeten omgevingsvariabelen? (2) Is een unimodaal model van soortenreacties op de omgeving redelijk? Als u voor een specifiek probleem beide met ja beantwoordt, kan CCA geschikt zijn

Ontbrekende milieugegevens vormen echter nog steeds een probleem in nMDS.


Biplot-scores van canonieke correspondentieanalyse

Ik gebruik het R-pakket vegan om canonieke correspondentieanalyse (CCA) uit te voeren. Als invoer hebben we twee matrices, de ene is (sites)x(species) en de andere is (sites)x(conditions).

Voorbeeldgegevens (en bron van plot) zijn hier.

Soortenladingen zijn gemakkelijk toegankelijk met samenvatting(cca_model)$species . Wat ik probeer te vinden is de ladingen voor de verklarende variabelen, de voorwaarden. De enige samenvatting die ik kan vinden zijn biplotscores. Als ik door de documentatie voor veganistisch kijk, kan ik geen beschrijving vinden van hoe ze worden berekend. Kan ik ze optellen over CCA-componenten om een ​​idee te krijgen van hoeveel ze de gegevens beïnvloeden?

Dit is een biplot van twee CCA-componenten. De scores worden gebruikt als coördinaten voor de pijlen.

Wat zijn biplotscores in de context van CCA?

Kunnen biplotscores worden gebruikt om te bepalen hoeveel effect de omstandigheden hebben op de responsvariabelen?


Fylogenetische hulpmiddelen voor vergelijkende biologie

Ik heb zojuist een nieuwe functie gepost om fylogenetische canonieke correlatieanalyse uit te voeren. Canonieke correlatie is een procedure waarbij, gegeven twee sets variabelen (bijvoorbeeld een set van xs en een set van Y), identificeren we de orthogonale lineaire combinaties van elk die de correlaties tussen de sets maximaliseren. Dit type analyse wordt het meest natuurlijk gebruikt in een evolutionaire studie om bijvoorbeeld een reeks morfologische variabelen en een reeks omgevings- of ecologische variabelen te analyseren.

De fylogenetische versie van deze analyse houdt rekening met de fylogenie en een (expliciet of impliciet) evolutiemodel om de lineaire combinatie van xs en Ys die de . maximaliseert evolutionaire correlaties (dat wil zeggen, de afgeleide correlatie van evolutionaire veranderingen) tussen de twee sets (Revell & Harrison 2008).

Het programma is heel eenvoudig. Directe link naar de code is hier. Om de functie te gebruiken, laadt u eerst de bron:

Hier is boom een ​​fylogenetische boom en zijn X & Y twee datamatrixen met waarden voor één of meerdere karakters in kolommen en soorten in rijen. Rijen moeten worden benoemd op soort.

De resultaten worden geretourneerd als een lijst met de volgende elementen:

> resultaat
$cor
[1] 0.3764753 0.1852836 0.1054606
$xcoef
CA1 CA2 CA3
[1,] 0.04497549 -0.09956576 -0.45926364
[2,] -0.18997199 0.46065246 -0.07810429
[3,] -0.42425815 -0.16063677 -0.18791902
[4,] 0.25374826 0.29822455 -0.06176255
$ycoef
CA1 CA2 CA3
[1,] -0.2704762 -0.3841450 0.1029158
[2,] -0.1048448 0.2502089 0.5860655
[3,] 0.3736474 -0.2580132 0.2743137
$xscores
CA1 CA2 CA3
1 0.27821077 -0.33344726 0.94985154
2 -0.23088044 0.78905936 0.26050453
3 -1.44525534 -0.22803129 -0.64071476
.
$yscores
CA1 CA2 CA3
1 0.55710619 -0.850905958 0.300282830
2 1.41482268 1.237829442 -0.446763906
3 -1.40453596 0.227361557 -0.964307876
.
$chisq
[1] 8.9531203 2.0752824 0.5032912
$p
[1] 0.7069293 0.9126462 0.7775202

Hier is $cor de verzameling van canonieke correlatie $xcoef & $ycoef zijn de canonieke coëfficiënten $xscores & $yscores zijn de canonieke scores, in termen van de oorspronkelijke soort en $chisq & $p zijn &Chi 2 met bijbehorende p-waarden. De p-waarden worden correct geïnterpreteerd als de kans dat de le en alle daaropvolgende correlaties zijn nul.

Een paar jaar geleden heb ik een C-programma uitgebracht dat min of meer hetzelfde doet, maar er zijn een paar verschillen.

1) Mijn C-programma optimaliseert globaal de &lambda-parameter. Ik zal dit zo spoedig mogelijk aan de huidige functie toevoegen.

2) Mijn C-programma transformeert eerst de gegevens in een fylogenetische vrije ruimte en berekent vervolgens de canonieke correlaties. Dit betekent dat, hoewel de correlaties in beide methoden gelijk zijn, de scores niet meer qua soort zijn en anders zullen zijn dan in deze functie.


Beschrijving van de gegevens

Voor ons analysevoorbeeld gaan we voorbeeld 1 uitbreiden over het onderzoeken van de associaties tussen psychologische metingen en academische prestatiemetingen.

We hebben een gegevensbestand, mmreg.dta, met 600 waarnemingen op acht variabelen. De psychologische variabelen zijn locus_of_control , self_concept en motivatie . De academische variabelen zijn gestandaardiseerde tests in lezen (lezen), schrijven (schrijven), wiskunde (wiskunde) en wetenschap (wetenschap). Bovendien is de variabele vrouw een nul-één indicatorvariabele, waarbij de variabele een vrouwelijke student aanduidt.


Zie ook

Deze helppagina beschrijft twee beperkte ordinatiefuncties, cca en rda . Een verwante methode, op afstand gebaseerde redundantieanalyse (dbRDA) wordt afzonderlijk beschreven (capscale). Al deze functies retourneren vergelijkbare objecten (beschreven in cca.object ). Er zijn tal van ondersteunende functies die kunnen worden gebruikt om toegang te krijgen tot het resultaatobject. In de onderstaande lijst zullen functies van het type cca alle drie de beperkte ordinatie-objecten afhandelen, en functies van rda alleen rda- en capscale-resultaten.

De belangrijkste plotfuncties zijn plot.cca voor alle methoden en biplot.rda voor RDA en dbRDA. Generieke veganistische plotfuncties kunnen echter ook de resultaten aan. De scores zijn toegankelijk en geschaald met scores.cca, en samengevat met samenvatting.cca. De eigenwaarden zijn toegankelijk met eigenvals.cca en de regressiecoëfficiënten voor beperkingen met coef.cca . De eigenwaarden kunnen worden uitgezet met screeplot.cca , en de (aangepaste) R-kwadraat kan worden gevonden met RsquareAdj.rda . De scores kunnen ook worden berekend voor nieuwe datasets met predict.cca waarmee punten aan wijdingen kunnen worden toegevoegd. De waarden van beperkingen kunnen worden afgeleid uit de wijding en de samenstelling van de gemeenschap met calibrate.cca .

Diagnostische statistieken kunnen worden gevonden met goodness.cca, inertcomp, spenvcor, intersetcor, tolerantie.cca en vif.cca. De functie as.mlm.cca past het resultaatobject opnieuw aan als een meervoudig lm-object, en dit maakt het mogelijk om invloedsstatistieken te vinden ( lm.influence , cooks.distance etc.).

Op permutatie gebaseerde significantie voor het algemene model, enkele beperkende variabelen of assen kunnen worden gevonden met anova.cca . Automatische modelbouw met R step-functie is mogelijk met deviance.cca , add1.cca en drop1.cca . Functies ordistep en ordiR2step (voor RDA) zijn speciale functies voor beperkte ordinatie. Gerandomiseerde datasets kunnen worden gegenereerd met simul.cca .

Afzonderlijke methoden die zijn gebaseerd op een model met beperkte ordinatie zijn hoofdresponscurves (prc) en variantiepartitionering tussen verschillende componenten (varpart).

Ontwerpbeslissingen worden uitgelegd in het vignet over "Ontwerpbeslissingen" dat toegankelijk is met browseVignettes("vegan").

Pakket ade4 biedt een alternatieve beperkte ordinatiefunctie pcaiv .


Schalen: Correspondentieanalyse

5 extensies

Hoewel CA in de eerste plaats wordt toegepast op een tweezijdige contingentietabel, wordt de methode regelmatig toegepast om meerwegtabellen, voorkeurentabellen, beoordelingen en meetgegevens op ratio- of intervalniveauschalen te analyseren. Voor meerwegtabellen zijn er twee benaderingen. De eerste benadering is om de tafel om te zetten in een vlakke tweerichtingstafel die geschikt is voor het probleem dat zich voordoet. Dus als een derde variabele in het bovenstaande voorbeeld wordt geïntroduceerd, bijvoorbeeld 'geslacht van respondent', dan zou een geschikte manier om de driewegtabel af te vlakken zijn door interactief 'land' en 'geslacht' te coderen als een nieuwe rijvariabele, met 23×2=46 categorieën, kruistabellen met de antwoorden op de vragen. Voor elk land zou er nu een mannelijk en een vrouwelijk punt zijn en men zou geslachten en landen kunnen vergelijken op deze rijkere kaart. Dit proces van interactieve codering van de variabelen kan doorgaan zolang de gegevens niet te gefragmenteerd raken in interactieve categorieën met een zeer lage frequentie.

Een andere benadering van multiway-gegevens, multiple-correspondentieanalyse (MCA) genoemd, is van toepassing wanneer er verschillende categorische variabelen zijn die hetzelfde probleem omzeilen, vaak 'items' genoemd. MCA wordt meestal gedefinieerd als het CA-algoritme dat wordt toegepast op een indicatormatrix Z waarbij de rijen de respondenten of andere steekproefeenheden zijn, en de kolommen dummyvariabelen zijn voor elk van de categorieën van alle variabelen. De gegevens zijn nullen en enen, waarbij de enen de gekozen categorieën voor elke respondent aangeven. De resulterende kaart toont elke categorie als een punt en in principe ook de positie van elke respondent. Als alternatief kan men de zogenaamde Burt-matrix opzetten), B=ZZ, de vierkante symmetrische tabel van alle tweerichtingskruistabellen van de variabelen, inclusief de kruistabellen van elke variabele met zichzelf (genoemd naar de psycholoog Sir Cyril Burt). De Burt-matrix doet denken aan een covariantiematrix en de CA van de Burt-matrix kan worden vergeleken met een PCA van een covariantiematrix. De analyse van de indicatormatrix Z en de Burt-matrix B geef equivalente standaardcoördinaten van de categoriepunten, maar iets andere schalen in de hoofdcoördinaten sinds de hoofdtraagheid van B zijn de kwadraten van die van Z.

Een variant van MCA genaamd gezamenlijke correspondentieanalyse (JCA) vermijdt het passen van de tabellen op de diagonaal van de Burt-matrix, wat analoog is aan de kleinste-kwadratenfactoranalyse.

Wat betreft andere soorten gegevens, namelijk rangschikkingen, beoordelingen, gepaarde vergelijkingen, ratioschaal- en intervalschaalmetingen, is het kernidee om de gegevens te hercoderen in een vorm die de basisconstructies van CA rechtvaardigt, namelijk profiel, massa en chi-kwadraat afstand. Bij de analyse van rangschikkingen of voorkeuren is het bijvoorbeeld moeilijk te rechtvaardigen om het CA-algoritme toe te passen op de oorspronkelijke rangschikking van een reeks objecten door een steekproef van proefpersonen, omdat er geen reden is waarom gewicht aan een object zou moeten worden toegekend in verhouding tot naar zijn gemiddelde rangschikking. Een praktijk die verdubbeling wordt genoemd, lost het probleem op door een 'anti-object' toe te voegen voor elk gerangschikt object of een 'anti-subject' voor elk reagerend onderwerp, in beide gevallen met rangschikkingen in de omgekeerde volgorde. Deze toevoeging van schijnbaar overbodige gegevens leidt ertoe dat CA verschillende varianten van hoofdcomponentenanalyse op de oorspronkelijke ranglijst effectief uitvoert.

Een recente bevinding van Carroll et al. (1997) is dat CA kan worden toegepast op een vierkante symmetrische matrix van gekwadrateerde afstanden, getransformeerd door elke gekwadrateerde afstand af te trekken van een constante die aanzienlijk groter is dan de grootste gekwadrateerde afstand in de tabel. Dit levert een oplossing op die de klassieke schaaloplossing van de afstandsmatrix benadert.

Al deze uitbreidingen van CA sluiten nauw aan bij Benzécri's oorspronkelijke concept van CA als een universele techniek voor het verkennen van veel verschillende soorten gegevens door middel van bewerkingen zoals verdubbeling of andere oordeelkundige transformaties van de gegevens.

De laatste ontwikkelingen op dit gebied, waaronder besprekingen over bemonsteringseigenschappen van CA-oplossingen en een uitgebreide referentielijst, zijn te vinden in de delen die zijn uitgegeven door Greenacre en Blasius (1994) en Blasius en Greenacre (1998).


Kwaliteitsstatistieken in canonieke correspondentieanalyse

Canonieke correspondentie-analyse is een belangrijk multivariaat hulpmiddel in de ecologie. Een belangrijk aspect van de analyse is de representatie van soorten optima, waarbij deze optima worden geschat door de gewogen gemiddelden van de soort met betrekking tot omgevingsvariabelen. Dit artikel laat zien dat, strikt genomen, canonieke correspondentie-analyse niet de weergave van de soortoptima optimaliseert, maar de traagheid van de abundantiematrix onder lineaire beperkingen. Er wordt betoogd dat de eigenwaarden die in de analyse worden verkregen, meestal gerapporteerd in toegepaste studies, een maat zijn voor de kwaliteit van de weergave van de abundantiematrix en alleen de kwaliteit van de representatie van de soortoptima aangeven wanneer omgevingsvariabelen niet gecorreleerd zijn. In de praktijk zijn omgevingsvariabelen vaak gecorreleerd. Er zijn dus aanvullende kwaliteitsstatistieken nodig om uit te drukken hoe goed de soorten optima zijn vertegenwoordigd. In dit artikel leiden we kwaliteitsstatistieken af ​​voor de weergave van de soortoptima en de omgevingsvariabelen, en gebruiken we kunstmatige en empirische gegevens om het gebruik ervan te illustreren. Copyright © 2001 John Wiley & Sons, Ltd.


Canonical Correspondence Analysis gebruiken op matrices met ontbrekende gegevens - Biologie

Een alternatief zou zijn om een ​​vergelijkbare benadering te gebruiken, maar de berekening van de correlatiematrix te vervangen door iets dat geschikter is, en de matrix vervolgens naar lagere dimensies te projecteren. Dit idee heeft geleid tot een van de meest productieve en meest gebruikte methoden in de geschiedenis van multivariate analyse in de ecologie --- canonieke correspondentieanalyse of CCA. Net zoals RDA betrekking heeft op PCA, heeft CCA betrekking op CA. Dat wil zeggen, (1) begin met een Chi-kwadraat vegetatiematrix [(werkelijk - voorspeld)/sqrt(voorspeld)], (2) regressie van de verschillen van verwachting op omgevingsvariabelen om aangepaste waarden te krijgen, met behulp van een gewogen regressie waarbij de totale abundantie door plots wordt gebruikt als de gewichten, en (3) bereken de Euclidische afstand van de aangepaste vegetatiematrix en projecteer door eigenanalyse. Het belang van specifieke omgevingsvariabelen wordt vervolgens beoordeeld aan de hand van hun correlatie met het geprojecteerde spreidingsdiagram.

Net als CA zijn er verschillende algoritmen beschikbaar om CCA te berekenen. De hierboven geschetste benadering volgt de benadering van Legendre en Legendre (1988). Ter Braak (19xx) beschrijft een algoritme gebaseerd op wederzijdse middeling dat wordt gebruikt door het populaire programma CANOCO. Het resultaat is hoe dan ook hetzelfde.

Daarnaast is er ook meer dan één S-Plus/R-algoritme om CCA te berekenen. Stephane Dray droeg CAIV bij, terwijl Jari Oksanen een cca()-functie bijdroeg als onderdeel van zijn veganistische pakket (versie 1-3.9 of hoger). De twee verschillen enigszins in de conventies voor het schalen van de resultaten. Omdat de veganistische cca()-functie resultaten oplevert die identiek zijn aan die van CANOCO, en omdat we de veganistische bibliotheek al laden, zullen we de veganistische cca()-functie gebruiken. Om de plots geproduceerd door cca() echter beter vergelijkbaar te houden met die van andere programma's, zullen we de plotroutines die bij de veganistische cca()-functie worden geleverd, vervangen door andere.

Lopende cca()

Om een ​​CCA te berekenen, selecteert u die omgevingsvariabelen waarvan u denkt dat ze belangrijk zijn en voert u deze in de cca() functie in formulenotatie, net zoals we deden voor GLM's en GAMS. De volledige taxonmatrix staat aan de linkerkant van de vergelijking, met geselecteerde omgevingsvariabelen aan de rechterkant.

In dit specifieke voorbeeld was de CCA niet erg succesvol. Slechts 0,6975/10,8656 of 0,064 van de totale variabiliteit werd vastgelegd in de CCA. Het is duidelijk dat de gewogen regressiestap niet erg succesvol was in het vastleggen van de variabiliteit in vegetatiesamenstelling, maar na glm() en gam() zouden we niet al te verrast moeten zijn.

De volgende reeks lijnen geeft de eigenwaarden die bij de projectie horen. De bovenste regel geeft de "beperkte" eigenwaarden. Omdat we maar drie variabelen in ons omgevingsdataframe hadden, kunnen we maar drie beperkte eigenwaarden hebben. De drie waarden zijn samen 0,69755. dus

De CCA plotten

Wat CA betreft, worden de soorten weergegeven als rode kruisen en monsters als zwarte cirkels. In deze analyse wordt de eerste as geassocieerd met toenemende hoogte, terwijl de tweede as wordt geassocieerd met afnemende helling en toenemende aspectwaarde (av).

Zoals je kunt zien, zijn de soorten vrij goed gecondenseerd in het midden van de wijding. Om een ​​beter beeld te krijgen, kunnen we "scaling=1" specificeren om "monsters als gewogen gemiddelden van de soort" te betekenen.

Package vegan levert een aantal grafische functies voor ordiplots, waaronder: punten() en identificeren(). We kunnen de identificeren() functie om specifieke monsters of soorten te identificeren. Afhankelijk van of u een duidelijker beeld wilt van monsters van soorten, kunt u plotten met de juiste schaalverdeling en vervolgens de identificatiefuncties met dezelfde schaal gebruiken.

Categorische variabelen aan de analyse toevoegen

Merk op hoe anders deze plot is van de eerste. Terwijl de totale verklaarde variabiliteit niet erg veel toenam (en het kan ook niet afnemen met een toename van vrijheidsgraden), resulteert het regresseren van de vegetatie tegen de topografische positie naast de andere variabelen in een heel ander perspectief op de variabiliteit. Elke mogelijke topografische positie wordt uitgezet op het zwaartepunt van de monsters van dat type, weergegeven als een "X". Om erachter te komen welke welke is, kijk naar het laatste element van de samenvatting van het cca-object.

Discussie

Nevenfuncties

"De functies vinden statistieken die lijken op 'afwijking' en 'AIC' in beperkte ordinatie. Eigenlijk hebben beperkte wijdingsmethoden geen log-waarschijnlijkheid, wat betekent dat ze geen AIC en deviantie kunnen hebben. Daarom moet u deze functies niet gebruiken, en als u ze gebruikt, moet u ze niet vertrouwen. Als u deze functies gebruikt, blijft het uw verantwoordelijkheid om de geschiktheid van het resultaat te controleren."

De functie hieronder maakt niet direct gebruik van log-waarschijnlijkheid, maar gebruikt eerder een nogal brute permutatiebenadering en test of het toevoegen van een variabele meer traagheid verklaart dan willekeurig verwacht. Desalniettemin weet ik zeker dat Jari het afkeurt en ik neem het hier op voor wat voor goed het ook mag dienen.


Canonieke correspondentieanalyse is een techniek die, geloof ik, is ontwikkeld door mensen uit de gemeenschapsecologie. Een oprichtingsdocument is Canonieke correspondentieanalyse: een nieuwe eigenvectortechniek voor multivariate directe gradiëntanalyse door Cajo J.F. Ter Braak (1986). De methode omvat een canonieke correlatieanalyse en een directe gradiëntanalyse. Het idee is om de prevalenties van een reeks soorten te relateren aan een verzameling omgevingsvariabelen.

Traditioneel probeert CCA (correlatie) die lineaire combinatie van de X-variabelen en die lineaire combinatie van de Y-variabelen te vinden die de grootste correlatie met elkaar hebben. Het is gebaseerd op de eigen decompositie van $Sigma_<12>Sigma_<22>^<-1>Sigma_<21>$ , waarbij de Sigma-matrices correlatiematrices van de variabelen zijn. Zie Mardia, Kent en Bibby (multivariate analyse).

CCA gaat dus uit van een lineair verband tussen de twee reeksen variabelen. De correspondentieanalyse gaat uit van een ander verband: de soorten hebben een gaussiaanse verspreiding in een door de omgevingsfactoren bepaalde richting.

Merk op dat CCA symmetrisch is in de X-variabelen en de Y-variabelen. Correspondentieanalyse veronderstelt geen symmetrie, aangezien we de soort willen verklaren in termen van hun omgeving - niet andersom.


Integratieve analyse van twee datasets

Methoden voor dimensiereductie in één tabel zijn uitgebreid tot de EDA van twee matrices en kunnen tegelijkertijd een paar matrices ontleden en integreren die verschillende variabelen meten op dezelfde waarnemingen (Tabel 3). Methoden omvatten gegeneraliseerde SVD [42], Co-Inertia Analysis (CIA) [43, 44], schaarse of bestrafte uitbreidingen van Partial Least Squares (PLS), Canonical Correspondence analysis (CCA) en Canonical Correlation Analysis (CCA) [36, 45 –47]. Merk op dat zowel canonieke correspondentieanalyse als canonieke correlatieanalyse worden aangeduid met het acroniem CCA. Canonieke correspondentie-analyse is een beperkte vorm van CA die veel wordt gebruikt in ecologische statistieken [46], maar het moet nog worden toegepast door de genomics-gemeenschap bij de analyse van paren van omics-gegevens. Daarentegen hebben verschillende groepen uitbreidingen van canonieke correlatieanalyse toegepast op omics-gegevensintegratie. Daarom gebruiken we in deze review CCA om canonieke correlatieanalyse te beschrijven.