En este post veremos cómo aplicar a un modelo concreto la formulación estándar de Excel y conseguir un valor. En concreto trataré de dar respuesta a la pregunta presentado por un lector, para lo cual, me he basado en la descripción del modelo colgada en la página de la Asociación de la Sociedad española de Hipertensión (ver):
Desde luego, no pretende ser esta explicación, un estudio del modelo de Framingham, si no tan solo una aplicación práctica de cómo nos puede ayudar Excel a obtener ciertos valores...
Lo primero para entender el modelo de Framingham que utiliza el valor del colesterol total es conocer las variables que entrarán en juego:
1- SEXO,
2- la EDAD en años,
3- el COLESTEROL sérico en mg/dl,
4- fracción de colesterol ligado a lipoproteínas de alta densidad HDL,
5- PRESION SISTOLICA,
6- DIABETES (No-Sí),
7- FUMADOR (No-Sí).
la fórmula que determina la probabilidad de evento cardiovascular a los 10 años según este modelo de Framingham es:
=1 - S B
siendo
S= constante función de supervivencia base a 10 años (para hombre o mujer)
B=EXP(L-G)
L=bE1 x EDAD + bE2 x EDAD2 + bC + bH + bT + bD + bF
G= función evaluada para los valores medios de las variables en el estudio (diferente para hombres o mujeres)
Veamos los diferentes parámetros/tablas plasmados en nuestra hoja de cálculo:
Fundamental para automatizar al máximo las diferentes formulaciones (sobre todo del cálculo de los parámetros), es la creación de los siguientes Nombres definidos:
B_Edad =CalculoFraminghan!$C$2:$E$4
B_Colesterol =CalculoFraminghan!$A$5:$E$10
B_HDL =CalculoFraminghan!$A$11:$E$16
B_Tension =CalculoFraminghan!$A$17:$E$23
B_Diabetes =CalculoFraminghan!$C$24:$E$26
B_Fumador =CalculoFraminghan!$C$27:$E$29
G_hombre =CalculoFraminghan!$D$31
G_Mujer =CalculoFraminghan!$E$31
S_Hombre =CalculoFraminghan!$D$33
S_Mujer =CalculoFraminghan!$E$33
rango =INDIRECTO("B_"&CalculoFraminghan!$K39)
Prima =INDIRECTO(DIRECCION(FILA(rango);COLUMNA(rango))&":"&DIRECCION(FILA(rango);COLUMNA(rango)+COLUMNAS(rango)-1))
PosCol =COINCIDIR(CalculoFraminghan!$H$10;Prima;0)
De especial interés los últimos nombres (rango, Prima y PosCol), ya que con estos automatizamos la búsqueda de los parámetros en el origen...
Con 'rango' construimos y nos referimos al rango previamente nombrado ('B_Edad', 'B_colesterol', 'B_HDL', 'B_Tension', 'B_Diabetes' y 'B_Fumador').
Con 'Prima' obtenemos el rango de celdas correspondiente a la primera fila de cada rango anterior.
Y finalmente con 'PosCol' conseguimos la posición de la columna, dentro de los rangos comentados, según el Sexo planteado en el ejercicio (celda H10).
La función general aplicada, para conseguir los coeficientes b, es la conocida BUSCARV, que la hacemos trabajar con nuestros rangos-nombres definidos.
Se ven en la imagen anterior, a modo de ejemplo, en la celda M10:
=BUSCARV(K10;rango;PosCol;1)
y en la celda M14:
=BUSCARV(H14;rango;PosCol;1)
Notemos que estamos empleando en todo caso la búsqueda aproximada!!! (cuarto argumento 1 o VERDADERO)... básico para obtener valores dentro de rangos.
El cálculo final responde a las fórmulas indicadas al inicio del post, en la celda H22 obtenemos el valor de L:
=(M10*H11)+(M11*H11^2)+M12+M13+M14+M15+M16
en H23 el valor de B:
=EXP(H22-M18)
y por último en H24 el valor o riesgo cardiovascular:
=1-M19^H23
Vemos un pequeño vídeo del funcionamiento:
...necesito calcular el riesgo cardiovascular de acuerdo a la escala de Framingham de una lista de datos de excel, pero no tengo ni idea de como armar la formula... |
Desde luego, no pretende ser esta explicación, un estudio del modelo de Framingham, si no tan solo una aplicación práctica de cómo nos puede ayudar Excel a obtener ciertos valores...
Lo primero para entender el modelo de Framingham que utiliza el valor del colesterol total es conocer las variables que entrarán en juego:
1- SEXO,
2- la EDAD en años,
3- el COLESTEROL sérico en mg/dl,
4- fracción de colesterol ligado a lipoproteínas de alta densidad HDL,
5- PRESION SISTOLICA,
6- DIABETES (No-Sí),
7- FUMADOR (No-Sí).
la fórmula que determina la probabilidad de evento cardiovascular a los 10 años según este modelo de Framingham es:
=1 - S B
siendo
S= constante función de supervivencia base a 10 años (para hombre o mujer)
B=EXP(L-G)
L=bE1 x EDAD + bE2 x EDAD2 + bC + bH + bT + bD + bF
G= función evaluada para los valores medios de las variables en el estudio (diferente para hombres o mujeres)
Veamos los diferentes parámetros/tablas plasmados en nuestra hoja de cálculo:
Fundamental para automatizar al máximo las diferentes formulaciones (sobre todo del cálculo de los parámetros), es la creación de los siguientes Nombres definidos:
B_Edad =CalculoFraminghan!$C$2:$E$4
B_Colesterol =CalculoFraminghan!$A$5:$E$10
B_HDL =CalculoFraminghan!$A$11:$E$16
B_Tension =CalculoFraminghan!$A$17:$E$23
B_Diabetes =CalculoFraminghan!$C$24:$E$26
B_Fumador =CalculoFraminghan!$C$27:$E$29
G_hombre =CalculoFraminghan!$D$31
G_Mujer =CalculoFraminghan!$E$31
S_Hombre =CalculoFraminghan!$D$33
S_Mujer =CalculoFraminghan!$E$33
rango =INDIRECTO("B_"&CalculoFraminghan!$K39)
Prima =INDIRECTO(DIRECCION(FILA(rango);COLUMNA(rango))&":"&DIRECCION(FILA(rango);COLUMNA(rango)+COLUMNAS(rango)-1))
PosCol =COINCIDIR(CalculoFraminghan!$H$10;Prima;0)
De especial interés los últimos nombres (rango, Prima y PosCol), ya que con estos automatizamos la búsqueda de los parámetros en el origen...
Con 'rango' construimos y nos referimos al rango previamente nombrado ('B_Edad', 'B_colesterol', 'B_HDL', 'B_Tension', 'B_Diabetes' y 'B_Fumador').
Con 'Prima' obtenemos el rango de celdas correspondiente a la primera fila de cada rango anterior.
Y finalmente con 'PosCol' conseguimos la posición de la columna, dentro de los rangos comentados, según el Sexo planteado en el ejercicio (celda H10).
La función general aplicada, para conseguir los coeficientes b, es la conocida BUSCARV, que la hacemos trabajar con nuestros rangos-nombres definidos.
Se ven en la imagen anterior, a modo de ejemplo, en la celda M10:
=BUSCARV(K10;rango;PosCol;1)
y en la celda M14:
=BUSCARV(H14;rango;PosCol;1)
Notemos que estamos empleando en todo caso la búsqueda aproximada!!! (cuarto argumento 1 o VERDADERO)... básico para obtener valores dentro de rangos.
El cálculo final responde a las fórmulas indicadas al inicio del post, en la celda H22 obtenemos el valor de L:
=(M10*H11)+(M11*H11^2)+M12+M13+M14+M15+M16
en H23 el valor de B:
=EXP(H22-M18)
y por último en H24 el valor o riesgo cardiovascular:
=1-M19^H23
Vemos un pequeño vídeo del funcionamiento:
Pregunta: ¿Cual es la diferencia en la fórmula entre los parámetros de edad bE1 y bE2?
ResponderEliminarHola Arévalo,
Eliminarsi te fijas en la ecuación
L=bE1 x EDAD + bE2 x EDAD2 + bC + bH + bT + bD + bF
son dos parámetros que la componen respecto a la EDAD.
Saludos
Buenas tardes. Muchas gracias por la información. Lo mio es un poco más comlejo. Estoy calculando framinghan para un grupo de 200 personas y que aparezca en la misma tabla, podrían ayudarme por favor?
ResponderEliminarHola Jeadran,
Eliminarsolo soy especialista en el uso de Excel.. por lo que entiendo de este modelo es que trabaja sobre resultados medios de una población o muestra de datos..
asi que si trabajas sobre 200 personas tendrías que obtener los valores medios de esas 200 personas...
Y a partir de ahí aplicar las fórmulas descritas.
Todo salvo mejor opinión.
Saludos
Hola, ¿Esta plantilla se puede descargar?.
ResponderEliminarHola!
Eliminarlo siento... ya no dispongo del fichero.
Trata de seguir las indicaciones y replicar el ejemplo.
Saludos
hola me puedes colaborar con los porcentajes de cada variable?
ResponderEliminarya que estoy desarrollando una aplicacion y no dispongo de estos valores
Hola Kamilo,
Eliminarlo siento, solo dispongo de la info expuesta
Saludos y suerte
Estimado, Cuales serían las medidas para decir por ejemplo :
ResponderEliminarEntre un 10 y 30 % es Riesgo medio, o Mediano , Alto.
Saludos y gracias por el cálculo, lejos el mejor lugar explicado, lo pasé a JavaScript y me sirvió.
Saludos
Hola panchosaurin,
Eliminarsiento no poder ayudarte, ya que las medidas las tome de un manual que me encontré y desconozco su significado exacto...
yo solo lo utilicé para poner un ejemplo de uso aplicado de fórmulas y funciones de Excel
:(
Saludos y suerte!!
Estudié harto sobre el tema y llegué a lo que necesitaba, copio parte del algoritmo que estoy realizando donde desde 5% genero el margen de bajo. if(Porcentaje < 5){
Eliminar$("#RieCarVas").val('Bajo');
console.log('Riego Bajo');
}
if(6 < Porcentaje && Porcentaje < 10){
$("#RieCarVas").val('Ligero');
console.log('Riego Ligero');
}
if(11 < Porcentaje && Porcentaje < 28){
$("#RieCarVas").val('Medio');
console.log('Riego Medio');
}
if(29 < Porcentaje && Porcentaje < 39){
$("#RieCarVas").val('Alto');
console.log('Riego Alto');
}
if(39 < Porcentaje && Porcentaje < 99){
$("#RieCarVas").val('Muy Alto');
console.log('Riego Muy Alto');
}
Gracias por la Guía, Saludos !