Come eseguire la regressione logistica in R quando l'esito è frazionario (un rapporto di due conteggi)?


24

Sto recensendo un articolo che ha il seguente esperimento biologico. Un dispositivo viene utilizzato per esporre le cellule a quantità variabili di stress di taglio del fluido. Man mano che viene applicato un maggiore stress da taglio alle cellule, molte di esse iniziano a staccarsi dal substrato. Ad ogni livello di sollecitazione a taglio, contano le cellule che rimangono attaccate e poiché conoscono il numero totale di cellule che sono state attaccate all'inizio, possono calcolare un attaccamento frazionario (o distacco).

Se si traccia la frazione aderente rispetto allo sforzo di taglio, il risultato è una curva logistica. In teoria, ogni singola cella è una singola osservazione, ma ovviamente ci sono migliaia o decine di migliaia di celle, quindi il set di dati sarebbe gigantesco, se fosse impostato nel solito modo (con ogni riga che è un'osservazione).

Quindi, naturalmente, la mia domanda (come indicato nel titolo) dovrebbe avere un senso adesso. Come facciamo una regressione logistica usando il risultato frazionario come DV? C'è qualche trasformazione automatica che può essere fatta in glm?

Sulla stessa linea, se esistessero potenzialmente 3 o più misurazioni (frazionarie), come si farebbe per una regressione logistica multinomiale?


Ecco alcuni esempi riguardanti una regressione logistica con esito multivariato:http://www.ats.ucla.edu/stat/r/dae/mlogit.htm
marbel,

1
Ciò che descrivi non suona come se avessi osservazioni indipendenti (dal momento che le cellule presumibilmente non si ricollegano all'aumentare del taglio, il numero ancora attaccato ad ogni impostazione di sollecitazione più alta non deve essere superiore al numero precedente); questa dipendenza deve essere presa in considerazione. (Ricorda la situazione con le curve di crescita.) --- Non puoi semplicemente collegare i numeri in un GLM come se fossero indipendenti ... e nessuna delle risposte sembra affrontare questo problema.
Glen_b

2
@Glen_b Ogni esperimento sarebbe fatto con celle diverse, cioè iniziando con un attaccamento "100%" e applicando un diverso valore di sollecitazione di taglio.
thecity2

Ah ok. Ciò darebbe risultati indipendenti.
Glen_b -Restate Monica,

Risposte:


37

La glmfunzione in Rconsente 3 modi per specificare la formula per un modello di regressione logistica.

Il più comune è che ogni riga del frame di dati rappresenta una singola osservazione e la variabile di risposta è 0 o 1 (o un fattore con 2 livelli o altra varibale con solo 2 valori univoci).

Un'altra opzione è quella di utilizzare una matrice a 2 colonne come variabile di risposta con la prima colonna che indica i conteggi degli "esiti positivi" e la seconda colonna che indica i conteggi degli "insuccessi".

Puoi anche specificare la risposta come una proporzione tra 0 e 1, quindi specificare un'altra colonna come 'peso' che indica il numero totale da cui proviene la proporzione (quindi una risposta di 0,3 e un peso di 10 è uguale a 3 ' successi "e 7" fallimenti ").

Uno degli ultimi 2 modi si adatterebbe a ciò che stai cercando di fare, l'ultimo sembra il più diretto per come descrivi i tuoi dati.


9

Come inizio, se hai una variabile dipendente che è una proporzione, puoi usare la regressione beta. Questo non si estende (con la mia conoscenza limitata) a più proporzioni.

Per una panoramica della regressione beta e un'implementazione R, controlla betareg .


Grazie! Sembra quello di cui ho bisogno per il caso binomiale.
thecity2

2

nnet::multinomSto usando (il pacchetto nnet fa parte di MASS) per uno scopo simile, accetta input continui in [0, 1].

Se è necessario un riferimento: C. Beleites et.al .: Classificazione spettroscopica Raman dei tessuti di astrocitoma: utilizzando informazioni di riferimento morbide. Anal Bioanal Chem, 2011, Vol. 400 (9), pagg. 2801-2816


Grande! Ho quel pacchetto e non mi ero reso conto che avesse questa capacità.
thecity2

@cbeleites: consente al dipendente di essere [0,1]? Pensavo che fosse una funzione per un dipendente nominale (i predittori dovrebbero essere ridimensionati su [0,1] ...
B_Miner

@B_Miner: sì, il dipendente può essere in [0, 1]. La funzione si adatta a una rete neurale artificiale senza strato nascosto e con sigmoid logistico. E sì, si consiglia di ridimensionare i predittori approssimativamente a [0, 1] per una migliore convergenza.
cbeleites supporta Monica il
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.