GAUSS 26:内置性能分析器、L-BFGS-B优化器及30+项新功能

来源:Aptech 官方博客 · 发表时间:2026年2月4日 · 更新于:2026年3月17日

 


📖 文章目录

GAUSS 26 引入了内置性能分析器(Profiler)、全新的 L-BFGS-B 优化器、现代语言语法,以及超过 30 项新功能和增强。所有现有代码均可继续正常运行,无需任何修改。

无论您是在追踪性能瓶颈、估计带边界约束的模型,还是交互式地转换数据,此版本都将带来改变您工作方式的新功能。以下是更新内容概览。


快速定位慢代码

GAUSS 26 包含内置性能分析器。打开任意程序,按下 Shift+F5(或使用 Profiler 中的运行按钮),GAUSS 将在运行时对每一行代码和过程调用进行性能分析。

性能分析器面板包含三个标签页:

  • Hot Spots(热点) — 按耗时排序的每行代码,让您一目了然了解程序时间花费在哪里
  • Call Tree(调用树) — 过程的层次化调用视图,显示哪些过程调用了哪些过程,以及各自的耗时
  • Output(输出) — 程序的正常输出,您可以在性能分析的同时验证结果

GAUSS 26 性能分析器 Hot Spots 标签页,显示 bootstrap_ols 过程中第14行的 inv() 函数占用50.4%的执行时间

双击任意条目可直接跳转到编辑器中的对应行。

如果您曾希望让估算代码更快运行,性能分析器会精确告诉您应该关注哪里。无需打印语句,无需猜测——您能立即看到瓶颈所在。


带边界约束的 L-BFGS-B 优化

全新的 minimize 函数将 L-BFGS-B 算法引入 GAUSS——这是处理平滑无约束和带边界约束优化问题的标准方法。

