class_docstr: LKJ distribution for correlation matrices. The distribution is controlled by ``concentration``
  parameter :math:`\eta` to make the probability of the correlation matrix :math:`M` propotional
  to :math:`\det(M)^{\eta - 1}`. Because of that, when ``concentration == 1``, we have a
  uniform distribution over correlation matrices.
  
  When ``concentration > 1``, the distribution favors samples with large large determinent. This
  is useful when we know a priori that the underlying variables are not correlated.
  When ``concentration < 1``, the distribution favors samples with small determinent. This is
  useful when we know a priori that some underlying variables are correlated.
  
  :param int dimension: dimension of the matrices
  :param ndarray concentration: concentration/shape parameter of the
      distribution (often referred to as eta)
  
  **References**
  
  [1] `Generating random correlation matrices based on vines and extended onion method`,
  Daniel Lewandowski, Dorota Kurowicka, Harry Joe
class_docstr_tok: ["LKJ","distribution","for","correlation","matrices",".","The","distribution","is","controlled","by","``","concentration","``","parameter",":","math",":","`","\\eta","`","to","make","the","probability","of","the","correlation","matrix",":","math",":","`","M","`","propotional","to",":","math",":","`","\\det","(","M",")","^","{","\\eta","-","1","}","`",".","Because","of","that",",","when","``","concentration","==","1","``",",","we","have","a","uniform","distribution","over","correlation","matrices",".","When","``","concentration",">","1","``",",","the","distribution","favors","samples","with","large","large","determinent",".","This","is","useful","when","we","know","a","priori","that","the","underlying","variables","are","not","correlated",".","When","``","concentration","<","1","``",",","the","distribution","favors","samples","with","small","determinent",".","This","is","useful","when","we","know","a","priori","that","some","underlying","variables","are","correlated",".",":","param","int","dimension",":","dimension","of","the","matrices",":","param","ndarray","concentration",":","concentration\/shape","parameter","of","the","distribution","(","often","referred","to","as","eta",")","*","*","References","*","*","[","1","]","`","Generating","random","correlation","matrices","based","on","vines","and","extended","onion","method","`",",","Daniel","Lewandowski",",","Dorota","Kurowicka",",","Harry","Joe"]
code: def mean(self):
      return torch.eye(self.dim).expand(
          self.batch_shape + (self.dim, self.dim)
      )
  
file_path: pyro/pyro/distributions/lkj.py
imports: import warnings
  import torch
  from pyro.distributions.torch import LKJCholesky, TransformedDistribution
  from pyro.distributions.transforms.cholesky import CorrMatrixCholeskyTransform
  from .None import constraints
label_desc: Use image node_id 3 for calling the LKJ obj's underlying member method code with example usage: obj.mean() and returns: torch