估计器

(类来自 pyomo.contrib.parmest.parmest)

class pyomo.contrib.parmest.parmest.Estimator(experiment_list, obj_function=None, tee=False, diagnostic_mode=False, solver_options=None)[source]

基础类:object

参数估计类

Parameters:
  • experiment_list (list of Experiments) – 一个实验对象的列表,为每个实验创建一个带标签的模型

  • obj_function (stringfunction (可选)) – 内置目标(目前仅支持“SSE”)或用于制定参数估计目标的自定义函数。 如果未指定函数,则模型将“原样”使用,并且应定义“FirstStageCost”和 “SecondStageCost”表达式,用于构建目标。 默认值为 None。

  • tee (bool, optional) – 如果为True,将求解器输出打印到屏幕。默认为False。

  • diagnostic_mode (bool, optional) – 如果为True,打印求解器的诊断信息。默认为False。

  • solver_options (dict, optional) – 提供求解器的选项(也是一个属性的名称)。 默认值为 None。

__init__(experiment_list, obj_function=None, tee=False, diagnostic_mode=False, solver_options=None)[源代码]
__init__(model_function: Callable, data, theta_names, obj_function=None, tee=False, diagnostic_mode=False, solver_options=None)

方法

__init__()

confidence_region_test(theta_values, ...[, ...])

置信区域测试,用于确定theta值是否在一系列alpha值的矩形、多元正态或高斯核密度分布内

leaveNout_bootstrap_test(lNo, lNo_samples, ...)

留N出引导测试用于比较在N个数据点被留出的情况下,使用剩余数据进行引导分析得到的theta值,结果表明theta是否在由引导分析确定的置信区域内

likelihood_ratio_test(obj_at_theta, ...[, ...])

使用\(\chi^2\)分布进行似然比检验,以识别置信区域内的theta值

objective_at_theta([theta_values, ...])

每个theta的目标值

theta_est([solver, return_values, calc_cov, ...])

使用数据中的所有场景进行参数估计

theta_est_bootstrap(bootstrap_samples[, ...])

使用数据的自举重采样进行参数估计

theta_est_leaveNout(lNo[, lNo_samples, ...])

参数估计,其中每个样本中省略了N个数据点

成员文档

confidence_region_test(theta_values, distribution, alphas, test_theta_values=None)[source]

置信区域测试,用于确定theta值是否在矩形、多元正态或高斯核密度分布的范围内,针对一系列alpha值

Parameters:
  • theta_values (pd.DataFrame, columns = theta_names) – 用于生成置信区域的Theta值 (通常由theta_est_bootstrap返回)

  • distribution (string) – 用于定义置信区域的统计分布, 选项 = ‘MVN’ 表示多元正态分布,’KDE’ 表示高斯核密度估计, ‘Rect’ 表示矩形分布。

  • alphas (list) – 用于确定theta值是否在区域内或区域外的alpha值列表。

  • test_theta_values (pd.Seriespd.DataFrame, keys/columns = theta_names, 可选) – 额外的theta值,用于与置信区域进行比较,以确定它们是在内部还是外部。

Returns:

  • training_results (pd.DataFrame) – 用于生成置信区域的Theta值,以及每个alpha的True(内部)或False(外部)

  • test_results (pd.DataFrame) – 如果test_theta_values不为None,返回测试的Theta值以及每个alpha的True(内部)或False(外部)

leaveNout_bootstrap_test(lNo, lNo_samples, bootstrap_samples, distribution, alphas, seed=None)[source]

Leave-N-out 自助法测试用于比较 theta 值,其中 N 个数据点被留出,使用剩余数据进行自助法分析,结果表明 theta 是否在由自助法分析确定的置信区域内

Parameters:
  • lNo (int) – 用于参数估计时忽略的数据点数量

  • lNo_samples (int) – 留N出样本大小。如果 lNo_samples=None,将使用最大组合数

  • bootstrap_samples (int:) – 自举样本大小

  • distribution (string) – 用于定义置信区域的统计分布, 选项 = ‘MVN’ 表示多元正态分布,’KDE’ 表示高斯核密度估计, ‘Rect’ 表示矩形分布。

  • alphas (list) – 用于确定theta值是否在区域内或区域外的alpha值列表。

  • seed (intNone, 可选) – 随机种子

