估计器
(类来自 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 (string 或 function (可选)) – 内置目标(目前仅支持“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.Series 或 pd.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:
- 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:
- 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:
- 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:
- Returns:
bootstrap_theta – 每个样本的Theta值以及(如果return_samples = True)每个估计中使用的样本编号
- Return type:
pd.DataFrame