Home Forum Statistica con R Calcolo del chi quadro e confronto tra due tipologie di dati

This topic contains 29 replies and has 2 voices.

Viewing 15 posts - 1 through 15 (of 30 total)
  • Author
    Posts
  • #5739
    NancyR
    NancyR
    Participant

    Buonasera,
    come avrete già notato io ed R abbiamo un rapporto complicato.
    Mi è stata fatta questa richiesta: confrontare dati di letteratura e dati raccolti per ogni specie (Si tratta di confronti a coppie? Di dati appaiati?) Come affrontare questo dilemma su R?
    Faccio leggermente schifo in statistica e se mi potesse insegnare qualcosa di utile vi ringrazierei tantissimo.

    #5743

    pdeninis
    Participant

    A occhio direi di no, perché dati appaiati significa dati in qualche modo dipendenti, ovvero che abbiano motivo di essere correlati tra loro. Se non ho capito male, ciò che le tue coppie condividono è soltanto il fatto di essere relative allo stesso parametro, non di far capo alle stesse unità statistiche, che è la condizione per cui si parla di dati appaiati.
    Se si tratta di confronti in diversi parametri (specie) dei tuoi dati vs i dati di letteratura relativi agli stessi parametri, si tratterebbe più di un confronto indipendente (dati non appaiati: i tuoi dati vs. quelli della letteratura) di una relazione multivariata (quel confronto viene effettuato simultaneamente per tutte le diverse specie). Questo nel caso che comunque le diverse specie osservate condividano a loro volta qualcosa, per cui si debbano ritenere correlate in qualche modo (non so molto di questo campo, però immagino che potrebbe essere il fatto di vivere tutte nello stesso ambiente).
    Altrimenti si tratterebbe di relazioni multiple univariate, ovvero confronti separati per ciascuna specie.

    Comunque per dare un risposta seria bisognerebbe aver capito meglio di cosa parli.
    Ovvero sapere qual è la la tua variabile risposta, cosa rappresenta e cosa vuoi sapere da questa analisi.

    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    #5754
    NancyR
    NancyR
    Participant

    Ti ringrazio per la risposta, le tue spiegazioni iniziano a darmi qualche indizio su come procedere però ti spiego meglio cosa mi è stato richiesto.
    I miei dati sono il numero di animali di differenti specie dello stesso taxon avvistati in un determinato ambiente.
    Confronto i dati raccolti da precedenti lavori (questo rappresenta la letteratura) con i dati che invece ho raccolto io.
    Quindi nel mio db avrò da una parte il numero di individui per ogni specie raccolti da altri e dall’altra il numero di individui per ogni specie raccolti da me.
    Spero sia più chiaro ora.
    Il mio professore mi ha chiesto di provare a calcolare il chi quadro specie per specie, facendo dei confronti a coppie sui dati che ho.

    #5772

    pdeninis
    Participant

    I miei dati sono il numero di animali di differenti specie dello stesso taxon avvistati in un determinato ambiente.

    Ma cosa vuoi confrontare esattamente?

    Il test chiquadrato confronta percentuali.

    Un test che mi sembra di qualche interesse potrebbe confrontare le percentuali di ciascuna specie all’interno dello stesso ambiente nei tuoi dati rispetto a quelle riscontrabili in uno, qualcuno o tutti dei precedenti studi.

    Se dunque disponi di dati già in forma di frequenze per ciascuna specie (con righe e colonne che rappresentano le categorie dei fattori), crea una matrice dati che esprima il tipo di confronto cui sei interessata.

    Bada bene che puoi fare diversi tipi di confronti, a seconda di quella a cui sei interessata.

    Puoi confrontare il tuo database con uno studio in letteratura alla volta separatamente.
    Oppure il tuo con il database contenente tutti quelli in letteratura aggregati insieme.
    Oppure potresti essere interessata a sapere se le percentuali di specie all’interno dei diversi ambienti (o delle diverse rilevazioni, non so quale sia il caso in questione) sia sempre la stessa. avresti p. es nelle righe i vari studi (il tuo e gli altri in letteratura) e nelle colonne le varie specie.

    Esempio del terzo caso con 3 studi confrontati contemporaneamente.

    specie<-c("cani","gatti","topi","pesci","uccelli")
    studio<-c("studio1","studio2","studio3")
    frequenze<-c(10,15,20,25,30,32,27,22,17,12,14,19,24,29,34)
    MAT<-matrix(frequenze, nrow=3,ncol=5, byrow=T)
    colnames(MAT)<-specie
    rownames(MAT)<-studio
    MAT
            cani gatti topi pesci uccelli
    studio1   10    15   20    25      30
    studio2   32    27   22    17      12
    studio3   14    19   24    29      34
    
    chisq.test(MAT)
    
            Pearson's Chi-squared test
    
    data:  MAT
    X-squared = 31.101, df = 8, p-value = 0.0001348
    
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    #5780

    pdeninis
    Participant

    Esempio di sopra con confronto solo tra 2 studi (1 e 3):

    
    MAT13<-MAT[-2,]
    MAT13
            cani gatti topi pesci uccelli
    studio1   10    15   20    25      30
    studio3   14    19   24    29      34
    
    chisq.test(MAT13)
    
            Pearson's Chi-squared test
    
    data:  MAT13
    X-squared = 0.23091, df = 4, p-value = 0.9938
    

    Così puoi fare i confronti a coppie non corretti per moltiplicità:

    
    # studi 1 e 3
    chisq.test(MAT[-2,])
    
            Pearson's Chi-squared test
    
    data:  MAT[-2, ]
    X-squared = 0.23091, df = 4, p-value = 0.9938
    
    # studi 2 e 3
    chisq.test(MAT[-1,])
    
            Pearson's Chi-squared test
    
    data:  MAT[-1, ]
    X-squared = 21.78, df = 4, p-value = 0.0002216
    
    # studi 1 e 2
    chisq.test(MAT[-3,])
    
            Pearson's Chi-squared test
    
    data:  MAT[-3, ]
    X-squared = 23.864, df = 4, p-value = 0.00008506
    

    Se invece vuoi il confronto tra il tuo campione e tutti i dati della letteratura aggregati insieme devi fare prima le somme per specie di tutti gli studi in letteratura e poi li metti nella seconda riga (dopo quella con i dati tuoi) nella matrice che darai per argomento alla funzione chisq.test().

    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    #5789
    NancyR
    NancyR
    Participant

    La tua risposta é davvero esaustiva, grazie! Io devo confrontare i valori di abbondanza relativa di diverse specie appartenenti alla stessa classe. Vorrei fare fare un confronto tra i vari dati (miei dati e dati bibliografici) quindi penso che l’ultimo suggerimento sia il più logico, ma conoscendomi finirò per provarli tutti xD
    Ti farò sapere!

    #5793

    pdeninis
    Participant

    Nel caso del campione totale con dati aggregati, il problema dell’aggregazione è più complesso di come l’ho messo io.

    L’operazione che ho descritto viene definita meta-analisi, ed esistono criteri precisi per effettuarle al meglio oltre che caveat per mettere in guardia dai problemi che possono generare.

    Nel caso di tabelle di contingenza una modalità nota di realizzarle è il metodo Mantel-Haenszell di cui puoi leggere in italiano in questo link. Tratta di discipline biomediche, però non dovrebbe essere difficile trasferire i concetti nel tuo caso.
    Se cerchi approfondimenti troverai una trattazione su Agresti. A. Categorical Data Analysis

    Ripeto non conosco il tuo campo e non so se magari esistono convenzioni per cui un ambiente è standardizzato nelle sue caratteristiche essenziali (tra cui le dimensioni, la superficie o il volume), e quindi gli ambienti sono omogenei per convenzione.
    Come pure non so se esiste qualche legge di natura secondo la quale la densità di esemplari di varie specie tende ad essere costante (osservazioni banali su un acquario mi ha fatto sorgere la convinzione che in un determinato volume finisca con il vivere un numero massimo abbastanza preciso di animali: se ne metti di più dopo un po’ li ritrovi morti). Considerazioni di questo genere dovrebbero portare a definire la corretta metodologia per realizzare la meta-analisi.

    • This reply was modified 1 month, 1 week ago by  pdeninis.
    #5802
    NancyR
    NancyR
    Participant

    Come pure non so se esiste qualche legge di natura secondo la quale la densità di esemplari di varie specie tende ad essere costante (osservazioni banali su un acquario mi ha fatto sorgere la convinzione che in un determinato volume finisca con il vivere un numero massimo abbastanza preciso di animali: se ne metti di più dopo un po’ li ritrovi morti).

    Hai espresso un concetto molto importante in ecologia, quello di capacità portante. Le popolazioni nella realtà sono densità dipendenti, perché più aumenta la densità più gli individui di una specie devono suddividersi le risorse (acqua,cibo,riparo,partner sessuali ecc), oltre una certa soglia definita capacità portante la popolazione inizia a declinare e non cresce più o comunque cresce sempre meno rapidamente fino ad arrestarsi. Questo concetto è stato utilizzato anche per studiare gli effetti della crescita della popolazioni umana sulla società odierna.
    A parte questo breve excursus mi hai causato un attimo di panico, consulterò qualche testo e sceglierò la strategia adeguata, ma credo che opterò per un confronto tra l’abbondanza di una specie calcolata tramite dati bibliografici e quella con i dati raccolti, metodo semplice e indolore! Mi serve solo sapere se il loro confronto mi da un risultato significativo e il metodo con cui ho raccolto i miei dati sembra essere utile.
    Sarà una luuuunga mattinata.

    #5803

    pdeninis
    Participant

    ma credo che opterò per un confronto tra l’abbondanza di una specie calcolata tramite dati bibliografici e quella con i dati raccolti, metodo semplice e indolore!

    Le meta-analisi servono proprio a questo. Se trovi papers con i dati della letteratura già aggregati in forma di meta-analisi puoi usare quelle.
    Altrimenti ti tocca studiare come fartela da te a partire dai dati dei singoli studi disponibili. In bocca al lupo!

    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    #5810
    NancyR
    NancyR
    Participant

    ora sono più confusa, grazie lo stesso :(

    #5811

    pdeninis
    Participant

    Io lo faccio ogni tanto per avere stime più stabili, più precise e, si spera, più attendibili dell’effetto di alcuni trattamenti e della loro deviazione standard ai fini del calcolo del sample size. L’operazione si fa in mezz’ora per aggregare una decina di studi.
    La parte più lunga del lavoro è quella per selezionare studi coerenti tra loro, che abbiano lo stesso tipo di disegno sperimentale e la stessa popolazione di riferimento: che siano insomma omogenei tra loro.

    Meta-analisi di tabelle di contingenza non le ho mai fatte per cui ho piacere di saperne di più: se ti rendi conto che ti saranno necessarie, tienici aggiornati.

    Questo studio descrive la metodologia da seguire per farne una di quelle a me note, per medie e deviazioni standard:

    Machtei, E. E. (2001). The effect of membrane exposure on the outcome of regenerative procedures in humans: a meta-analysis

    Si fa facilmente con un foglio di calcolo.

    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    #5814
    NancyR
    NancyR
    Participant

    non ho mai fatto meta-analisi nemmeno al corso di statistica @_@
    Ti allego i dati e ti spiego:
    > dati2<-data.frame(specie,tr,ctrl)
    > dati2
    specie tr ctrl
    1 specie1 18 11
    2 specie2 23 5
    3 specie3 1593 16
    4 specie4 2590 74
    5 specie5 0 1
    6 specie6 0 1
    7 specie7 853 6
    8 specie8 364 1
    9 specie9 4 0
    10 specie10 5 2
    11 specie11 115 2
    12 specie12 24 1
    13 specie13 2433 17
    14 specie14 9 0
    15 specie15 10415 22
    16 specie16 9 8
    17 specie17 4414 40
    18 specie18 308 2


    I trattamenti sono il numero di individui contati da precedenti ricerche per ogni specie.
    I controlli sono il numero di invidui contati da me tramite la mia ricerca.
    Come posso confrontare i trattamenti e i controlli di ogni specie effettuando l’analisi della varianza e calcolando il chi quadro? (io ho fatto un semplice t.test e il risultato è questo:
    > t.test(x,y)

    Welch Two Sample t-test

    data: x and y
    t = 2.0882, df = 17.002, p-value = 0.05213
    alternative hypothesis: true difference in means is not equal to 0
    95 percent confidence interval:
    -13.18548 2565.18548
    sample estimates:
    mean of x mean of y
    1287.61111 11.61111

    Dimmi che mi puoi aiutare, non riesco a capire cosa fare o scegliere x_x
    Ho calcolato anche il chi quadro su ogni specie come mi hai suggerito tu, prendendo solo i valori di tr e ctrl della specie 1, poi della specie 2 e così via.
    Ho preso però le abbondanze relative, escludendo le specie con gli 0 e i valori mancanti e prendendo quelle con valori maggiori di 5(come ho trovato in una guida, per evitare che la funzione chisqr mi dia errore), forse quello ha un po’ di senso e i risultati sembrano essere sensati.

    #5815

    pdeninis
    Participant

    Se il tuo outcome è costituito da conteggi, t-test o ANOVA potrebbero non essere test adatti. Da verificare se una regressione di Poisson possa essere più adeguata.

    Ma vedo che le frequenze dei dati di letteratura le hai trovate già aggregate: se è così il problema non esiste. Avevo capito che dovevi ricavare tu una meta-analisi da una serie di studi diversi…

    Il motivo per cui non mi sento di consigliarti è perché non sono in grado di valutare la correttezza del confronto, come ti dicevo sopra. La responsabilità del fatto che sia sensato confrontare quei numeri devi assumerla tu. Io chiederei ad un esperto della materia o farei una ricerca per vedere se esistono precedenti e a quali condizioni sono stati ritenuti attendibili. Prova a chiedere se Davide o Francesco possono aiutarti. Per giudicare la correttezza del modello bisogna conoscere le condizioni mediante le quali è stato fatto il campionamento, la qual cosa comporta valutazioni specifiche. Magari è più semplice di quello che immagino, ma essendo perplesso da un confronto in cui i dati non mi sembrano… standardizzati (nel senso che gli ambienti da cui derivano i conteggi potrebbero avere caratteristiche diverse che favoriscano una specie rispetto alle altre in confronto ad altri ambienti) potrei darti un parere superficiale e fuorviante. Il test potrebbe avere senso se vuoi valutare se gli ambienti sono diversi nella capacità di ospitare le specie… ma, come vedi, io non ho nemmen capito qual è il tuo obiettivo!

    Il problema per il chi-quadrato ed il log-likelihood ratio G2 test non sono le frequenze minime osservate, ma le frequenze attese minori di 5. Particolari proporzioni dovute ad altre celle possono far sì che le frequenze attese siano più alte delle osservate, sopratutto se le sparse celle sono poche. Io aspetterei ad eliminarle (il che potrebbe essere fonte di bias di selezione) di vedere se il software rileva frequenze attese < 5.

    L’optimum però è il test esatto di Fisher. Con i tuoi numeri dubito che il software ce la farebbe. Dicono che è usabile fino n=1000, io non ci sono mai andato vicino, solo piccoli campioni e per di più 2×2.
    Nel tuo caso se il numero di colonne è troppo grande potrebbe dare un errore e fermarsi.
    Però puoi settare il parametro simulate.p.value=TRUE con un B=almeno 10000: così ti calcola il p value come percentuale di una simulazione Monte Carlo di combinazioni casuali sarebbe il giusto compromesso.

    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    #5825
    NancyR
    NancyR
    Participant

    Anche io avevo pensato ad usare il glm con una distribuzione poisson ma non saprei come sistemare i dati onestamente. Ti ringrazio per la pazienza, proverò ad aprire un nuovo topic.

    #5827

    pdeninis
    Participant

    Se nel t-test x ed y erano le colonne tr e ctrl del database, tu hai confrontato la media di tr con quella di ctrl, ovvero quanti animali in media c’erano nell’ambiente tuo rispetto a quanti nell’ambiente (virtuale) ottenuto aggregando gli altri studi insieme. Ma… era ciò che ti interessava? Ha senso? Le differenze tra le specie non sono più rappresentate.

    L’idea del chiquadrato mi sembrava migliore.
    Una prova con il test di Fisher la devi fare:

    
    mat<-rbind(tr,ctrl)
    fisher.test(mat, simulate.p.value=TRUE, B=10000)
    

    In questo modo starai controllando se le proporzioni di ciascuna specie nell’ambiente in cui si trovava (considerando il tuo vs quello virtuale ottenuto aggregando gli altri) sono uguali oppure no, che credevo aver capito fosse il tuo interesse primario.

    Intanto vedi se ci sono frequenze attese <5.
    Valuta se la risposta è coerente con quanto ti attendevi ed eventualmente quali specie contribuiscono maggiormente a creare la differenza. Lì inizia il tuo studio vero e proprio: la ricerca del perché.

    Per valutare il contributo delle specie al risultato finale puoi fare un chiquadrato e valutare cella per cella il valore di (O-E)^2/E. Valori più elevati contribuiscono maggiormente. È semplice e comodo farlo con excel.

    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
    • This reply was modified 1 month, 1 week ago by  pdeninis.
Viewing 15 posts - 1 through 15 (of 30 total)

You must be logged in to reply to this topic.