Как получить уравнение для линии, подогнанной к данным

Я пытаюсь получить уравнение для функции, подходящей для некоторых данных гистограммы, я думал попытаться сделать это, подбирая рациональную функцию, поскольку данные не похожи ни на какое распределение, распознаваемое мной.

Данные экспериментальные, и я хочу иметь возможность генерировать случайное число в соответствии с его распределением. Следовательно, я надеюсь, что смогу подогнать его к какому-то PDF-файлу, из которого я могу получить CDF, который можно преобразовать в функцию, в которую можно подставить равномерно распределенное случайное число между 0 и 1, чтобы получить желаемое результат.

Я попытался использовать функцию histfit, которая сработала, но я не мог понять, как получить уравнение для соответствующей кривой. Есть ли что-то глупое, что я пропустил?

Обновление: я обнаружил функцию rationalfit, однако я изо всех сил пытаюсь понять, какими должны быть входные данные.

Дальнейшее обновление: при дальнейшем изучении команды histfit я обнаружил возможность подогнать ее к kernal, цифра для которой выглядит многообещающе, однако я могу получить только набор x< /em> и y значения для кривой, а не ее уравнение, как я хотел.


person I suck at Maths    schedule 19.08.2019    source источник
comment
Заметил, что histfit предполагается, что ваши данные имеют нормальное распределение. Поэтому вам все равно нужно знать, откуда берутся ваши данные и как лучше всего распределять эти данные.   -  person obchardon    schedule 19.08.2019
comment
Вы можете указать распределение, отличное от нормального, например. histfit(b,10,'beta') для бета-распределения.   -  person am304    schedule 19.08.2019
comment
В зависимости от ваших данных может быть целесообразно оценить эмпирическое распределение, используя методы в этом ответе, если вы не хотите предположить теоретическое распределение. Конечно, это зависит от данных и контекста приложения.   -  person SecretAgentMan    schedule 19.08.2019
comment
Что ты собираешься делать с уравнением? Почему ты подходишь? Я могу предложить некоторые подходы, но мой ответ зависит от этих вещей.   -  person SecretAgentMan    schedule 19.08.2019
comment
У меня есть набор экспериментальных данных, который может сильно варьироваться в зависимости от тех или иных параметров эксперимента. Я ищу метод для общего поиска PDF, чтобы я мог найти CDF, который я могу изменить, чтобы получить функцию, которую можно использовать для создания функции в соответствии с этим распределением.   -  person I suck at Maths    schedule 19.08.2019


Ответы (1)


Из документации по histfit:

Алгоритмы

histfit использует fitdist для подбора распределения к данным. Используйте fitdist для получения параметров, используемых при подгонке.

Таким образом, ответ на ваш вопрос заключается в использовании fitdist для получения параметров, которые вам нужны. Вот пример из документации:

rng default; % For reproducibility
r = normrnd(10,1,100,1);
histfit(r)

введите здесь описание изображения

pd = fitdist(r,'Normal')

pd = 
  NormalDistribution

  Normal distribution
       mu = 10.1231   [9.89244, 10.3537]
    sigma =  1.1624   [1.02059, 1.35033]
person am304    schedule 19.08.2019
comment
Привет, мои данные немного ужасны и не похожи ни на какое распределение, которое я могу распознать, поэтому я надеялся, что смогу попытаться подогнать их под рациональную функцию. Есть ли способ сделать это? - person I suck at Maths; 19.08.2019