Returns:

  • 每个lNo_sample对应一个条目的元组列表

  • * 每个元组中的第一项是剩余的N个样本的列表 – 被排除在外。

  • * 每个元组中的第二项是使用N个样本估计的theta的DataFrame – 使用N个样本。

  • * 每个元组中的第三项是包含使用剩余样本进行bootstrap分析结果的DataFrame – 使用剩余样本。

  • 对于每个DataFrame,为每个alpha值添加一列

  • 指示theta估计值是否在给定分布的alpha区域内(True)或外(False)

  • (基于bootstrap结果)

likelihood_ratio_test(obj_at_theta, obj_value, alphas, return_thresholds=False)[source]

使用\(\chi^2\)分布进行似然比检验,以识别置信区域内的theta值

Parameters:
  • obj_at_theta (pd.DataFrame, columns = theta_names + 'obj') – 每个theta值的目标值(由objective_at_theta返回)

  • obj_value (intfloat) – 使用所有数据进行参数估计的目标值

  • alphas (list) – 在卡方检验中使用的alpha值列表

  • return_thresholds (bool, optional) – 返回每个alpha的阈值。默认值为False。

Returns:

  • LR (pd.DataFrame) – 每个theta值的客观值以及每个alpha的真假值

  • thresholds (pd.Series) – 如果return_threshold = True,则也会返回阈值。

objective_at_theta(theta_values=None, initialize_parmest_model=False)[source]

每个theta的目标值

Parameters:
  • theta_values (pd.DataFrame, columns=theta_names) – 用于计算目标的theta值

  • initialize_parmest_model (boolean) – 如果为True:解决平方问题实例,构建用于参数估计的扩展模型,并将标志model_initialized设置为True。默认值为False。

Returns:

obj_at_theta – 每个theta的目标值(不可行的解决方案被省略)。

Return type:

pd.DataFrame

theta_est(solver='ef_ipopt', return_values=[], calc_cov=False, cov_n=None)[source]

使用数据中的所有场景进行参数估计

Parameters:
  • solver (string, optional) – 目前仅支持“ef_ipopt”。默认值为“ef_ipopt”。

  • return_values (list, optional) – 变量名称列表,用于从模型中返回值以进行数据协调

  • calc_cov (boolean, optional) – 如果为True,计算并返回协方差矩阵(仅适用于“ef_ipopt”求解器)。 默认值为False。

  • cov_n (int, optional) – 如果calc_cov=True,那么用户需要提供目标函数中使用的数据点数量。

Returns:

  • objectiveval (float) – 目标函数值

  • thetavals (pd.Series) – theta的估计值

  • variable values (pd.DataFrame) – 每个变量名称的变量值(仅适用于solver=’ef_ipopt’)

  • cov (pd.DataFrame) – 拟合参数的协方差矩阵(仅适用于solver=’ef_ipopt’)

theta_est_bootstrap(bootstrap_samples, samplesize=None, replacement=True, seed=None, return_samples=False)[source]

使用数据的自举重采样进行参数估计

Parameters:
  • bootstrap_samples (int) – 从数据中抽取的bootstrap样本数量

  • samplesize (intNone, 可选) – 每个引导样本的大小。如果 samplesize=None,samplesize 将被设置为数据中的样本数量

  • replacement (bool, optional) – 是否进行替换采样。默认值为 True。

  • seed (intNone, 可选) – 随机种子

  • return_samples (bool, optional) – 返回在每个bootstrap估计中使用的样本编号列表。 默认值为False。

Returns:

bootstrap_theta – 每个样本的Theta值以及(如果return_samples = True)每个估计中使用的样本编号

Return type:

pd.DataFrame

theta_est_leaveNout(lNo, lNo_samples=None, seed=None, return_samples=False)[source]

参数估计,其中每个样本中省略了N个数据点

Parameters:
  • lNo (int) – 用于参数估计时忽略的数据点数量

  • lNo_samples (int) – 留N出样本的数量。如果 lNo_samples=None,将使用最大组合数

  • seed (intNone, 可选) – 随机种子

  • return_samples (bool, 可选) – 返回被省略的样本编号列表。默认值为 False。

Returns:

lNo_theta – 每个样本的Theta值,以及(如果return_samples = True)每个估计中省略的样本编号

Return type:

pd.DataFrame