aigroup-econ-mcp 0.4.2__py3-none-any.whl → 1.4.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- .gitignore +253 -0
- PKG-INFO +710 -0
- README.md +672 -0
- __init__.py +14 -0
- aigroup_econ_mcp-1.4.3.dist-info/METADATA +710 -0
- aigroup_econ_mcp-1.4.3.dist-info/RECORD +92 -0
- aigroup_econ_mcp-1.4.3.dist-info/entry_points.txt +2 -0
- aigroup_econ_mcp-1.4.3.dist-info/licenses/LICENSE +21 -0
- cli.py +28 -0
- econometrics/README.md +18 -0
- econometrics/__init__.py +191 -0
- econometrics/advanced_methods/modern_computing_machine_learning/__init__.py +0 -0
- econometrics/basic_parametric_estimation/__init__.py +31 -0
- econometrics/basic_parametric_estimation/gmm/__init__.py +13 -0
- econometrics/basic_parametric_estimation/gmm/gmm_model.py +256 -0
- econometrics/basic_parametric_estimation/mle/__init__.py +13 -0
- econometrics/basic_parametric_estimation/mle/mle_model.py +241 -0
- econometrics/basic_parametric_estimation/ols/__init__.py +13 -0
- econometrics/basic_parametric_estimation/ols/ols_model.py +141 -0
- econometrics/causal_inference/causal_identification_strategy/__init__.py +0 -0
- econometrics/missing_data/missing_data_measurement_error/__init__.py +0 -0
- econometrics/model_specification_diagnostics_robust_inference/README.md +173 -0
- econometrics/model_specification_diagnostics_robust_inference/__init__.py +78 -0
- econometrics/model_specification_diagnostics_robust_inference/diagnostic_tests/__init__.py +20 -0
- econometrics/model_specification_diagnostics_robust_inference/diagnostic_tests/diagnostic_tests_model.py +149 -0
- econometrics/model_specification_diagnostics_robust_inference/generalized_least_squares/__init__.py +15 -0
- econometrics/model_specification_diagnostics_robust_inference/generalized_least_squares/gls_model.py +130 -0
- econometrics/model_specification_diagnostics_robust_inference/model_selection/__init__.py +18 -0
- econometrics/model_specification_diagnostics_robust_inference/model_selection/model_selection_model.py +286 -0
- econometrics/model_specification_diagnostics_robust_inference/regularization/__init__.py +15 -0
- econometrics/model_specification_diagnostics_robust_inference/regularization/regularization_model.py +177 -0
- econometrics/model_specification_diagnostics_robust_inference/robust_errors/__init__.py +15 -0
- econometrics/model_specification_diagnostics_robust_inference/robust_errors/robust_errors_model.py +122 -0
- econometrics/model_specification_diagnostics_robust_inference/simultaneous_equations/__init__.py +15 -0
- econometrics/model_specification_diagnostics_robust_inference/simultaneous_equations/simultaneous_equations_model.py +246 -0
- econometrics/model_specification_diagnostics_robust_inference/weighted_least_squares/__init__.py +15 -0
- econometrics/model_specification_diagnostics_robust_inference/weighted_least_squares/wls_model.py +127 -0
- econometrics/nonparametric/nonparametric_semiparametric_methods/__init__.py +0 -0
- econometrics/spatial_econometrics/spatial_econometrics_new/__init__.py +0 -0
- econometrics/specific_data_modeling/micro_discrete_limited_data/__init__.py +0 -0
- econometrics/specific_data_modeling/survival_duration_data/__init__.py +0 -0
- econometrics/specific_data_modeling/time_series_panel_data/__init__.py +143 -0
- econometrics/specific_data_modeling/time_series_panel_data/arima_model.py +104 -0
- econometrics/specific_data_modeling/time_series_panel_data/cointegration_vecm.py +334 -0
- econometrics/specific_data_modeling/time_series_panel_data/dynamic_panel_models.py +653 -0
- econometrics/specific_data_modeling/time_series_panel_data/exponential_smoothing.py +176 -0
- econometrics/specific_data_modeling/time_series_panel_data/garch_model.py +198 -0
- econometrics/specific_data_modeling/time_series_panel_data/panel_diagnostics.py +125 -0
- econometrics/specific_data_modeling/time_series_panel_data/panel_var.py +60 -0
- econometrics/specific_data_modeling/time_series_panel_data/structural_break_tests.py +87 -0
- econometrics/specific_data_modeling/time_series_panel_data/time_varying_parameter_models.py +106 -0
- econometrics/specific_data_modeling/time_series_panel_data/unit_root_tests.py +204 -0
- econometrics/specific_data_modeling/time_series_panel_data/var_svar_model.py +372 -0
- econometrics/statistical_inference/statistical_inference_techniques/__init__.py +0 -0
- econometrics/statistics/distribution_decomposition_methods/__init__.py +0 -0
- econometrics/tests/basic_parametric_estimation_tests/__init__.py +3 -0
- econometrics/tests/basic_parametric_estimation_tests/test_gmm.py +128 -0
- econometrics/tests/basic_parametric_estimation_tests/test_mle.py +127 -0
- econometrics/tests/basic_parametric_estimation_tests/test_ols.py +100 -0
- econometrics/tests/model_specification_diagnostics_tests/__init__.py +3 -0
- econometrics/tests/model_specification_diagnostics_tests/test_diagnostic_tests.py +86 -0
- econometrics/tests/model_specification_diagnostics_tests/test_robust_errors.py +89 -0
- econometrics/tests/specific_data_modeling_tests/__init__.py +3 -0
- econometrics/tests/specific_data_modeling_tests/test_arima.py +98 -0
- econometrics/tests/specific_data_modeling_tests/test_dynamic_panel.py +198 -0
- econometrics/tests/specific_data_modeling_tests/test_exponential_smoothing.py +105 -0
- econometrics/tests/specific_data_modeling_tests/test_garch.py +118 -0
- econometrics/tests/specific_data_modeling_tests/test_unit_root.py +156 -0
- econometrics/tests/specific_data_modeling_tests/test_var.py +124 -0
- prompts/__init__.py +0 -0
- prompts/analysis_guides.py +43 -0
- pyproject.toml +78 -0
- resources/MCP_MASTER_GUIDE.md +422 -0
- resources/MCP_TOOLS_DATA_FORMAT_GUIDE.md +185 -0
- resources/__init__.py +0 -0
- server.py +83 -0
- tools/README.md +88 -0
- tools/__init__.py +45 -0
- tools/data_loader.py +213 -0
- tools/decorators.py +38 -0
- tools/econometrics_adapter.py +286 -0
- tools/mcp_tool_groups/__init__.py +1 -0
- tools/mcp_tool_groups/basic_parametric_tools.py +173 -0
- tools/mcp_tool_groups/model_specification_tools.py +402 -0
- tools/mcp_tool_groups/time_series_tools.py +494 -0
- tools/mcp_tools_registry.py +114 -0
- tools/model_specification_adapter.py +369 -0
- tools/output_formatter.py +563 -0
- tools/time_series_panel_data_adapter.py +858 -0
- tools/time_series_panel_data_tools.py +65 -0
- aigroup_econ_mcp/__init__.py +0 -19
- aigroup_econ_mcp/cli.py +0 -82
- aigroup_econ_mcp/config.py +0 -561
- aigroup_econ_mcp/server.py +0 -452
- aigroup_econ_mcp/tools/__init__.py +0 -18
- aigroup_econ_mcp/tools/base.py +0 -470
- aigroup_econ_mcp/tools/cache.py +0 -533
- aigroup_econ_mcp/tools/data_loader.py +0 -171
- aigroup_econ_mcp/tools/file_parser.py +0 -829
- aigroup_econ_mcp/tools/machine_learning.py +0 -60
- aigroup_econ_mcp/tools/ml_ensemble.py +0 -210
- aigroup_econ_mcp/tools/ml_evaluation.py +0 -272
- aigroup_econ_mcp/tools/ml_models.py +0 -54
- aigroup_econ_mcp/tools/ml_regularization.py +0 -172
- aigroup_econ_mcp/tools/monitoring.py +0 -555
- aigroup_econ_mcp/tools/optimized_example.py +0 -229
- aigroup_econ_mcp/tools/panel_data.py +0 -553
- aigroup_econ_mcp/tools/regression.py +0 -214
- aigroup_econ_mcp/tools/statistics.py +0 -154
- aigroup_econ_mcp/tools/time_series.py +0 -667
- aigroup_econ_mcp/tools/timeout.py +0 -283
- aigroup_econ_mcp/tools/tool_handlers.py +0 -378
- aigroup_econ_mcp/tools/tool_registry.py +0 -170
- aigroup_econ_mcp/tools/validation.py +0 -482
- aigroup_econ_mcp-0.4.2.dist-info/METADATA +0 -360
- aigroup_econ_mcp-0.4.2.dist-info/RECORD +0 -29
- aigroup_econ_mcp-0.4.2.dist-info/entry_points.txt +0 -2
- /aigroup_econ_mcp-0.4.2.dist-info/licenses/LICENSE → /LICENSE +0 -0
- {aigroup_econ_mcp-0.4.2.dist-info → aigroup_econ_mcp-1.4.3.dist-info}/WHEEL +0 -0
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
正则化回归方法模块
|
|
3
|
-
包含Lasso和Ridge回归算法
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
import numpy as np
|
|
7
|
-
from typing import List, Optional
|
|
8
|
-
from sklearn.linear_model import Lasso, Ridge
|
|
9
|
-
from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_error
|
|
10
|
-
from sklearn.preprocessing import StandardScaler
|
|
11
|
-
import warnings
|
|
12
|
-
warnings.filterwarnings('ignore')
|
|
13
|
-
|
|
14
|
-
from .ml_models import RegularizedRegressionResult
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def lasso_regression(
|
|
18
|
-
y_data: List[float],
|
|
19
|
-
x_data: List[List[float]],
|
|
20
|
-
feature_names: Optional[List[str]] = None,
|
|
21
|
-
alpha: float = 1.0,
|
|
22
|
-
random_state: int = 42
|
|
23
|
-
) -> RegularizedRegressionResult:
|
|
24
|
-
"""
|
|
25
|
-
Lasso回归(L1正则化)
|
|
26
|
-
|
|
27
|
-
📊 功能说明:
|
|
28
|
-
使用L1正则化的线性回归,能够进行特征选择和稀疏建模。
|
|
29
|
-
|
|
30
|
-
📈 算法特点:
|
|
31
|
-
- 特征选择:自动将不重要的特征系数压缩为0
|
|
32
|
-
- 稀疏解:产生稀疏的系数向量
|
|
33
|
-
- 可解释性:保留重要特征,去除冗余特征
|
|
34
|
-
- 处理多重共线性:对高度相关的特征进行选择
|
|
35
|
-
|
|
36
|
-
💡 使用场景:
|
|
37
|
-
- 高维数据特征选择
|
|
38
|
-
- 多重共线性问题
|
|
39
|
-
- 稀疏建模需求
|
|
40
|
-
- 可解释性要求高的场景
|
|
41
|
-
|
|
42
|
-
⚠️ 注意事项:
|
|
43
|
-
- 对alpha参数敏感
|
|
44
|
-
- 可能过度压缩重要特征
|
|
45
|
-
- 需要数据标准化
|
|
46
|
-
|
|
47
|
-
Args:
|
|
48
|
-
y_data: 因变量数据
|
|
49
|
-
x_data: 自变量数据,二维列表格式
|
|
50
|
-
feature_names: 特征名称列表
|
|
51
|
-
alpha: 正则化强度,默认1.0
|
|
52
|
-
random_state: 随机种子
|
|
53
|
-
|
|
54
|
-
Returns:
|
|
55
|
-
RegularizedRegressionResult: Lasso回归结果
|
|
56
|
-
"""
|
|
57
|
-
return _regularized_regression(
|
|
58
|
-
y_data, x_data, feature_names, alpha, random_state, "lasso"
|
|
59
|
-
)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
def ridge_regression(
|
|
63
|
-
y_data: List[float],
|
|
64
|
-
x_data: List[List[float]],
|
|
65
|
-
feature_names: Optional[List[str]] = None,
|
|
66
|
-
alpha: float = 1.0,
|
|
67
|
-
random_state: int = 42
|
|
68
|
-
) -> RegularizedRegressionResult:
|
|
69
|
-
"""
|
|
70
|
-
Ridge回归(L2正则化)
|
|
71
|
-
|
|
72
|
-
📊 功能说明:
|
|
73
|
-
使用L2正则化的线性回归,能够处理多重共线性问题。
|
|
74
|
-
|
|
75
|
-
📈 算法特点:
|
|
76
|
-
- 稳定性:对多重共线性稳健
|
|
77
|
-
- 收缩系数:将所有系数向0收缩
|
|
78
|
-
- 无特征选择:保留所有特征
|
|
79
|
-
- 数值稳定性:改善矩阵条件数
|
|
80
|
-
|
|
81
|
-
💡 使用场景:
|
|
82
|
-
- 多重共线性问题
|
|
83
|
-
- 需要稳定估计的场景
|
|
84
|
-
- 所有特征都可能有贡献的情况
|
|
85
|
-
- 小样本高维数据
|
|
86
|
-
|
|
87
|
-
⚠️ 注意事项:
|
|
88
|
-
- 不进行特征选择
|
|
89
|
-
- 对alpha参数敏感
|
|
90
|
-
- 需要数据标准化
|
|
91
|
-
|
|
92
|
-
Args:
|
|
93
|
-
y_data: 因变量数据
|
|
94
|
-
x_data: 自变量数据,二维列表格式
|
|
95
|
-
feature_names: 特征名称列表
|
|
96
|
-
alpha: 正则化强度,默认1.0
|
|
97
|
-
random_state: 随机种子
|
|
98
|
-
|
|
99
|
-
Returns:
|
|
100
|
-
RegularizedRegressionResult: Ridge回归结果
|
|
101
|
-
"""
|
|
102
|
-
return _regularized_regression(
|
|
103
|
-
y_data, x_data, feature_names, alpha, random_state, "ridge"
|
|
104
|
-
)
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
def _regularized_regression(
|
|
108
|
-
y_data: List[float],
|
|
109
|
-
x_data: List[List[float]],
|
|
110
|
-
feature_names: Optional[List[str]],
|
|
111
|
-
alpha: float,
|
|
112
|
-
random_state: int,
|
|
113
|
-
model_type: str
|
|
114
|
-
) -> RegularizedRegressionResult:
|
|
115
|
-
"""正则化回归内部实现"""
|
|
116
|
-
# 数据验证
|
|
117
|
-
if not y_data or not x_data:
|
|
118
|
-
raise ValueError("因变量和自变量数据不能为空")
|
|
119
|
-
|
|
120
|
-
if len(y_data) != len(x_data):
|
|
121
|
-
raise ValueError(f"因变量和自变量的观测数量不一致: y_data={len(y_data)}, x_data={len(x_data)}")
|
|
122
|
-
|
|
123
|
-
# 准备数据
|
|
124
|
-
X = np.array(x_data)
|
|
125
|
-
y = np.array(y_data)
|
|
126
|
-
|
|
127
|
-
# 特征名称处理
|
|
128
|
-
if feature_names is None:
|
|
129
|
-
feature_names = [f"x{i}" for i in range(X.shape[1])]
|
|
130
|
-
elif len(feature_names) != X.shape[1]:
|
|
131
|
-
raise ValueError(f"特征名称数量({len(feature_names)})与自变量数量({X.shape[1]})不匹配")
|
|
132
|
-
|
|
133
|
-
# 数据标准化
|
|
134
|
-
scaler = StandardScaler()
|
|
135
|
-
X_scaled = scaler.fit_transform(X)
|
|
136
|
-
y_scaled = (y - np.mean(y)) / np.std(y) # 标准化因变量
|
|
137
|
-
|
|
138
|
-
# 选择模型
|
|
139
|
-
if model_type == "lasso":
|
|
140
|
-
model = Lasso(alpha=alpha, random_state=random_state, max_iter=10000)
|
|
141
|
-
elif model_type == "ridge":
|
|
142
|
-
model = Ridge(alpha=alpha, random_state=random_state)
|
|
143
|
-
else:
|
|
144
|
-
raise ValueError(f"不支持的模型类型: {model_type}")
|
|
145
|
-
|
|
146
|
-
# 训练模型
|
|
147
|
-
model.fit(X_scaled, y_scaled)
|
|
148
|
-
|
|
149
|
-
# 预测
|
|
150
|
-
y_pred_scaled = model.predict(X_scaled)
|
|
151
|
-
|
|
152
|
-
# 将预测值转换回原始尺度
|
|
153
|
-
y_pred = y_pred_scaled * np.std(y) + np.mean(y)
|
|
154
|
-
|
|
155
|
-
# 计算评估指标
|
|
156
|
-
r2 = r2_score(y, y_pred)
|
|
157
|
-
mse = mean_squared_error(y, y_pred)
|
|
158
|
-
mae = mean_absolute_error(y, y_pred)
|
|
159
|
-
|
|
160
|
-
# 系数(注意:由于标准化,系数需要适当解释)
|
|
161
|
-
coefficients = dict(zip(feature_names, model.coef_))
|
|
162
|
-
|
|
163
|
-
return RegularizedRegressionResult(
|
|
164
|
-
model_type=model_type,
|
|
165
|
-
r2_score=r2,
|
|
166
|
-
mse=mse,
|
|
167
|
-
mae=mae,
|
|
168
|
-
n_obs=len(y),
|
|
169
|
-
feature_names=feature_names,
|
|
170
|
-
alpha=alpha,
|
|
171
|
-
coefficients=coefficients
|
|
172
|
-
)
|