6 votos

Crear un índice basado en un conjunto de medidas sin un objetivo a fin de ordenar en fila

El problema que estoy tratando de resolver aquí es muy simple, pero los datos disponibles son muy limitados. Eso hace que sea un problema difícil de resolver.

Los datos disponibles no son como sigue:

  1. Tengo 100 pacientes y necesito el orden de clasificación en términos de lo saludables que son.
  2. Solo tengo 5 mediciones para cada paciente. Cada una de las cinco lecturas es codificado como un valor numérico, y la regla es que cuanto más grande es la lectura, el más saludable es el paciente.

Debo de tener algún tipo de médico "de la opinión de expertos basada en la clasificación" yo podría utilizar como variable de destino y ajuste algún tipo de un modelo de regresión logística ordinal tratando de predecir el diagnóstico del médico. Sin embargo, no la tengo. Lo único que tengo es (1) y (2).

¿Cómo podría usted venir con un simple "puntuación" algoritmo que se combinan en los cinco mediciones en una sola puntuación, que sería lo suficientemente bueno (no perfecto) en el orden de clasificación de los pacientes?

4voto

jldugger Puntos 7490

Cualquier función de $f: \mathbb{R}^5 \to \mathbb{R}$ que es por separado en aumento en cada uno de sus argumentos trabajo. Por ejemplo, puede seleccionar positivo parámetros de $\alpha_i$ y real de los parámetros de $\lambda_i$ y el rango de los datos de $(x_1, x_2, x_3, x_4, x_5)$ de acuerdo a los valores de

$$\sum_{i=1}^{5} \alpha_i (x_i^{\lambda_i} - 1) / \lambda_i \text{.}$$

Evidentemente algún criterio es necesario para seleccionar entre un amplio conjunto de claramente diferentes puntuaciones. En particular, la sencillez de las soluciones obvias (se emplean con frecuencia, por desgracia) de que sólo sumando los puntajes o la primera de "normalización" de alguna manera y, a continuación, suma de ellos sufrirán las consecuencias de esta falta de conexión a tierra en la realidad. Para decirlo de otra manera: cualquier respuesta que no tiene el apoyo de información adicional es pura fabricación.

Debido a que este problema es esencialmente el mismo como la Creación de un índice de calidad de múltiples variables para habilitar orden de rango, me remito a la discusión aquí para obtener más información.

2voto

Brett Veenstra Puntos 10238

Un enfoque simple sería calcular la suma de la puntuación o de la media. Otro enfoque podría no suponer que todas las variables tienen la misma importancia, y podemos calcular una media ponderada.

Supongamos que tenemos los siguientes 10 pacientes y variables v1 a v5.

> set.seed(1)
> df <- data.frame(v1 = sample(1:5, 10, replace = TRUE),
+                  v2 = sample(1:5, 10, replace = TRUE),
+                  v3 = sample(1:5, 10, replace = TRUE),
+                  v4 = sample(1:5, 10, replace = TRUE),
+                  v5 = sample(1:5, 10, replace = TRUE))
> 
> df
   v1 v2 v3 v4 v5
1   2  2  5  3  5
2   2  1  2  3  4
3   3  4  4  3  4
4   5  2  1  1  3
5   2  4  2  5  3
6   5  3  2  4  4
7   5  4  1  4  1
8   4  5  2  1  3
9   4  2  5  4  4
10  1  4  2  3  4

1. De la suma de la puntuación y los rangos

> df$sum <- rowSums(df)
> df$ranks <- abs(rank(df$sum) - (dim(df)[1] + 1))
> df
   v1 v2 v3 v4 v5 sum ranks
1   2  2  5  3  5  17   4.0
2   2  1  2  3  4  12   9.5
3   3  4  4  3  4  18   2.5
4   5  2  1  1  3  12   9.5
5   2  4  2  5  3  16   5.0
6   5  3  2  4  4  18   2.5
7   5  4  1  4  1  15   6.5
8   4  5  2  1  3  15   6.5
9   4  2  5  4  4  19   1.0
10  1  4  2  3  4  14   8.0

2. Puntuación media y rangos (nota: ranks y ranks2 son iguales)

> df$means <- apply(df[, 1:5], 1, mean)
> df$ranks2 <- abs(rank(df$mean) - (dim(df)[1] + 1))
> df
   v1 v2 v3 v4 v5 sum ranks means ranks2
1   2  2  5  3  5  17   4.0   3.4    4.0
2   2  1  2  3  4  12   9.5   2.4    9.5
3   3  4  4  3  4  18   2.5   3.6    2.5
4   5  2  1  1  3  12   9.5   2.4    9.5
5   2  4  2  5  3  16   5.0   3.2    5.0
6   5  3  2  4  4  18   2.5   3.6    2.5
7   5  4  1  4  1  15   6.5   3.0    6.5
8   4  5  2  1  3  15   6.5   3.0    6.5
9   4  2  5  4  4  19   1.0   3.8    1.0
10  1  4  2  3  4  14   8.0   2.8    8.0

3. Media ponderada de la puntuación (es decir, supongo que V3 y V4 son más importantes que v1, v2 y v5)

> weights <- c(0.5, 0.5, 1, 1, 0.5)
> wmean <- function(x, w = weights){weighted.mean(x, w = w)}
> df$wmeans <- sapply(split(df[, 1:5], 1:10), wmean)
> df$ranks3 <- abs(rank(df$wmeans) - (dim(df)[1] + 1))
> df
   v1 v2 v3 v4 v5 sum ranks means ranks2   wmeans ranks3
1   2  2  5  3  5  17   4.0   3.4    4.0 3.571429    2.5
2   2  1  2  3  4  12   9.5   2.4    9.5 2.428571    9.0
3   3  4  4  3  4  18   2.5   3.6    2.5 3.571429    2.5
4   5  2  1  1  3  12   9.5   2.4    9.5 2.000000   10.0
5   2  4  2  5  3  16   5.0   3.2    5.0 3.285714    5.0
6   5  3  2  4  4  18   2.5   3.6    2.5 3.428571    4.0
7   5  4  1  4  1  15   6.5   3.0    6.5 2.857143    6.0
8   4  5  2  1  3  15   6.5   3.0    6.5 2.571429    8.0
9   4  2  5  4  4  19   1.0   3.8    1.0 4.000000    1.0
10  1  4  2  3  4  14   8.0   2.8    8.0 2.714286    7.0

2voto

liori Puntos 2303

Simplemente resumiría los, ponderación de cada factor si es necesario.

1voto

Edward Luong Puntos 108

¿Qué genera una variable sintética blanco binario primero y luego ejecutar un modelo de regresión logística?

La variable sintética debe ser algo como... "Si la observación es en el decil superior en todas las distribuciones de variable entradas marcar como 0 más 1"

Después de haber generado la variable de destino binario... Regresión logística ejecución para llegar a métricas probabilísticas 0 a 1 evaluación ¿cómo lejano/cercano en las colas de la observación de las distribuciones múltiples es?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X