cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Try the Materials Informatics Toolkit, which is designed to easily handle SMILES data. This and other helpful add-ins are available in the JMP® Marketplace
Choose Language Hide Translation Bar
EggyWeggs
Level I

Uncertainty Propagation and Second Order Probability

In my field data is expensive to collect (or simulate deterministically), so we typically do our uncertainty propagation using metamodels (or surrogate models, response surface, etc.).  JMP excels in the generation of these models.  However, I have been unable to find any clear way to do uncertainty propagation using second order probability, as summarized in this diagram below:

mixed_uncertainty.png

I can see how to define input probabilities in the profiler simulator, but I'm not sure if there is a straightforward way to define some inputs as "epistemic" with uniform inputs that are sampled first, and then all the other inputs are sampled according to their own distributions N times to create a single CDF on the system response (which is then repeated M times to create the probability box on the system response). 

 

Anybody have any ideas how to accomplish inside the graphical JMP environment without diving into the world of JSL?  I have typically accomplished this using Python, in which I am fluent.   

1 ACCEPTED SOLUTION

Accepted Solutions
burakbagdatli
Level III

Re: Uncertainty Propagation and Second Order Probability

My understanding of what you're trying to accomplish is that you want N unique aleatory variable samples for each M epistemic variable samples.

 

Here's what I would do if JSL isn't an option:

  1. Create a table, name it epistemic
    • Create a column
      • Name it "Sample"
      • Initialize Data with a sequence
        • Number of runs = 1
        • From = 1
        • To = M
        • Step = 1
    • For each epistemic variable you have:
      • Create a column with an appropriate name
      • Add a formula to that column
        • Use an appropriate Random function (Uniform?)
  2. Create another data table, name it aleatory
    • Create a column
      • Name it "Sample"
      • Initialize Data with a sequence
        • Number of runs = 1
        • From = 1
        • To = N
        • Step = 1
        • Repeat = M   <= This is important!
    • For each aleatory variable you have:
      • Create a column with an appropriate name
      • Add a formula to that column
        • Use an appropriate Random function
    • While in this table (aleatory) click on Tables => Update
      • Select the epistemic table
      • Check "match columns"
        • Select Sample from both tables and click the "match" button
      • Under Add Columns from Update table select "selected"
        • Only select your epistemic variable columns, ignore "sample" column
      • Click the "OK" button
    • You can now remove the Sample column from the aleatory table if you like.
  3. You can now close the epistemic table if you want.
  4. The aleatory table should repeat your epistemic sample M times while the aleatory samples are not repeated and are sampled N times for each epistemic sample.

 

 

 

If your goal is to repeat the aleatory sampling for each epistemic sample (same aleatory sampling goes into each epistemic sample) then it's easier:

  1. Create a table, name it epistemic
    • Add M rows
    • For each epistemic variable you have:
      • Create a column with an appropriate name
      • Add a formula to that column
        • Use an appropriate Random function (Uniform?)
  2. Create another data table, name it aleatory
    • Add N rows 
    • For each aleatory variable you have:
      • Create a column with an appropriate name
      • Add a formula to that column
        • Use an appropriate Random function
  3. In the aleatory  table go to Table => Join
    • Select epistemic table on the left
    •  Under "matching specification" select "Cartesian Join"
    • Click the "OK" button

 

 

Hope this helps

What we see of the real world is not the unvarnished real world but a model of the real world, constructed so it is useful for dealing with the real world. —Richard Dawkins

View solution in original post

3 REPLIES 3
burakbagdatli
Level III

Re: Uncertainty Propagation and Second Order Probability

My understanding of what you're trying to accomplish is that you want N unique aleatory variable samples for each M epistemic variable samples.

 

Here's what I would do if JSL isn't an option:

  1. Create a table, name it epistemic
    • Create a column
      • Name it "Sample"
      • Initialize Data with a sequence
        • Number of runs = 1
        • From = 1
        • To = M
        • Step = 1
    • For each epistemic variable you have:
      • Create a column with an appropriate name
      • Add a formula to that column
        • Use an appropriate Random function (Uniform?)
  2. Create another data table, name it aleatory
    • Create a column
      • Name it "Sample"
      • Initialize Data with a sequence
        • Number of runs = 1
        • From = 1
        • To = N
        • Step = 1
        • Repeat = M   <= This is important!
    • For each aleatory variable you have:
      • Create a column with an appropriate name
      • Add a formula to that column
        • Use an appropriate Random function
    • While in this table (aleatory) click on Tables => Update
      • Select the epistemic table
      • Check "match columns"
        • Select Sample from both tables and click the "match" button
      • Under Add Columns from Update table select "selected"
        • Only select your epistemic variable columns, ignore "sample" column
      • Click the "OK" button
    • You can now remove the Sample column from the aleatory table if you like.
  3. You can now close the epistemic table if you want.
  4. The aleatory table should repeat your epistemic sample M times while the aleatory samples are not repeated and are sampled N times for each epistemic sample.

 

 

 

If your goal is to repeat the aleatory sampling for each epistemic sample (same aleatory sampling goes into each epistemic sample) then it's easier:

  1. Create a table, name it epistemic
    • Add M rows
    • For each epistemic variable you have:
      • Create a column with an appropriate name
      • Add a formula to that column
        • Use an appropriate Random function (Uniform?)
  2. Create another data table, name it aleatory
    • Add N rows 
    • For each aleatory variable you have:
      • Create a column with an appropriate name
      • Add a formula to that column
        • Use an appropriate Random function
  3. In the aleatory  table go to Table => Join
    • Select epistemic table on the left
    •  Under "matching specification" select "Cartesian Join"
    • Click the "OK" button

 

 

Hope this helps

What we see of the real world is not the unvarnished real world but a model of the real world, constructed so it is useful for dealing with the real world. —Richard Dawkins
EggyWeggs
Level I

Re: Uncertainty Propagation and Second Order Probability

That's excellent.  The first method is what I was after, and it's a nice quick solution.  I verified that your instructions worked as desired (edit: with one small change, see reply below)

 

One last step, however, is that I need to plot all of the CDFs for each sample group.  So I take the response and plot distributions of some "response" by "Sample."  For M = 100, I end up with 100 distinct PDF and CDF plots.  Is there an easy way to send all of the probability scores to the table simulataneously without simply clicking each of the M plots and manually saving the Prob Scores?  

 

By the way, JSL is an option, but I'm looking to see if there is an elegant GUI solution.

 

Thank you for your help.

EggyWeggs
Level I

Re: Uncertainty Propagation and Second Order Probability

One small correction for step 2:

 

Create another data table, name it aleatory

  • Create a column
    • Name it "Sample"
    • Initialize Data with a sequence
      • Number of runs = 1
      • From = 1
      • To = N
      • Step = 1
      • Repeat = M   <= This is important!

 

Should be (changes in bold):

 

Create another data table, name it aleatory

  • Create a column
    • Name it "Sample"
    • Initialize Data with a sequence
      • Number of runs = 1
      • From = 1
      • To = M
      • Step = 1
      • Repeat = N   

Because each epistemic sample should be repeated with new aleatory samples N times, not M times.