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.