4 votos

Determinar el método adecuado para comparar los datos observados con los medidos

Intento resolver este problema en voz alta. No se me dan muy bien las estadísticas, pero a veces intento entender dónde están las cosas y hacia dónde van.

Intento averiguar cuál es el mejor método para comparar los dos conjuntos de datos siguientes. El primero es la observación real y el segundo es de lo que mi sensor determinó que el valor era. Básicamente un objeto viaja a través del sensor que con propiedades. Cada objeto puede tener entre 2 y 5 componentes. Conocemos el valor exacto de cada uno de esos componentes.

La gran tabla de abajo muestra los resultados de los datos de la ejecución de esos objetos en el sensor. Las observaciones son independientes, por lo que la observación 5 no afecta a la 26. El conjunto de datos contiene 31 objetos y cada uno de ellos se midió con el sensor. Conocemos las propiedades exactas del objeto y lo pongo en "Actual".

Nota:

Total = 1 + 2 + 3 + 4 + 5

Lo que intento averiguar es si el sensor era adecuado o si necesita una calibración adicional. La forma antigua de hacer las cosas era conseguir una diferencia media inferior al 5% para que fuera aceptable. No estoy de acuerdo con esa metodología porque creo que es propensa a errores y no capta la esencia de las mediciones. Por lo tanto, estoy investigando mejores herramientas de análisis de datos para el problema.

Hipótesis:

  1. "¿El sensor funciona adecuadamente?"
  2. ¿Existe una diferencia estadística global entre los valores reales y los del sensor?
  3. ¿Existe una diferencia estadística entre cada par observado?
  4. ¿En qué punto se rompe la significación? Es decir, ¿en qué intervalo de confianza se diferencian los dos conjuntos de datos?

Análisis:

Lo primero que hice fue comparar las diferencias medias de cada columna. También hice la media de las diferencias absolutas y aquí están los resultados:

   Difference between Actual and Sensor (%)
                      Total        1        2      3         4        5
   Mean of Diff        1.06     2.80    -4.00   7.12    -10.86    17.01
   Mean of abs diff    7.31     6.96     7.56   8.52      0.70     1.10

Estas cifras no me dicen mucho en realidad, pero muestran en cierto modo una comparación relevante. A continuación, procedí a hacer una prueba t de dos pares utilizando alfa = 0,05 con los siguientes resultados:

        df      Mean Actual     Mean Sensor     Var Actual      Var Sensor      pearson     t stat      P 1 tail    t Crit 1 tail   P 2 tail    t Crit 2 tail
Total   30      37,858          89,829,589      89,829,589      77,766,451      0.9463      1.4871      0.0737      1.6973          0.1474      2.0423
1       30      5,411.61        5,261           254,000         407,118         0.7829      2.1076      0.0218      1.6973          0.0435      2.0423
2       30      15,246          15,719          4,762,169       3,878,279       0.7845      -1.9103     0.0328      1.6973          0.0657      2.0423
3       27      17,943          15,396          40,196,438      33,216,653      0.4268      2.0742      0.0239      1.7033          0.0477      2.0518
4       1       6,770.00        7,600           14,257,800      20,480,000      1.0000      -1.5661     0.1809      6.3138          0.3618      12.7062
5       1       5,910.00        4,900           64,800          0.00            N/A         5.6108      0.0561      6.3138          0.1123      12.7062

Básicamente he llegado a la conclusión de que las medias no son significativamente diferentes para "Total", "", "4" y "5". ¿Es correcto mi análisis?

A continuación, realicé un análisis de prueba F para dos medias con el fin de comparar esos resultados. Nótese que no estaba seguro de si necesitaba hacer la prueba F, pero la hice para comparar la varianza. Llegué a la conclusión de que, según la prueba F, parece que mi varianza es alta en todas las cuentas que los resultados son estadísticamente significativos.

        F   P 1 tail    F Crit 1 tail
Total   1.1551  0.3477      1.8409
1       0.6239  0.1011      0.5432
2       1.2279  0.2887      1.8409
3       1.0299  0.4698      1.9048
4       0.6962  0.4427      0.0062
5       65,535  N/A         161.4476

Tabla de datos

            Actual                                             Sensor
