Forum Discussion

caballerov's avatar
caballerov
Regular Visitor
2 years ago
Solved

Calculating PPK values in PowerBI vs Minitab - Need help.

I am encountering inconsistencies between Power BI and Minitab when calculating the PPK value, despite using the identical data set. While the PPL value calculations align in both software, the PPU and PPK values do not. I would appreciate any assistance in verifying my formulas or guidance towards resolving this discrepancy. Any insights or suggestions to ensure consistent results across both Power BI and Minitab are greatly appreciated.

 

Here are the formulas I've been using for creating new measures:

Ppk =
VAR Ppu = (USL[USL Value] - [Mean]) / (3 * [Sigma])
VAR Ppl = ([Mean] - LSL[LSL Value]) / (3 * [Sigma])
RETURN MIN(Ppu, Ppl)
 
Sigma = STDEV.S(Data[Net(g)])
 
Mean = AVERAGE(Data[Net(g)])

 

PowerBI results:

 

Minitab results:

 

 

 

 

Link to minitabs calculation for PPK: https://blog.minitab.com/en/how-cpk-and-ppk-are-calculated2c-part-1

 

 

  • For anyone trying to figure this out, I was able to get the same PPK result as Minitab by calculating the Sigma and Mean values by filtering the data within the limits.

     

    I created new Measures for both:

    Sigma Within Limits =
    CALCULATE(
        STDEV.S(Data[Net(g)]),
        FILTER(
            Data,
            Data[Net(g)] >= LSL[LSL Value] &&
            Data[Net(g)] <= USL[USL Value]
        )
    )
     
    Mean Within Limits =
    AVERAGEX(
        FILTER(
            Data,
            Data[Net(g)] >= LSL[LSL Value] &&
            Data[Net(g)] <= USL[USL Value]
        ),
        Data[Net(g)]
    )
     
    PPU Within Limits = (USL[USL Value] - [Mean Within Limits]) / (3 * [Sigma Within Limits])
    PPL Within Limits = ([Mean Within Limits] - LSL[LSL Value]) / (3 * [Sigma Within Limits])
     
    PPK Within Limits = MIN([PPU Within Limits][PPL Within Limits])

5 Replies

  • v-weiyan1-msft's avatar
    v-weiyan1-msft
    Icon for Community Support rankCommunity Support

    Hi caballerov ,

     

    From the screenshots you provided, it seems that the Sample Mean values on the two screenshots are also different.
    Below is the data I created based on the information you provided.

    Then I used the formula you mentioned. Result is as below.

    Have you made the following changes to your Measure?

    Can you share sample data and sample output in table format? Or a sample pbix after removing sensitive data. We can better understand the problem and assist you.

     

    Best Regards,
    Yulia Yan

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

    • caballerov's avatar
      caballerov
      Regular Visitor

      Hello Yulia,

       

      I updated the value to reflect more decimal points:

      Sample Mean Formula: 

      Mean = AVERAGE(Data[Net(g)])

      And yes I did try adding more decimal points to the PPK measure as well:

       

      I would love to share the data but its company sensitive. Is there anything you could reccomend looking at?

  • Hello, please how did you make such a nice histogram in PowerBI?
    Is there some tutorial you have used?
    I saw many tutorials on youtube, but this your example seems most appropriate for me.
    Many thanks.

    • caballerov's avatar
      caballerov
      Regular Visitor

      I just used the clustered column chart built into PowerBI

       

      To add the X-Axis constant lines:

       

  • caballerov's avatar
    caballerov
    Regular Visitor

    For anyone trying to figure this out, I was able to get the same PPK result as Minitab by calculating the Sigma and Mean values by filtering the data within the limits.

     

    I created new Measures for both:

    Sigma Within Limits =
    CALCULATE(
        STDEV.S(Data[Net(g)]),
        FILTER(
            Data,
            Data[Net(g)] >= LSL[LSL Value] &&
            Data[Net(g)] <= USL[USL Value]
        )
    )
     
    Mean Within Limits =
    AVERAGEX(
        FILTER(
            Data,
            Data[Net(g)] >= LSL[LSL Value] &&
            Data[Net(g)] <= USL[USL Value]
        ),
        Data[Net(g)]
    )
     
    PPU Within Limits = (USL[USL Value] - [Mean Within Limits]) / (3 * [Sigma Within Limits])
    PPL Within Limits = ([Mean Within Limits] - LSL[LSL Value]) / (3 * [Sigma Within Limits])
     
    PPK Within Limits = MIN([PPU Within Limits][PPL Within Limits])