¿Cómo hacer una regresión logística en R cuando el resultado es fraccional (una relación de dos recuentos)?

24

Estoy revisando un artículo que tiene el siguiente experimento biológico. Se usa un dispositivo para exponer las células a cantidades variables de tensión de corte de fluido. A medida que se aplica un mayor esfuerzo cortante a las células, más de ellas comienzan a desprenderse del sustrato. En cada nivel de esfuerzo cortante, cuentan las células que permanecen unidas, y dado que conocen el número total de células que estaban unidas al principio, pueden calcular una unión fraccionada (o desprendimiento).

Si traza la fracción adherente frente al esfuerzo cortante, el resultado es una curva logística. En teoría, cada celda individual es una observación única, pero obviamente hay miles o decenas de miles de celdas, por lo que el conjunto de datos sería gigantesco, si se configurara de la manera habitual (siendo cada fila una observación).

Entonces, naturalmente, mi pregunta (como se indica en el título) debería tener sentido ahora. ¿Cómo hacemos una regresión logística usando el resultado fraccional como DV? ¿Hay alguna transformación automática que se pueda hacer en glm?

En la misma línea, si hubiera potencialmente 3 o más mediciones (fraccionarias), ¿cómo se haría esto para una regresión logística multinomial?

thecity2
fuente
Aquí hay algunos ejemplos con respecto a una regresión logística de resultados multivariados:http://www.ats.ucla.edu/stat/r/dae/mlogit.htm
marbel
1
Lo que usted describe no parece que tenga observaciones independientes (dado que presumiblemente las celdas no se vuelven a unir a medida que aumenta la cizalladura, el número que aún se adjunta en cada configuración de tensión más alta no debe ser mayor que el número anterior); Esta dependencia debe tenerse en cuenta. (Es una reminiscencia de la situación con curvas de crecimiento.) --- no puede simplemente conectar los números a un GLM como si fueran independientes ... y ninguna de las respuestas parece abordar este problema.
Glen_b -Reinstala a Mónica el
2
@Glen_b Cada experimento se realizaría con diferentes celdas, es decir, comenzando con una unión "100%" y aplicando un valor diferente de esfuerzo cortante.
thecity2
Ah bien. Eso daría resultados independientes.
Glen_b -Reinstale a Monica el
Relacionado: stats.stackexchange.com/questions/29038 .
ameba dice Reinstate Monica

Respuestas:

37

La glmfunción Rpermite 3 formas de especificar la fórmula para un modelo de regresión logística.

Lo más común es que cada fila del marco de datos representa una sola observación y la variable de respuesta es 0 o 1 (o un factor con 2 niveles u otra variable con solo 2 valores únicos).

Otra opción es utilizar una matriz de 2 columnas como variable de respuesta, siendo la primera columna los recuentos de 'éxitos' y la segunda columna los recuentos de 'fracasos'.

También puede especificar la respuesta como una proporción entre 0 y 1, luego especificar otra columna como el 'peso' que da el número total del que proviene la proporción (por lo que una respuesta de 0.3 y un peso de 10 es lo mismo que 3 ' éxitos 'y 7' fracasos ').

Cualquiera de las dos últimas formas encajaría con lo que está tratando de hacer, la última parece la más directa para la forma en que describe sus datos.

Greg Snow
fuente
9

Para empezar, si tiene una variable dependiente que es una proporción, puede usar la Regresión Beta. Esto no se extiende (con mi conocimiento limitado) a múltiples proporciones.

Para obtener una descripción general de la regresión beta y una implementación de R, consulte betareg .

B_Miner
fuente
¡Gracias! Eso se parece a lo que necesito para el caso binomial.
thecity2
2

He estado usando nnet::multinom(el paquete nnet es parte de MASS) para un propósito similar, acepta entrada continua en [0, 1].

Si necesita una referencia: C. Beleites et.al .: clasificación espectroscópica Raman de tejidos de astrocitoma: utilizando información de referencia blanda. Anal Bioanal Chem, 2011, vol. 400 (9), págs. 2801-2816

cbeleites apoya a Monica
fuente
¡Excelente! Tengo ese paquete y no me di cuenta de que tenía esta capacidad.
thecity2
@cbeleites: ¿Permite que el dependiente sea [0,1]? Yo sin embargo, que era una función para un dependiente nominales (predictores debe ser a [0,1] ...
B_Miner
@B_Miner: sí, el dependiente puede estar en [0, 1]. La función se ajusta a una red neuronal artificial sin capa oculta y con sigmoide logístico. Y sí, se recomienda escalar los predictores aproximadamente a [0, 1] también para una mejor convergencia.
cbeleites apoya a Monica el