Analizza le proporzioni


13

Ho un set di dati contenente più proporzioni che si sommano a 1. Sono interessato al cambiamento di queste proporzioni lungo un gradiente (vedi sotto per i dati di esempio).

gradient <- 1:99
A1 <- gradient * 0.005
A2 <- gradient * 0.004
A3 <- 1 - (A1 + A2)

df <- data.frame(gradient = gradient,
                 A1 = A1,
                 A2 = A2,
                 A3 = A3)

require(ggplot2)
require(reshape2)
dfm <- melt(df, id = "gradient")
ggplot(dfm, aes(x = gradient, y = value, fill = variable)) +
  geom_area()

inserisci qui la descrizione dell'immagine

Informazioni aggiuntive: non è necessario che sia necessariamente lineare, l'ho fatto solo per semplicità dell'esempio. Sono disponibili anche i conteggi originali da cui vengono calcolate queste proporzioni. Il set di dati reale contiene più variabili aggiungendo fino a 1 (ad es. B1, B2 e B3, da C1 a C4, ecc.), Quindi sarebbe utile anche un suggerimento per una soluzione multivariata ... Ma per ora mi atterrò sull'univariato lato delle statistiche.

Domanda: come si può analizzare questo tipo di dati? Ho letto un po 'in giro, e forse è adatto un modello multinomiale o un glm? - Se eseguo 3 (o 2) glms, come posso incorporare il vincolo che i valori previsti si sommano a 1? Non voglio solo tracciare questo tipo di dati, voglio anche fare una regressione più profonda come l'analisi. Preferibilmente voglio usare R - come posso farlo in R?


Il comando proprcsplinein Stata potrebbe essere quello che stai cercando (so che vuoi usare R, ma forse questo potrebbe essere un punto di partenza): proprcspline calcola una spline cubica ristretta liscia di proporzioni di osservazioni in ogni categoria di yvar dato xvar, e li rappresenta graficamente come un diagramma ad area in pila. Facoltativamente, queste proporzioni levigate possono essere regolate per un set di variabili di controllo (cvar).
— boscovich,

Potresti approfondire cosa significa "interessato a"? Vuoi semplicemente tracciare le proporzioni rispetto al gradiente? O hai in mente un'analisi più approfondita? In tal caso, qual è la sua natura - cosa speri esattamente di imparare da questi dati? Inoltre, hai a disposizione i conteggi originali (che sarebbero buoni) o solo le proporzioni? Potresti dire qualcosa in più in cosa consistono questi dati e come vengono raccolti?
— whuber

1
@whuber: voglio fare un'analisi più approfondita con questi dati. La mia ipotesi è che le proporzioni cambieranno con il gradiente. I conteggi sono anche disponibili.
— EDi

1
Sembra che tu abbia dati compositivi. Non ne so molto, ma il lavoro di Aitchison è il punto di partenza. C'è un pacchetto, composizioni, su CRAN.
— Aaron ha lasciato Stack Overflow il

Risposte:


13

In una dimensione, sembra un lavoro per la regressione beta (con o senza dispersione variabile). Questo è un modello di regressione con variabile dipendente distribuita beta, naturalmente 0-1 vincolata. Un pacchetto R è betareg e un documento che ne descrive l'uso è qui .
Per più di due proporzioni la consueta estensione della distribuzione Beta porta alla regressione di Dirichlet. È disponibile un pacchetto R DirichletReg , descritto ad esempio qui .

Ci sono alcuni motivi per non usare i collegamenti logit e la regressione logistica multinomiale per veri dati compositivi, principalmente a che fare con i presupposti forti che implicano per la varianza. Tuttavia, se i tuoi dati sono tutti conteggi (abbondanze?) Effettivamente normalizzati, tali ipotesi potrebbero essere corrette e il suggerimento di Peter sarebbe probabilmente la strada da percorrere.


Grazie per i collegamenti, li darò un'occhiata. DirichletReg sembra promettente! Ad esempio la diapositiva 3 del tuo link: "Se la" probabilità "di rispondere in una determinata categoria è diffusa tra le scelte, un approccio Dirichlet è più informativo." . Perché non sapevo come farlo con mlogit, perché le scelte non devono essere uniche. Anche un buon modo di rappresentazione grafica - non ci ho pensato ...
— EDi

Per la grafica potresti trovare utili le funzioni R splineplot e cdplot . Infatti, se volevi solo le linee adattate e non avevi bisogno di molti macchinari di regressione, allora potresti probabilmente convincere cdplot a darti le curve rilevanti ( sotto c'è solo la densità )
— coniugatoprior

Scusate, volevo digitare la trama sopra, ovviamente.
— coniugato

Si noti che il pacchetto DirichletReg è ora disponibile su CRAN ed è stata pubblicata una vignetta .
— jbaums,

4

Non sono sicuro esattamente cosa stai cercando di scoprire, ma che dire di una regressione logistica multinomiale con gradiente come variabile indipendente?

In R, un modo per farlo è la funzione mlogit nella libreria mlogit. Vedi questa vignetta

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.