// 定义目标函数
proc (1) = rosenbrock(x);
    retp( (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 );
endp;

// 设置边界
x0 = { -1, -1 };

struct minimizeControl ctl;
ctl = minimizeControlCreate();
ctl.bounds = { -5 5, -5 5 };

// 优化
struct minimizeOut out;
out = minimize(&rosenbrock, x0, ctl);
解:       x = 1.0000, 1.0000
函数值:     5.69e-14
返回代码:    0(已收敛)

minimize 支持将额外的数据参数直接传递给目标函数,因此无需全局变量即可将数据传入似然函数。这对 MLE 估计非常有用,尤其是参数必须保持为正(如方差分量)或需要保持在一定范围内(如相关系数介于 -1 和 1 之间)的情况。

L-BFGS-B 是处理平滑带边界约束问题的标准选择。对于非线性等式或不等式约束,请使用 sqpSolveMT。对于无约束问题,minimizeoptmt 都是不错的选择——minimize 在高维问题中占用更少内存。


现代语言语法

GAUSS 26 增加了日常编码中的便利功能——序列生成、打印和错误消息的工作方式都更加符合预期。

冒号运算符

GAUSS 现在支持使用冒号运算符创建序列:

// 之前
x = seqa(1, 1, 5);

// 现在
x = 1:5;
1  2  3  4  5

步进形式可以创建自定义步长的序列:

odds = 1:2:10;
countdown = 10:-2:1;
grid = 0:0.5:2;
odds:       1  3  5  7  9
countdown:  10  8  6  4  2
grid:       0  0.5  1  1.5  2

两种形式都支持变量和表达式(a:b(n-1):(n+1)minc(x):maxc(x))。在方括号内,冒号继续作为索引范围使用——如 x[1:5] 选择第 1 到第 5 个元素,与之前相同。

print 现在可直接接受表达式,无需用括号括起来:

x = 3;
y = 7;
print x + y;
print x .* y;
10
21

所有算术、比较、逐元素和字符串运算符均受支持。原有的空格敏感行为保持不变——print a -b; 仍打印两个项目,而 print a - b; 打印它们的差。

更好的错误提示

错误消息现在会告诉您哪里出了问题以及应该从哪里查找。

x = rndn(10);
之前:  "参数数量错误"
现在:  "'rndn' 需要2-3个参数,实际传入1个"
rndn = 100;
之前:  "语法错误"
现在:  "非法使用保留字 'rndn'"

统计检验函数

GAUSS 26 在基础包中新增了四个统计检验函数。

ttest — 双样本和配对 t 检验,支持 Welch 和合并方差选项、置信区间,以及用于方差齐性检验的 F 检验。

// 比较处理组与对照组的均值
result = ttest(treatment, control);

shapiroWilk — 单变量正态性的标准检验。

result = shapiroWilk(residuals);
print result.w;
print result.p;
W 统计量:0.9788
p 值:    0.1070

mvnTest — 多元正态性检验,支持 Henze-Zirkler(默认)、Mardia 偏度和峰度、Doornik-Hansen 或 Royston 方法。适用于检查 VAR 残差或验证估计前的分布假设。

contingency — 列联表综合分析:卡方检验、Fisher 精确检验、优势比、相对风险,以及关联度量指标,包括 Cramer's V、Gamma、Kendall's tau-b 和 Cohen's Kappa。


无需编码即可转换数据

Symbol Editor 中新增的 Transform 标签页让您可以通过交互方式应用常见的数据转换——滞后、一阶差分、百分比变化、移动平均、对数、标准化、归一化等等。

选择一个列,选择一种转换,结果将显示为新列。GAUSS 会自动生成对应的代码,便于您后续将其整合到脚本中。

字符串列支持小写、大写、修剪和文本替换。日期列支持提取年、月、日、季度、周和时间分量。


数据管理

新增函数覆盖了每次估计前后的数据处理任务:重塑数据、频率转换和面板平衡。

时间序列频率聚合

全新的 tsAggregate 函数可将时间序列数据从高频率转换为低频率:

data = loadd("daily_prices.csv", "date(Date) + Price + Volume");

// 将日数据转换为月数据:最后价格、总体积
monthly = tsAggregate(data, "monthly", "last" $| "sum");

支持秒、分钟、小时、日、月、季度和年频率。聚合方法包括 last、first、mean、sum、max、min、median、standard deviation、count 和 mode。

在数据框中添加计算列

全新的 dfaddcol 函数可一步完成在数据框中添加命名列:

auto2 = dfaddcol(auto2, "price_k", auto2[., "price"] ./ 1000);
auto2 = dfaddcol(auto2, "log_mpg", ln(auto2[., "mpg"]));
           make     price       mpg   price_k   log_mpg
    AMC Concord      4099        22     4.099     3.091
      AMC Pacer      4749        17     4.749     2.833
     AMC Spirit      3799        22     3.799     3.091
  Buick Century      4816        20     4.816     2.996
  Buick Electra      7827        15     7.827     2.708

新列已命名并可直接使用。如果您要为估计构建派生变量,这能让工作流程保持整洁,列名也更加清晰。

平衡面板数据集

pdBalance 用于标准化面板数据,使每个组都具有相同的时间覆盖范围:

balanced = pdBalance(panel_data, "fill");

这会用缺失值填充空白,使每个组覆盖完整的时间范围——这是面板估计前常见的预处理步骤。与 GAUSS 25 引入的 pdLagpdSummary 配合使用效果更佳。

多列聚合

aggregate 函数现在支持按多个变量分组:

method = "max";
variables = "day" $| "time";
max_tips = aggregate(tips, method, variables);

编辑器与 IDE

识别代码中的全局变量

过程中的全局变量会阻碍您添加 threadFor 或其他并行化操作,并增加维护难度。GAUSS 26 让您可以即时发现它们——引用全局变量的过程会在编辑器中以橙色高亮显示这些变量。将鼠标悬停在任何高亮变量上,可在工具提示中看到其名称。通过 编辑 > 首选项 > 高亮过程中的全局变量 可开启或关闭此功能。

简化的图形界面

Graphics 页面现在将图形设置和画布设置合并到统一的标签页界面中,包含坐标轴(Axes)、线条(Lines)、符号(Symbols)、文本(Text)和画布(Canvas)标签页。新增的工具栏开关可快速访问。

导航筛选组件

Command 页面和 Data 页面新增的筛选组件,让您可以在输入时搜索命令历史和工作区符号。在任一视图中按 Ctrl+K(Mac 上为 Cmd+K)可激活筛选。Data 页面的 Open Symbol 对话框也新增了自动补全功能。


其他增强功能

  • repmat — 平铺矩阵:repmat(A, 3, 2) 创建 3x2 个 A 的副本矩阵(MATLAB 等价函数:repmat
  • findIdx — 返回条件为真的索引:findIdx(x .> 0)(R 等价函数:which()
  • diagmat — 从向量创建对角或非对角矩阵,支持上、下副对角线的可选偏移
  • sortcsortmc — 新增 sort_order 参数,支持升序(1)或降序(-1)排序
  • endswith — 补充 startsWith,用于字符串和数据框筛选
  • strrindx — 现在接受向量输入作为搜索模式
  • quantileFit — 新增收敛诊断(qOut.convergedqOut.iterations)和改进的输入验证,带有清晰的错误消息
  • sqpSolveMT — 改进了对挑战性优化问题的稳健性,具有更好的自适应信赖域管理
  • eigv — 对于 2x2 矩阵,使用闭式解提速 2.6 倍,并在接近重复特征值时自动回退到标准算法
  • Symbol Editor — 新增"开头为"、"不以"、"结尾为"、"不以结尾"筛选器;待处理更改以蓝色文本显示;列标题在有待处理筛选或转换时显示星号
  • Package Manager — 详细的错误消息,包含分类排错步骤
  • Edit 和 Debug 页面的新按钮可直接在 Symbol Editor 中打开矩阵、字符串和数据框

未来更新预告

今年晚些时候,我们将发布新的贝叶斯 VAR 估计功能,支持 Minnesota 先验、条件预测和超参数优化——所有这些都直接在 GAUSS 中完成,由新的高性能计算库驱动。敬请期待。


开始使用 GAUSS 26

GAUSS 26 对拥有有效维护服务的用户是免费更新。请下载 Windows 版本下载 macOS 版本,或联系我们获取试用许可。

刚接触 GAUSS?请参阅我们的入门指南。从其他语言迁移而来?请参阅我们的迁移到 GAUSS 指南(支持 R、MATLAB、Stata 和 Python 用户)。

 

 


 

在线留言

尊敬的客户朋友,如您有任何意见建议,请通过下表反馈给我们,我们会尽快与您联系。

 

 

 

 

联系我们

 

微信公众号

咨询微信

企业店铺

400-621-1085

(节假日期间办公室座机如无人接听,请选择其他联系方式,感谢理解!祝您节日快乐!)

 

联系我们 快速链接 相关产品 上海卡贝信息技术有限公司

©2026  上海卡贝信息技术有限公司

产品中心

下载中心

站点地图

隐私政策

 

销售QQ咨询

产品QQ咨询

淘宝店铺

 

综述

GAUSS产品

应用程序

第三方应用程序

最新更新:26版

相关文档

下载试用

购买咨询

 

SAS

GraphPad Prism

LISREL

SmarPLS

Stata

HLM

IRTPRO

TreeAge

Design-Expert

IBM SPSS Statistics

EViews

RATS

SigmaPlot

EndNote

Citavi

LINGO

@RISK

BayesiaLab

Hugin

E-Prime

XLfit