Эквивалентный питон-код "normfit" в Matlab - PullRequest
0 голосов
/ 04 июня 2019

Доза Кто-нибудь знает, как рассчитывается доверительный интервал для стандартного отклонения в функции нормы в Matlab?Мне нужен код Python для расчета такого параметра.В MATLAB normfit возвращает 4 параметра: среднее значение, стандартное отклонение и доверительный интервал среднего значения (muCI) и доверительный интервал стандартного отклонения (sigmaCI).

[muHat,sigmaHat,muCI,sigmaCI] = normfit(x)

Код Python ниже дает три параметра, muHat, sigmaHat и muCI.Но мне нужен доверительный интервал std (sigmaCI) в Python.

def function(data, confidence= 0.95):
    a = 1.0 * np.array(data)
    n = len(a)
    m ,se =  np.mean(a), scipy.stats.sem(a)
    h = se * scipy.stats.t.ppf((1 + confidence) / 2., n - 1)
    sigma = np.std(data, ddof=1)
    return m, sigma, [m - h, m + h]

1 Ответ

0 голосов
/ 04 июня 2019

Вот функция норма в Python.

 def normfit(self, data, confidence=0.95):
        a = 1.0 * np.array(data)
        n = len(a)
        m, se = np.mean(a), scipy.stats.sem(a)
        h = se * scipy.stats.t.ppf((1 + confidence) / 2., n - 1)
        var = np.var(data, ddof=1)
        varCI_upper = var * (n - 1) / (scipy.stats.chi2.ppf((1-confidence) / 2, n - 1))
        varCI_lower = var * (n - 1) / (scipy.stats.chi2.ppf(1-(1-confidence) / 2, n - 1))
        sigma = np.sqrt(var)
        sigmaCI_lower = np.sqrt(varCI_lower)
        sigmaCI_upper = np.sqrt(varCI_upper)

        return m, sigma, [m - h, m + h], [sigmaCI_lower, sigmaCI_upper]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...