可以在 Mathematica 中扩展 PDF、CDF、FindDistributionParameters 等功能吗?

2024-04-23

我开始使用新的 Mathematica 统计和数据分析功能进行越来越多的工作。

我周二参加了“Mathematica 统计与数据分析”在线研讨会(非常棒的演讲,我强烈推荐),但我遇到了一些问题,我希望这个论坛上的人可以花点时间考虑一下。

我创建了一个相当广泛的笔记本来简化我的数据分析,称之为“AnalysisNotebook”。它输出一系列广泛的图表和数据,包括:直方图、PDF and CDF图、Q-Q 图、尾部拟合研究图、假设检验数据等。

只要我继续使用 Mathematica 的现成发行版,这就非常有效,并且对于简单的情况可能也适用MixtureDistribution甚至ParameterMixtureDistribution至于这些 Mathematica 可能会计算出时刻和PDF and CDF, FindDistributionParameters等,将混合物分解成碎片。

当我尝试定义和使用一个简单的方法时,我遇到了麻烦TransformedDistribution i.e.,

LogNormalNormalDistribution[Gamma_, Sigma_, Delta_] := 
  TransformedDistribution[ u*v + Delta, 
   {Distributed[ u, LogNormalDistribution[ Log[Gamma], Sigma] ],  
    Distributed[ v, NormalDistribution[0, Sqrt[2]]}
   ];

我想做很多类似转换分布的事情。我很欣赏这样的挑战(其中一些是我在这个论坛上学到的 - 谢谢大家):

  • 它们可能没有封闭的形式;
  • PDF and CDF计算可能需要插值、解决方法或自定义方法;
  • FindDistributionParameters and DistributionFitTest会不知道如何处理这种事情。

基本上,人们想要使用的标准东西实际上不起作用/不能工作,并且人们不能完全期望它们这样做。

人们可以编写自定义代码来完成这些事情(这个论坛再次为我提供了很多帮助),但随后将自定义替代方案的所有复杂性合并到我的 AnalysisNotebook 中,这似乎很愚蠢。 AnalysisNotebook 将随着每个新的自定义函数而增长。

如果我可以编写我的自定义版本,这将对我的工作有很大帮助PDF, CDF, FindDistributionParameters, DistributionFitTest以及我可能需要的其他标准,更通用的内置版本可以简单地无缝调用。这样,像我的 AnalysisNotebook 这样的东西就可以保持简单和整洁,成为我工具箱中的标准组件。如果你明白我的意思的话,我可以把时间花在数学上而不是管道上。

为了澄清我的意思,类似于如何定义函数的版本来执行不同的操作(使用不同数量的参数或其他类型的态势感知),Mathematica 必须对使用分布作为参数的函数执行类似的操作知道针对特定的内置发行版使用哪种解决方案。我希望能够添加或扩展功能PDF[], CDF[], FindDistributionParameters[], DistributionFitTest[]以及该级别的相关函数 - 为自定义发行版及其所需的支持代码添加功能,内置函数将/可以无缝调用这些代码。

也许只是一个梦想,但如果有人知道我可以实现这一目标的任何方法,我将非常感谢您的反馈。

EDIT-我遇到过的问题类型:

以下代码永远不会完成执行

r1 = RandomVariate[LogNormalNormalDistribution[0.01, 0.4, 0.0003], 1000];
FindDistributionParameters[r1, LogNormalNormalDistribution[gamma, sigma, delta]]

为了解决这个问题,我编写了以下函数

myLNNFit[data_] := Module[{costFunction, moments}, 
    moments = Moment[EmpiricalDistribution[data], #] & /@ Range[5]; 
    costFunction[gamma_, sigma_, delta_] = 
    Sqrt@Total[((Moment[LogNormalNormalDistribution[gamma, sigma, delta],#]&/@Range[5]) - moments)^2]; 
    NMinimize[{costFunction[gamma, sigma, delta], gamma > 0, sigma > 0}, {gamma, sigma, delta}] ]

它本身工作得很好,但与其他一切都不能很好地配合。


您可以使用TagSet指定要与定义关联的符号。这可以让您定义PDF的分布即使PDF is Protected。这是一个简单的例子。注意TriangleWave是一个内置符号,并且TriangleDistribution这是我刚刚编造的。这失败了:

PDF[TriangleDistribution[x_]] := TriangleWave[x]

这有效:

TriangleDistribution /: PDF[TriangleDistribution[x_]] := TriangleWave[x]

现在你可以这样做:

Plot[PDF[TriangleDistribution[x]], {x, 0, 1}]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可以在 Mathematica 中扩展 PDF、CDF、FindDistributionParameters 等功能吗? 的相关文章

  • 根据两个预先计算的直方图报告两个样本的 K-S 统计量

    Problem 在这里 我绘制了存储在文本文件中的 2 个数据集 在列表中 dataset 每个包含 218 亿个数据点 这使得数据太大而无法作为数组保存在内存中 我仍然能够将它们绘制为直方图 但我不确定如何通过2 样本KS测试 http
  • 回归模型 statsmodel python

    这更多是一个统计问题 因为代码运行良好 但我正在学习 python 中的回归建模 我在下面使用 statsmodel 编写了一些代码来创建一个简单的线性回归模型 import statsmodels api as sm import num
  • 与heroku配合使用的统计引擎

    我有一个 Heroku Rails 应用程序 需要处理一些重要的数字 并且我需要使用像 R 这样的统计库 更糟糕的是 MatLab 我正在寻找以下任何问题的答案 是否有不需要二进制文件的功能齐全的统计包 GEM 是否可以将 R 二进制文件作
  • NumPy 或 SciPy 计算加权中位数

    我正在尝试自动化 JMP 执行的流程 分析 gt 分布 输入 A 列作为 Y 值 使用后续列 作为 权重 值 在 JMP 中 您必须一次执行一列 我想使用 Python 循环所有列并创建一个数组 显示每列的中位数 例如 如果质量数组为 0
  • 将纬度/经度转换为 X/Y,以便在美国地图图像上进行阿尔伯斯投影

    我正在尝试使用 C 或 Javascript 将纬度 经度转换为 X Y 坐标 以将带有 CSS 的 div 左 上 定位到美国地图的背景图像上 美国的标准地图投影是阿尔伯斯投影 如下所示 但 StackOverflow 仅提供参考基本墨卡
  • 来自 data.frame 每一列的随机样本

    我想从 a 的每一行中抽取随机样本data frame独立于其他行 这是一个例子 此代码为每行选择相同的列 但我需要为每行独立选择列 library plyr set seed 12345 df1 lt mdply data frame m
  • 特别分发:应用程序安装失败

    我已经为我尝试分发的应用程序创建了一个临时存档和一个 ipa 文件 我还创建了一个分发配置文件 其中包含我计划将应用程序分发到的设备的 UDID 当我将 ipa 和 mobileprovision 文件拖到 iTunes 中并尝试将应用程序
  • 避免重复调用 Interpolation

    我想在mathematica 中插入一个函数 该函数取决于参数a 实际上它是函数的反函数F这也取决于a 所以我建立我的近似值如下 approx Interpolation Table F 0 1 n a 0 1 n n 100 100 现在
  • python 中的 Johansen 协整检验

    我找不到任何有关在处理统计和时间序列分析 pandas 和 statsmodel 的 Python 模块中执行 Johansen 协整检验的功能的参考 有谁知道是否有一些代码可以执行时间序列之间的协整测试 现在 这已在 Python 的 s
  • 如何计算加权平均值?

    我的语言是PHP 但是算法应该是相当通用的 我有一个关联数组 比方说 评级和评级次数 ratings array 1 gt 1 2 gt 3 3 gt 6 4 gt 3 5 gt 3 这相当于 1 2 2 2 3 3 3 3 3 3 4 4
  • 如果落在 R 中另一个数据集中的两个变量定义的范围内,则从一个数据集中获取变量值

    我有一个关于 R 中日期操作的问题 我已经查了好几天了 但在网上找不到任何帮助 我有一个数据集 其中有 id 和两个日期 另一个数据集具有相同的 id 变量 日期和价格 例如 x data frame id c A B C C date1
  • 如何从 curve_fit 获取置信区间

    我的问题涉及统计学和Python 我是两者的初学者 我正在运行模拟 对于自变量 X 的每个值 我都会为因变量 Y 生成 1000 个值 我所做的是计算每个 X 值的 Y 平均值 并使用 scipy optimize curve fit 拟合
  • Mathematica:如何获取plot命令绘制的数据点?

    当使用 Plot 绘制函数时 我想获取由 Plot 命令绘制的数据点集 例如 如何获取以下简单示例中使用的点 t f Plot 的列表 f Sin t Plot f t 0 10 我尝试使用一种将值附加到列表的方法 如 Jerry B Ke
  • 有条件地为 R 中置信带之外的数据点着色

    我需要对下图中置信带之外的数据点与带内的数据点进行不同的着色 我是否应该在数据集中添加一个单独的列来记录数据点是否在置信区间内 您能举个例子吗 示例数据集 Dataset from http www apsnet org education
  • Mac OS X 中每个进程的磁盘读/写统计信息

    如何在 Mac OS X 中以编程方式获取每个进程的磁盘 I O 统计信息 在 活动监视器 应用程序或 top 命令中 我们只能获取整个系统磁盘 I O 统计信息 以供参考PC 上也有类似的问题 https stackoverflow co
  • C++ ARMA方法和回归分析

    是否有任何 C 库可以实现 ARMA 方法及其变体 我希望有一个成熟的发行版来进行此类分析 我不知道有任何本地 C 库可以计算 ARMA 模型 但是 如果对您而言便利性比原始性能更重要 您可以间接做到这一点 Use R http www r
  • 使用 Scipy (Python) 将经验分布拟合到理论分布?

    介绍 我有超过 30 000 个整数值的列表 范围从 0 到 47 含 例如 0 0 0 0 1 1 1 1 2 2 2 2 47 47 47 从一些连续分布中采样 列表中的值不一定按顺序排列 但顺序对于此问题并不重要 PROBLEM 根据
  • 为什么我的 R 直方图中的第一个条形那么大?

    我正在使用 R 我尝试使用以下 R 脚本可视化 1000 次骰子投掷的分布 cases lt 1000 min lt 1 max lt 6 x lt as integer runif cases min max 1 mx lt mean x
  • Mathematica 中 PatternTest 的意外行为

    我正在研究玩具问题 以帮助我吸收 Mathematica 中模式匹配的思想 下面的代码没有按照我的预期运行 我无法弄清楚我对 PatternTest 的理解有什么问题 MatchQ 2 1 2 5 x FromDigits gt 3 y 我
  • .NETLink Graphics 生成 PNG 而不是 EMF

    下面的 C 代码应该生成 EMF 但查看输出 在 Vim 中 显示它是 PNG 也许有人在 S O 知道一个好的解决方法或解决方案 MathKernel k new MathKernel k CaptureGraphics true k G

随机推荐

  • 如何通过单击 MainFrame 内的按钮来更改 MFC 视图

    我想通过单击窗口内的按钮来更改呈现的视图像这样 https i stack imgur com 3IA2o png 我的项目设置 我制作了一个没有文档 视图支持的 MFC 项目 SDI 我在设计器中又创建了两个视图并向它们添加了类 新的视图
  • 使用 MultiIndex 列过滤行

    当创建具有 MultiIndex 列的 DataFrame 时 似乎无法使用类似语法来选择 过滤行df df AA gt 0 0 例如 import pandas as pd import numpy as np dates np asar
  • 如何让 Icecast 在端口 80 上运行 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在尝试让 Icecast 在端口 80 上工作时遇到问题 它在默认情况下工作 但当我尝试将其设置为端口 80 时 一切都中断了 我已确保
  • 错误例如:“求解环境:初始冻结求解失败。使用“灵活解决”和“单元测试”选项卡重试

    我正在使用spyder python 我想测试我的代码 我已遵循pip install spyder unittest and pip install pytest 我已经重新启动了内核并重新启动了我的 MAC 然而 单元测试选项卡不会出现
  • 如何使用 jquery 旋转悬停图像?

    我试图在悬停时将 返回顶部 按钮旋转 360 度 而在鼠标离开时不取消旋转 我已经尝试了多种 jQuery 代码变体 但我似乎仍然无法让它工作 这是迄今为止我所得到的真实示例 CSS 悬停在图像之间 我尝试将 jQuery 更改为mouse
  • Rails 3:更改现有 mysql 数据库的字符集和排序规则

    是否可以使用 Rails 迁移或其他选项更改现有 Mysql 数据库的字符集和排序规则 初始配置数据库字符集和排序规则的最佳方法是什么 本机查询可以在 Rails 迁移中执行 def self up execute ALTER DATABA
  • 如何使用linq动态过滤子集合

    我正在尝试过滤用户请求的结果 例如你有orders and order details and products是子集合 当用户想要按产品过滤时 我收到错误 因为No property or field PRODUCTS exists in
  • 如何在 FastAPI 中访问端点视图函数内的 APP 属性?

    这是我的项目结构 gitignore README md requirements txt start py app main py apis v1 init py routes evaluation essentials py train
  • python pandas 选择头部和尾部

    对于 Pandas 中的 DataFrame 如何同时选择前 5 个值和后 5 个值 例如 In 11 df Out 11 A B C 2012 11 29 0 0 0 2012 11 30 1 1 1 2012 12 01 2 2 2 2
  • 无法将“obj\Debug\{project}.dll”复制到“bin\{project}.dll”

    最近 当我尝试运行我的项目时 Web 版 Visual Studio Express 2013 经常抛出此错误 我找到的唯一解决方案是退出并重新启动 Visual Studio 或 有时 完全重新启动 Windows 什么会导致这样的事情
  • 加载时css3过渡动画?

    是否可以在页面加载时使用 CSS3 过渡动画而不使用 Javascript 这就是我想要的 但是在页面加载时 图像滑块 html https web archive org web 20141021062316 http rilwis go
  • Spring Boot x509 测试 - pcf

    In 云铸造厂我已对其进行配置 以便将客户端证书转发到我的 Spring Boot 应用程序 该证书被放置在x forwarded client certheader 中 spring boot 应用程序读取 this 并检查 CN 是否已
  • 如何在access中查看宏代码?

    我有一个 Microsoft Access 数据库 里面有一个宏 如何查看宏的代码 打开Access数据库 您将看到表 查询 报告 模块和宏 其中包含可用于按顺序调用常见 MS Access 操作的宏 对于自定义 VBA 宏 请按 ALT
  • Safari 在 div 中使用 Google 地图打破边框半径

    对我来说关于 Stack 的第一个问题 我已经完成了我的作业并发现了类似这个主题的内容 在 webkit 浏览器中 v3 谷歌地图不尊重容器的边框半径 有人有解决方法吗 https stackoverflow com questions 1
  • 查找API端点的方法

    API探索 尽管有几个问题涉及该主题 但我找不到解决我想要理解的核心概念的问题 如果知道 API 的根结构 我们可以想象一下http stackoverflow com api service 我们可以成功地从已知端点检索结果 比方说htt
  • 如何安全地销毁 QThread?

    我想正确地销毁一个QThread在 Qt 5 3 中 到目前为止我已经得到 MyClass MyClass QObject parent QObject parent mThread new QThread this QObject con
  • 获取 3 个列表之间的差异

    我正在研究列表的差异 gt gt a 1 2 3 gt gt b 2 4 5 gt gt c 3 2 6 两组之间的对称差异可以使用以下方法完成 gt gt z set a symmetric difference set b gt gt
  • 3D 空间中的激光投影仪校准

    我正在研究一种在现实世界中校准激光投影仪的解决方案 该项目有几个目标 1 Take in a minimum of four points measured in the real world in 3d space that repres
  • dojo.parser.parse 仅在第一次调用时工作

    我有一个页面 当用户单击某些报告工具的链接时 它首先要求他们输入一些报告参数 我根据链接的 id 使用 AJAX 以表单形式获取参数对话框 每个对话框上都有一些 dojo 控件 因此我需要在对话框出现时解析它们 因为它最初不是页面的一部分
  • 可以在 Mathematica 中扩展 PDF、CDF、FindDistributionParameters 等功能吗?

    我开始使用新的 Mathematica 统计和数据分析功能进行越来越多的工作 我周二参加了 Mathematica 统计与数据分析 在线研讨会 非常棒的演讲 我强烈推荐 但我遇到了一些问题 我希望这个论坛上的人可以花点时间考虑一下 我创建了