El lenguaje R dibuja la tabla de referencia después de la ponderación de probabilidad inversa

El método de ponderación de probabilidad inversa (IPTW) basado en PS (puntaje de propensión) fue propuesto por primera vez por Rosenbaum como un método de estandarización directa basado en modelos, que pertenece al modelo de estructura marginal. En pocas palabras, es empaquetar muchas covariables y factores de confusión en una probabilidad y ponderarlos, de esta manera, solo necesito calcular su peso, que es mucho más conveniente. Entonces, ¿cómo expresar la influencia de múltiples covariables con un valor de puntaje de propensión? Es decir, ¿cómo estimar el valor de puntaje de propensión? Según la definición de Rosen-baum y Rubin: el valor de puntaje de propensión está dado por un conjunto de covariables (X i ) condición, la probabilidad condicional de que el sujeto de investigación i (i =1, 2, ... N) sea asignado a un determinado grupo de tratamiento o reciba un determinado factor de exposición (Z i =1).
inserte la descripción de la imagen aquí
El uso del modelo de regresión logística para estimar el puntaje de propensión tiene
ventajas obvias, como un modelo simple, fácil implementación, acceso directo al puntaje de propensión y fácil interpretación de los resultados.
Tomemos como ejemplo la regresión logística:
la regresión logística es el primer método para estimar el valor del puntaje de propensión. Debido a que su principio es familiar para las personas y es fácil de implementar,
también es el método de estimación más utilizado en la actualidad. El modelo de regresión logística es el siguiente:
inserte la descripción de la imagen aquí
Suponiendo una regresión logística binaria, la ecuación de una serie de factores de confusión a la derecha generará una probabilidad de ocurrencia del tiempo del evento objetivo entre 0 y 1. Cuanto mayor sea la probabilidad, mayor será la posibilidad del evento que ocurre, que es igual a Múltiples factores de confusión se convierten en una puntuación integral para representar. La ponderación de probabilidad inversa (IPTW) es un método que utiliza el inverso de la puntuación de propensión para tratar la confusión en los datos. El método de cálculo del coeficiente de ponderación (forma) dado por Robins et al., es: el peso de la unidad de observación en el grupo de tratamiento Wt=1/PS, y el peso de la unidad de observación en el grupo de control Wc=1/( 1-PS). PS es el valor de puntuación de propensión de la unidad de observación. obtenido por este método
La población a menudo es diferente de la población original, por lo que la varianza de cada variable en la población virtual puede cambiar, y los objetos del grupo de tratamiento con un PS más bajo y los objetos del grupo sin tratamiento con un PS más alto obtendrán una gran ponderación. Se induce inestabilidad debido a pesos muy grandes. Heman et al., ajustaron el método de cálculo y agregaron la tasa de tratamiento y la tasa de no tratamiento de toda la población de investigación en la fórmula para obtener pesos estabilizados después del ajuste. El método específico es: el peso Wt=Pt/PS de la unidad de observación del grupo de tratamiento, y el peso Wc=(1-Pt)/(1-PS) de la unidad de observación del grupo control. En la actualidad, muchos artículos utilizan pesos estables.
En artículos anteriores, presentamos cómo usar R y SPSS para realizar un análisis ponderado de probabilidad inversa. Algunos fanáticos en segundo plano preguntaron cómo dibujar la tabla de línea base ponderada, como se muestra en la figura a continuación. Los datos de línea base ponderada están básicamente equilibrados. Hoy usaremos R para
inserte la descripción de la imagen aquí
demostrar Veamos cómo dibujar la tabla de referencia ponderada y seguir usando nuestros datos de nacimiento prematuro (Respuesta de la cuenta oficial: datos de nacimiento prematuro, puede obtener estos datos), primero importamos el paquete R y los datos

library(tableone)
library(survey)
bc<-read.csv("E:/r/test/zaochan.csv",sep=',',header=TRUE)
bc <- na.omit(bc)

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Estos son los datos sobre bebés prematuros con bajo peso al nacer (respuesta oficial de la cuenta: datos de nacimiento prematuro, estos datos se pueden obtener), y los bebés por debajo de 2500 g se consideran bebés con bajo peso al nacer. Los datos se interpretan de la siguiente manera: low es un bebé prematuro con bajo peso al nacer, menos de 2500 g, age es la edad de la madre, lwt es el último peso menstrual, raza es raza, smoke es fumar durante el embarazo, ptl es antecedentes de parto prematuro (recuento), ht es historial de hipertensión, ui es alergia uterina, ftv es embarazo temprano Número de visitas al médico
bwt Valor de peso del recién nacido.
Primero convertimos las variables categóricas en factores

