Implementation of Correlated Gaussian Random Fields Model

Click For Summary
SUMMARY

The discussion focuses on the implementation of a Correlated Gaussian Random Fields model, specifically utilizing a methodology for generating correlated Gaussian random fields as outlined in the research paper "Efficient Simulation of Stationary Multivariate Gaussian Random Fields with Given Cross-Covariance." A standard approach involves generating a vector of correlated random variables using a covariance matrix and mean vector. The provided Matlab code demonstrates how to implement this by transforming independent Gaussian random numbers into correlated ones using the matrix square root of the covariance matrix.

PREREQUISITES
  • Understanding of Gaussian random variables and their properties
  • Familiarity with covariance matrices and their applications
  • Proficiency in Matlab programming
  • Knowledge of matrix operations, specifically matrix square roots
NEXT STEPS
  • Research "Gaussian random fields" for theoretical background
  • Explore "Matlab matrix operations" for advanced coding techniques
  • Investigate "covariance matrix estimation" methods
  • Learn about "Monte Carlo simulation" for uncertainty modeling
USEFUL FOR

Researchers, data scientists, and engineers working on optimization models involving uncertainty, particularly those interested in statistical modeling and simulation techniques.

confused_engineer
Messages
34
Reaction score
1
TL;DR
I have recently found an article with a useful algorithm. However, I don't understand it very well; thus, I would like to know if it is already implemented
Hello everyone. I have been recently working in an optimization model in the presence of uncertainty. I have read https://www.researchgate.net/publication/310742108_Efficient_Simulation_of_Stationary_Multivariate_Gaussian_Random_Fields_with_Given_Cross-Covariance in which, a methodology for generating correlated gaussian random fields. Unfortunately, I have no idea on how to implement it.

I was wondering if someone has seen an implementation of this methodology or knows where I can find one.

Best regards.
Confused engineer.
 
Physics news on Phys.org
What exactly are you trying to do?

Here is a standard way that works as long as you don't have too many variables to fit in your computer. Let ##N## correlated random variables arranged in a vector ##\mathbf{x}##, with mean ##\mathbf{m} = E[\mathbf{x}]## and covariance matrix ##\mathbf{K} = E\left[ \left(\mathbf{x}-\mathbf{m}\right)\left(\mathbf{x}-\mathbf{m}\right)^T\right]##. One realization of this, ##\mathbf{x}_i##, can be generated by starting with a vector ##\mathbf{y}_i## that contains independent, unit-variance, zero-mean Gaussian random numbers. Below is Matlab code to show how it can be done. Please do the math and verify that you believe the formula I am using is correct - doing such calculations is how you learn this stuff.

Matlab:
% code assumes you have already defined K as an NxN covariance matrix
% and m as an Nx1 vector
N = 100;
yi = randn(N,1); % unit-variance Gaussian-distributed random numbers
Ksqrt = sqrtm(K);  % matrix square-root
xi = Ksqrt*yi + m;
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 31 ·
2
Replies
31
Views
3K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 24 ·
Replies
24
Views
7K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 2 ·
Replies
2
Views
5K
  • · Replies 0 ·
Replies
0
Views
2K