Atualmente, estou tentando valores simulados de um -dimensional variável aleatória que tem uma distribuição normal com média multivariada vetor e matriz de covariância .X μ = ( μ 1 , . . . , Μ N ) t S
Eu estou esperando para utilizar um procedimento similar ao método inverso CDF, o que significa que Quero primeiro gerar um -dimensional uniforme variável aleatória e, em seguida, ligar em que o CDF inversa desta distribuição, de modo a gerar o valor .U X
Estou tendo problemas porque o procedimento não está bem documentado e há pequenas diferenças entre a função mvnrnd no MATLAB e uma descrição que encontrei na Wikipedia .
No meu caso, também estou escolhendo os parâmetros da distribuição aleatoriamente. Em particular, eu cada um dos meios, , a partir de uma distribuição uniforme . Em seguida, construo a matriz de covariância usando o seguinte procedimento: L ( 20 , 40 ) S
Crie uma matriz triangular inferior onde para e para L ( i , i ) = 1 i = 1 .. N L ( i , j ) = U ( - 1 , 1 ) i < j
Deixe em que indica a transposição de .L T L
Este procedimento me permite garantir que seja simétrico e positivo positivo. Ele também fornece uma matriz triangular inferior modo que , que acredito ser necessária para gerar valores a partir da distribuição.L S = L L T
Usando as diretrizes da Wikipedia, eu poderia gerar valores de usando um uniforme dimensional da seguinte maneira:N
De acordo com a função MATLAB, no entanto, isso geralmente é feito como:
Onde é o inverso de uma CDF -dimensional distribuição, separável, normal, e a única diferença entre os dois métodos é simplesmente se a utilização ou . N L L T
MATLAB ou Wikipedia são o caminho a percorrer? Ou ambos estão errados?