Observation   Total       1       2       3       4       5    Total      1       2       3       4       5
          1   36820    5860   14840   16120                   36200    5500   15900   14800
          2   42530    5160   12000    9840    9440    6090   43300    5200   13100    9200   10800    4900
          3   48650    4770   18260   25620                   52000    4700   18300   29000
          4   42290    5020   16080   21190                   48800    5600   18400   24800
          5   40530    5350   15670   19510                   37800    4800   15300   17700
          6   41610    5140   16000   20470                   41500    5700   17100   18700
          7   35210    5310   15150   14750                   34000    5100   15600   13300
          8   36150    5430   15520   15200                   33600    4900   15400   13300
          9   17600    6770   10830                           19300    6600   12800
         10   35920    5280   15540   15100                   28700    4700   13000   11000
         11   37900    5740   15440   16720                   35100    5500   14700   14900
         12   41530    5590   16560   19380                   39300    5400   16600   17200
         13   33580    5330   14870   13380                   33400    5100   14800   13500
         14   25550    4990   13450    7110                   24600    4800   13000    6800
         15   45920    5420   16200   24300                   43300    5100   15800   22400
         16   17750    5740   12010                           21700    6500   15200
         17   29570    5230   14140   10200                   28800    4600   14600    9600
         18   44870    5150   16990   22730                   47500    5600   18900   23000
         19   35500    5780   14930   14790                   32200    5600   14200   12500
         20   54070    5310   17170   31590                   50100    5000   16700   28300
         21   35440    4590   13920   16930                   35000    3900   14400   16600
         22   40680    5330   12840   12680    4100    5730   40000    5400   13400   11900    4400    4900
         23   16540    7160    9380                           20200    6900   13300
         24   47820    4960   17480   25380                   47100    4700   18100   24300
         25   39410    5350   18070   15990                   42100    5900   20700   15500
         26   40790    5470   16480   18840                   36400    5000   15700   15700
         27   31760    5480   14570   11710                   33700    5900   16200   11600
         28   33000    5090   14760   13150                   30900    4800   14600   11500
         29   49390    5350   18110   25930                   45500    4900   18100   22400
         30   54290    5110   17540   31640                   48800    4800   16700    27300   20900
         31   40930    5500   17850   17580                   37300    4900   16700   15700

4voto

Ted Puntos 854

Hay muchas cosas que se pueden hacer con este tipo de datos, pero al final hay que decidir qué es aceptable para uno, y la vieja fórmula de "¿el error medio es superior al 5%?

Las estadísticas pueden ser útiles para demostrar si hay sesgo en las mediciones y si alguna de las propiedades está sistemáticamente mal medida. Además, puede ayudar a cuantificar la desviación media del sensor y a hacerse una idea de su amplitud (es decir, si acierta la mayoría de las veces y se desvía ocasionalmente, o si siempre es mediocre). Tú decides si te parece aceptable.

Esto es lo que hice con tus datos (vale, estaba teniendo una tarde lenta...), usando R y las librerías plyr y ggplot2 de Hadley Wickham... Mi primer instinto (básicamente también la sugerencia de Michelle) fue mirar la relación entre el valor real y el valor del sensor, condicionado a las cinco propiedades. Eso me da:

enter image description here

que es un comienzo. Entre otras cosas, veo que tiene muy pocas observaciones sobre las propiedades cuatro y cinco, lo que podría complicar las cosas más adelante. Y que algunas de las propiedades suelen tener puntuaciones mucho más altas que otras.

A continuación, he creado un gráfico similar y he comparado los datos con una línea de intersección cero y pendiente 1, que es lo que se obtendría si el sensor y los datos reales fueran siempre iguales. A esto añadí líneas suavizadas localmente que mostraban la relación real entre las puntuaciones reales y las del sensor para las tres primeras propiedades. Esto me da lo siguiente, que está empezando a sugerir que la propiedad dos es tal vez una puntuación más alta de lo que debería ser por el sensor, y las propiedades uno y tres tal vez el problema opuesto. A juzgar por este gráfico, la propiedad tres es probablemente la que más hay que vigilar.

enter image description here

Estoy interesado en probar esto en un modelo, pero hay una clara heteroscedasticidad, es decir, la varianza en las puntuaciones de los sensores, como era de esperar, aumenta a medida que aumentan las puntuaciones. Esto invalidaría los modelos más sencillos de ajustar, así que pruebo a tomar logaritmos y este problema desaparece:

enter image description here

