Hola a todos,
Estoy haciendo Análisis estadístico - Prueba de ChiSquare en PowerBI usando DAX,
Mi objetivo principal es mostrar solo el resultado final de la prueba ChiSqaure, que es el valor P, que implica una serie de cálculos. El problema al que me enfrento es que no puedo agregar 3 medidas (que no es aditiva), por lo que necesito hacer estas medidas como aditivas por naturaleza.
Este es el modelo de datos,
- JAR Attributes es la tabla principal
- JAR_Year se crean tablas 1 y JAR_Year 2 para la comparación de dos años
- Función de JAR_Year 1: JAR_Year 1 = DISTINTO (VALORES ('Atributos jar'[AÑO]))
- Función de JAR_Year 2: JAR_Year 2 = 'JAR_Year 1' (Nota: he hecho la relación b/n JAR Attributes y JAR_Year tabla 2 como Inactiva, porque al hacerlas tan activas no será posible filtrar y comparar de dos años)
- El propósito principal de esta prueba es calcular el valor de P, los resultados de la prueba para la comparación interanual
- Para el cálculo del valor de P, necesitamos calcular los valores observados, esperados y Chi-cuadrado.
- Tenemos tres columnas Too Less, Just About Right, Too Strong en la tabla JAR Attributes. Necesitamos calcular los valores Observado, Esperado, Chi-cuadrado y P a partir de estas 3 columnas
Ahora voy a explicar los cálculos involucrados en esta prueba,
- Demasiado menos observado - (Nombre de medida - #Too menos Obs_M = SI(SELECTEDVALUE('JAR_Year 1'[AÑO]),CALCULATE(SUMA('JAR Atributos'[Demasiado menos]),'Atributos JAR'[PRODUCT_1ST]="M")) + SI(SELECTEDVALUE('JAR_Year 2'[AÑO]),CALCULATE(SUMA('JAR Atributos'[Demasiado menos]),'Atributos JAR'[PRODUCT_1ST]="M",ALL('JAR_Year 1'[AÑO]),userelationship('JAR Atributos'[AÑO],'JAR_Year 2'[AÑO])))
- Casi correcto observado - (Nombre de la medida - #JAR Obs_M = SI(SELECTEDVALUE('JAR_Year 1'[AÑO]),CALCULATE(SUMA('JAR Atributos'[Casi a la derecha]),'Atributos JAR'[PRODUCT_1ST]="M")) + SI(SELECTEDVALUE('JAR_Year 2'[AÑO]),CALCULATE(SUM('JAR attributes'[Just About right]),'JAR Attributes'[PRODUCT_1ST]="M",ALL('JAR_Year 1'[YEAR]),userelationship('JAR Attributes'[YEAR],'JAR_Year 2'[YEAR])))
- Demasiado fuerte observado - (Nombre de la medida - #Too Fuerte Obs_M = SI(SELECTEDVALUE('JAR_Year 1'[AÑO]),CALCULATE(SUMA('JAR Atributos'[Demasiado fuerte]),'JAR Atributos'[PRODUCT_1ST]="M")) + SI(SELECTEDVALUE('JAR_Year 2'[AÑO]),CALCULATE(SUM('JAR Attributes'[Too Strong]),'JAR Attributes'[PRODUCT_1ST]="M",ALL('JAR_Year 1'[YEAR]),USERELATIONSHIP('JAR Attributes'[YEAR],'JAR_Year 2'[YEAR])))
- Estas 3 medidas son para el cálculo de los valores observados
- Luego hay que calcular los valores esperados, Fórmula para esperado - (Esperado = Total de la columna * Total de la fila / Total general)
- Total de filas - (Nombre de medida - #Row Total_M = [#Too Menos Obs_M] + [#JAR Obs_M] + [#Too Obs_M fuerte]
- Too Less Column Total - (Nombre de medida - #Less Columna Total_M = SI([#JAR Obs_M] >0,CALCULATE([#Too Less Obs_M],ALLSELECTED('JAR Attributes'[YEAR])))
- JAR Column Total - (Nombre de medida - #JAR Columna Total_M = SI([#JAR Obs_M] >0,CALCULATE([#JAR Obs_M],ALLSELECTED('JAR Attributes'[YEAR])))
- Total de columna demasiado fuerte - (Nombre de medida - #Strong Columna Total_M = SI([#JAR Obs_M] >0,CALCULAR([#Too Fuerte Obs_M],ALLSELECTED('Atributos JAR'[AÑO])))
- Total general - (Nombre de la medida - #Grand Total_M = CALCULAR ([#Less columna Total_M] + [#JAR columna Total_M] + [#Strong columna Total_M])
- Ahora, usando Total de fila, Total de columna y Total general, calculamos los valores esperados
- Too Less Expected - (Nombre de la medida - #Too Menos Expect_M = CALCULAR(DIVIDE([#Less Columna Total_M] * [#Row Total_M], [#Grand Total_M]))
- JAR Esperado - (Nombre de la medida - #JAR Expect_M = CALCULAR(DIVIDIR([#JAR Columna Total_M] * [#Row Total_M], [#Grand Total_M]))
- Demasiado fuerte esperado - Nombre de la medida - #Too Fuerte Expect_M = CALCULAR(DIVIDIR([#Strong Columna Total_M] * [#Row Total_M], [#Grand Total_M]))
- Ahora, usando los valores Observado y Esperado, calculamos los valores de Chi Cuadrado
- Fórmula para Chi Cuadrado - ChiSqu = ∑ (Observado – Esperado) ^2/Esperado
- Demasiado menos ChiSqu - Nombre de la medida - #Too Menos CS_M = CALCULAR(([#Too Menos Count_M] - [#Too menos Expect_M])^2/ [ #Too menos Expect_M])
- JAR ChiSqu - Nombre de la medida - #Just Acerca de la derecha CS_M = CALCULAR(([#JAR Count_M] - [#JAR Expect_M])^2/ [#JAR Expect_M])
- ChiSqu demasiado fuerte - Nombre de la medida - #Too Fuerte CS_M = CALCULAR(([#Too Fuerte Count_M] - [#Too Fuerte Expect_M])^2/ [ #Too Fuerte Expect_M]
- Ahora necesito sumar los 6 valores en esas 3 medidas (Chi cuadrado total = 0.154 + 0.152 + 0.266 + 0.264 + 0.884 + 0.875 = 2.595) y tenerlo así
- Lo que hice es, primero he calculado el total de cada fila.
- #Total CS_M = CALCULAR([#Too menos CS_M]+[#Just sobre CS_M derecho]+[#Too CS_M fuerte])
- Ahora traté de calcular la suma total de #Total CS_M, que es 1.304 + 1.291 = 2.595
- #ChiSq_M = SI(SELECTEDVALUE('JAR_Year 1'[AÑO]),CALCULATE([#Total CS_M],ALLSELECTED('JAR_Year 2'[YEAR]))) + IF(SELECTEDVALUE('JAR_Year 2'[YEAR]),CALCULATE([#Total CS_M],ALLSELECTED('JAR_Year 1'[YEAR])))
- Resultado
- Nota: Probé la función anterior, en lugar de Suma de 1.304 + 1.291 = 2.595 está haciendo 1.304 + 1.304 = 2.608 y 1.291 + 1.291 = 2.583
- Pero mi resultado esperado debería ser
- En este momento, debido a dos valores diferentes de Chi Cuadrado, los valores de P también dan dos valores diferentes ... pero el resultado debe dar solo un Chi Cuadrado, valores P
- P value_M = SI([#JAR Obs_M]>0,CALCULATE(CHISQ. DIST. RT([#ChiSq_M],2)))
- Pero el resultado esperado debería ser,
Espero haber aclarado toda la información necesaria, si alguien encuentra esto difícil de entender, por favor hágamelo saber
Realmente necesito ayuda para resolver este problema, lidiando con esto desde hace mucho tiempo
Cualquier ayuda wolud ser apreciable, Gracias de antemano..!!