bc <- na.omit(bc)
bc$race<-ifelse(bc$race=="black",1,ifelse(bc$race=="white",2,3))
bc$smoke<-ifelse(bc$smoke=="nonsmoker",0,1)
bc$low<-factor(bc$low)
bc$race<-factor(bc$race)
bc$ht<-factor(bc$ht)
bc$ui<-factor(bc$ui)

Suponiendo que estamos estudiando el impacto de la presión arterial alta (ht) en el nacimiento de niños con bajo peso al nacer (bajo), primero dibujamos una tabla de referencia del paciente que no ha sido ponderada.

dput(names(bc))##输出变量名
allVars <-c("age", "lwt", "race", "smoke", "ptl", "ht", "ui", 
            "ftv", "bwt")###所有变量名
fvars<-c("race", "smoke","ht","ui")#分类变量定义为fvars
tab2 <- CreateTableOne(vars = allVars, strata = "low" , data = bc, factorVars=fvars,
                       addOverall = TRUE )###绘制基线表
print(tab2)#输出表格

inserte la descripción de la imagen aquí
Nos dimos cuenta de que hay tres indicadores P en la figura anterior que son inferiores a 0,05, bwt es un indicador de resultados y lwt ponderado es un indicador de referencia.
Primero establecemos la ecuación de regresión para generar el valor predicho

pr<- glm(ht ~age + lwt + race + smoke + ptl + ui + ftv, data=bc,
         family=binomial(link = "logit"))
pr1<-predict(pr,type = "response")
summary(bc$ht)

inserte la descripción de la imagen aquí
La figura anterior muestra 12 personas con presión arterial alta y 177 personas sin presión arterial alta. A continuación, generaremos dos pesos respectivamente. Uno es el método de cálculo del coeficiente de ponderación (forma) dado por Robins et al.

w<- (bc$ht==1) * (1/pr1) + (bc$ht==0) * (1)/(1-pr1)

El otro es el método de cálculo de Heman et al. para calcular la probabilidad de generación de peso estable (la probabilidad de presión arterial alta)

pt<-12/(177+12)
w1 <- (bc$ht==1) * (pt/pr1) + (bc$ht==0) * (1-pt)/(1-pr1)

inserte la descripción de la imagen aquí
Después de generar los pesos, puede dibujar la tabla de línea de base ponderada. Aquí necesita usar la función svydesign del paquete de encuestas. Este es un poderoso paquete de R que puede generar tablas de línea de base con varios pesos.

bcSvy1<- svydesign(ids = ~ id, strata = ~ low, weights = ~ w,
                   nest = TRUE, data = bc)

Una vez generado, puede usar el paquete TableOne para dibujar tablas ponderadas

Svytab1<- svyCreateTableOne(vars = c( "age", "lwt", "race", "smoke", "ptl","ui", 
                                      "ftv", "bwt"),
                            strata = "low", data =bcSvy1 ,
                            factorVars = c("race", "smoke","ht","ui"))
Svytab1

inserte la descripción de la imagen aquí
En la figura anterior se puede ver que después de la ponderación, el número de casos en cada grupo ha cambiado, y el tratamiento inicial de lwt se ha equilibrado, lo que hace que la comparación entre los dos grupos de pacientes sea más comparable. de Heman et al. para generar pesos para generar una tabla de referencia

bcSvy2<- svydesign(ids = ~ id, strata = ~ low, weights = ~ w1,
                   nest = TRUE, data = bc)
Svytab2<- svyCreateTableOne(vars = c( "age", "lwt", "race", "smoke", "ptl", "ui", 
                                      "ftv", "bwt"),
                            strata = "low", data =bcSvy2 ,
                            factorVars = c("race", "smoke","ht","ui"))
Svytab2

inserte la descripción de la imagen aquí
Podemos ver que para los datos de este artículo, la tabla de línea de base generada por el método de Heman no tiene un cambio tan grande en el número de casos como el método de Robins, pero no es tan bueno como el método de Robins para recortar la línea de base. datos. No es que el método de Robins sea mejor que el método de Heman, se estima que en diferentes datos, los dos métodos tienen sus propias ventajas.
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/dege857/article/details/123221854#comments_27964967
Recomendado
Clasificación