A continuación, puedo utilizar esta información como base para ajustar un modelo de regresión lineal que concluya que sí, que existen pruebas estadísticamente significativas de que saber qué propiedad se está midiendo es útil para saber cuál será la puntuación del sensor. Si el sensor fuera igual de bueno midiendo todas las propiedades, no se obtendría este resultado, así que ahora sabemos que al menos aquí hay un problema (de nuevo, si importa o no depende de usted).

> mod <- lm(log(sens) ~ log(act) + act.var, data=sensorm)
> anova(mod) # shows there is a difference in how well properties measured
Analysis of Variance Table

Response: log(sens)
          Df Sum Sq Mean Sq F value  Pr(>F)    
log(act)   1  30.15   30.15 3854.54 < 2e-16 ***
act.var    4   0.28    0.07    9.06 3.6e-06 ***
Residuals 88   0.69    0.01                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
> summary(mod) # as graphics show, property 2 seems higher than properties 1 and 3
...
 Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.37988    0.35210    1.08    0.284    
log(act)     0.95216    0.04094   23.26   <2e-16 ***
act.varX2    0.11459    0.04772    2.40    0.018 *  
act.varX3    0.00855    0.05262    0.16    0.871    
act.varX4    0.14067    0.06479    2.17    0.033 *  
act.varX5   -0.15136    0.06463   -2.34    0.021 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.0884 on 88 degrees of freedom
  (61 observations deleted due to missingness)
Multiple R-squared: 0.978,      Adjusted R-squared: 0.977 
F-statistic:  778 on 5 and 88 DF,  p-value: <2e-16 

Vale, he resuelto que al menos una de las propiedades se mide de forma diferente a las demás. A continuación, quería tener una idea de lo lejos que están en general las mediciones. Para ello, he trazado un histograma del porcentaje medio de desviación de cada observación de una propiedad, lo que muestra que existe un rango bastante amplio:

enter image description here

Intuitivamente diría que ya esto es suficiente para indicar que necesitas algo más de calibración, pero podemos cuantificarlo un poco.

No hay pruebas de que la media sea significativamente distinta de cero, es decir, de un sesgo sistemático, pero se acerca (valor p de alrededor de 0,08). Si no fuera por ese par de valores grandes en los que el sensor era un 20-40 por ciento demasiado grande, se diría que en general parece subestimar el valor real.

Sin embargo, lo que quizá sea más importante, el valor absoluto medio del porcentaje de salida es de alrededor del siete u ocho por ciento (dependiendo de cómo se interprete "media"), lo que me parece demasiado. Pero bueno, acabamos de volver a la primera regla empírica, aunque después de una útil visión gráfica...

Espero que le sirva de ayuda. El código en R que produjo esto está por debajo.

sensor <- read.csv("sensor.csv", row.names=1) # reads data in as matrix with 12 columns

library(plyr)
library(ggplot2)

sensorm <- cbind(melt(sensor[,2:6]), melt(sensor[,8:12]))
names(sensorm) <- c("act.var", "act", "sens.var", "sens")
win.graph()
qplot(act, sens, data=sensorm, facets=.~act.var)

win.graph()
qplot(act,sens, data=sensorm, colour=act.var) +
    geom_abline(intercept=0,slope=1, legend=F) +
    geom_smooth(data=sensorm[as.numeric(sensorm$act.var)<4,], 
        legend=F, se=F) # only draw this line for 3 properties, 
                            # as properties 4 and 5 have too few points

last_plot() + scale_x_log10() + scale_y_log10() # seems to fix heterosceadsticity ie variance 
                                              # now roughly the same at different values

mod <- lm(log(sens) ~ log(act) + act.var, data=sensorm)
anova(mod) # shows there is a difference in how well properties measured
summary(mod) # as graphics show, property 2 seems higher than properties 1 and 3

qplot((sens-act)/act*100, data=sensorm)
with(sensorm, t.test((sens-act)/act*100)) # not quite evidence of bias, but nearly significant
with(sensorm, mean(abs(sens-act)/act*100 , na.rm=T)) # on average 8% wrong
with(sensorm, mean(abs(sens-act)/act*100 , trim=0.2, na.rm=T)) # on average 7% wrong even when trimmed

with(sensorm, cbind(act, sens, round(abs(sens-act)/act*100))) # gives table of actual, sensor, and % out

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