Я пытаюсь решить проблему реального мира, связанную со статистикой, с помощью Python и ищу информацию о моих идеях: у меня N случайных векторов из m-мерного нормального распределения . У меня нет информации о средних и ковариационной матрице базового распределения, а также то, что это нормальное распределение - только предположение, хотя и очень правдоподобное. Я хочу вычислить приближение среднего вектора и ковариационной матрицы распределения. Число случайных векторов составляет порядка 100–300, размерность нормального распределения составляет где-то 2–5. В идеале время для расчета на стандартном домашнем компьютере не должно превышать 1 минуты.
В настоящее время я думаю о трех подходах и рад всем предложениям о других подходах или предпочтениях между этими тремя:
Пример: Создайте многомерную гистограмму все случайные векторы и соответствуют многомерному нормальному распределению на гистограмме. Проблема с этим подходом: ковариационная матрица имеет много записей, это может быть проблемой для процесса подбора?
Инвертировать накопительную функцию распределения: Сделать многомерным гистограмма как аппроксимация функции плотности случайных векторов. Затем интегрируйте это, чтобы получить многомерную кумулятивную функцию распределения. Для одного измерения это обратимо, и можно использовать функцию cum-dist для распределения случайных чисел, как в исходном распределении. Проблема: для многомерного случая функция cum-dist не обратима (?), И я не знаю, работает ли тогда этот подход?
Байесовский: Использовать байесовскую статистику с некоторым нормальным распределением, как ранее, и обновлять для каждого наблюдения. Результатом всегда должно быть нормальное распределение. Проблема: я думаю, что это вычислительно дорого? Кроме того, я не хочу, чтобы более поздние обновления оказывали большее влияние на итоговый дистрибутив, чем предыдущие.
Кроме того, может быть, есть какая-то библиотека, в которой эта задача уже реализована? Я не нашел именно этого в Numpy или Scipy, может, у кого-то есть идеи, где еще искать?