首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线性趋势概率

线性趋势概率
EN

Stack Overflow用户
提问于 2018-08-22 10:07:51
回答 1查看 94关注 0票数 2

我已取得少量样本(10 16 11 16 26 17 16 15 13 14 12 12 14 20 14 12 16 13 14 16 17 18 16 16 16 14 16 24 24 12 13 15 15 16 16 17 15 15 12 12 12 11 19 14 14 18 15 30 24 14 22 17 17 17 19 27 17 36 ):

有两种模式:

  • 模型A-没有线性趋势,所以噪声直方图的中心是数据的平均值。
  • 模型B-有线性趋势,所以噪声直方图的中心是距离拟合的线性趋势线的距离。

显然,我可以选择西格玛^2较小的模型来选择更好的模型。显然是(B)。然而,我不确定数据是否真的有趋势,而不仅仅是像这样随机发生的噪音。所以,我对两种模型都做了Dickey-Fuller测试,并且都在1%的极限(1%:-3.529,A:-5.282,B:-6.149 )。它告诉我有可能(A)是正确的模式。

所以我开始问:(A)的概率是什么更好的模型?

我试图解决这样的问题:我假设噪声是正态分布的,所以我分别在(A)和(B)上拟合出西格玛上的最佳正态分布。所以,我有两个模型的噪音。在此之后,我从这两种模型中提取了n(原始样本长度)样本,并比较了它们的σ^2。如果(A)模型σ^2较小,则增加了模型(A)更好的可能性,如果不降低,则模型(A)更好。我重复了这个测试一段合理的时间。

在Python代码中,可能更清楚:

代码语言:javascript
复制
model_b_mu, model_b_sigma = stats.norm.fit(model_b['residual'])
model_a_mu, model_a_sigma = stats.norm.fit(model_a['residual'])

def compare_models(modela_mu, modela_sigma,  modelb_mu, modelb_sigma, length):
    repate = 20000

    modela_better = 0
    for i in range(repate):
        modela = np.random.normal(modela_mu, modela_sigma, size = length )
        modelb = np.random.normal(modelb_mu, modelb_sigma, size = length )

        # test which sigma^2 is smaller
        sigma_a = np.sum(np.sqrt(np.power(modela, 2)))
        sigma_b = np.sum(np.sqrt(np.power(modelb, 2)))
        if sigma_a < sigma_b:
            modela_better += 1

    return modela_better/repate

model_a_better = compare_models(model_a_mu, model_a_sigma, model_b_mu, model_b_sigma, len(model_a))
print(model_a_better)

这给了我: 0.3152。我解释了这个结果:如果噪声是正态分布的,模型(A)更好的概率是31.52%。

我的问题是:我的想法正确吗?如果没有,为什么?我该如何解决这个问题呢?

Ps:我不是统计学家,更像程序员,所以很有可能以上所有的解决方案都是错误的。因此,我要求得到一些确认。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 17:15:36

这是一个所谓的模型选择问题.没有一个正确的答案,尽管最接近正确的方法是通过贝叶斯推断。即,计算所考虑的每个模型(两个或两个以上)的后验概率p(模型)。注意,贝叶斯推断的结果是模型上的概率分布,而不是单一的“此模型是正确的”选择;任何依赖于模型的后续结果都要在模型上的分布上平均。还要注意的是,贝叶斯推理需要对模型有一个先验,也就是说,在没有数据的情况下,您需要为每个模型预先指定一个概率。这是一个特性,而不是一个bug。

如前所述,简单地计算出您提到的两个模型的后验概率可能很简单,但首先您需要对概念框架有所了解。对贝叶斯模型推理的网络搜索应该会发现大量的资源。同样,这个问题更适合于stats.stackexchange.com。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51964506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档