es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Menos subclases generadas de las solicitadas utilizando la subclasificación de MatchIt.

Estoy tratando de hacer una estratificación del puntaje de propensión utilizando MatchIt::matchit(method = "subclass"). Quiero entender por qué recibo un mensaje de advertencia:
Debido a la discreción en la medida de distancia, se generaron menos subclases de las solicitadas., mientras que el paquete describe

de manera predeterminada, matchit() mueve una unidad de una subclase adyacente a la
que le falta para asegurar que cada subclase tenga al menos una unidad de
cada grupo de tratamiento.

También revisé el código fuente, que es consistente con la cita anterior.

Si alguna subclase no tiene miembros de un grupo de tratamiento, llenarlos “moviendo” unidades de subclases cercanas hasta que cada subclase tenga una unidad de cada grupo de tratamiento

Sé que esto depende mucho de los datos y no puedo compartir mis datos con el público. Así que aquí hay un código no reproducible:

m_out <- matchit(treat ~ var1 + var2 + var3, data = mydata, estimand = "ATE",
method = "subclass", distance = "glm", discard = "both", min.n = 1, subclass = 5)

El código anterior produce una advertencia y solo genera 4 estratos mientras se solicitaron 5. ¿Por qué no se mueve ninguna unidad? Gracias anticipadas.

Tags:  ,

Answer

  1. Avatar for davy.ai

    El mensaje de advertencia que está recibiendo el usuario indica que hay un problema de discreción en la medida de distancia que se está utilizando para hacer el emparejamiento de puntaje de propensión. Esto significa que la distancia entre las unidades en los datos no se puede medir con precisión debido a limitaciones en la forma en que se recopilan o registran los datos. Como resultado, algunas de las subclases que se solicitaron en la función matchit() no se pudieron generar.

    Sin embargo, según la documentación y el código fuente de matchit(), cuando a una subclase le falta una unidad de uno de los grupos de tratamiento, la función intentará “mover” una unidad de una subclase adyacente a la que le falta. Por lo tanto, en teoría, todas las subclases deberían terminar teniendo al menos una unidad de cada grupo de tratamiento.

    En el ejemplo específico proporcionado por el usuario, se llamó a la función matchit() con el argumento subclass establecido en 5, pero solo se generaron 4 subclases debido a la discreción en la medida de distancia. El usuario se pregunta entonces por qué no se “movieron” unidades a la subclase faltante.

    Dado que el código no se puede reproducir y los datos no se pueden compartir, es difícil identificar la razón exacta de por qué sucedió esto. Sin embargo, es posible que no haya subclases adyacentes que tengan unidades del grupo de tratamiento faltante y que se puedan “mover” a la subclase faltante. Además, también es posible que algunas de las unidades en los datos sean demasiado diferentes a otras unidades y no se puedan emparejar con ninguna subclase, lo que lleva a un menor número de subclases en general.

    En general, al tratar la discreción en el emparejamiento de puntaje de propensión, es importante considerar cuidadosamente la elección de la medida de distancia y otros parámetros en matchit() para tratar de minimizar cualquier problema potencial.

Comments are closed.