aigroup-econ-mcp 1.3.3__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.
Files changed (120) hide show
  1. .gitignore +253 -0
  2. PKG-INFO +710 -0
  3. README.md +672 -0
  4. __init__.py +14 -0
  5. aigroup_econ_mcp-1.4.3.dist-info/METADATA +710 -0
  6. aigroup_econ_mcp-1.4.3.dist-info/RECORD +92 -0
  7. aigroup_econ_mcp-1.4.3.dist-info/entry_points.txt +2 -0
  8. aigroup_econ_mcp-1.4.3.dist-info/licenses/LICENSE +21 -0
  9. cli.py +28 -0
  10. econometrics/README.md +18 -0
  11. econometrics/__init__.py +191 -0
  12. econometrics/advanced_methods/modern_computing_machine_learning/__init__.py +0 -0
  13. econometrics/basic_parametric_estimation/__init__.py +31 -0
  14. econometrics/basic_parametric_estimation/gmm/__init__.py +13 -0
  15. econometrics/basic_parametric_estimation/gmm/gmm_model.py +256 -0
  16. econometrics/basic_parametric_estimation/mle/__init__.py +13 -0
  17. econometrics/basic_parametric_estimation/mle/mle_model.py +241 -0
  18. econometrics/basic_parametric_estimation/ols/__init__.py +13 -0
  19. econometrics/basic_parametric_estimation/ols/ols_model.py +141 -0
  20. econometrics/causal_inference/causal_identification_strategy/__init__.py +0 -0
  21. econometrics/missing_data/missing_data_measurement_error/__init__.py +0 -0
  22. econometrics/model_specification_diagnostics_robust_inference/README.md +173 -0
  23. econometrics/model_specification_diagnostics_robust_inference/__init__.py +78 -0
  24. econometrics/model_specification_diagnostics_robust_inference/diagnostic_tests/__init__.py +20 -0
  25. econometrics/model_specification_diagnostics_robust_inference/diagnostic_tests/diagnostic_tests_model.py +149 -0
  26. econometrics/model_specification_diagnostics_robust_inference/generalized_least_squares/__init__.py +15 -0
  27. econometrics/model_specification_diagnostics_robust_inference/generalized_least_squares/gls_model.py +130 -0
  28. econometrics/model_specification_diagnostics_robust_inference/model_selection/__init__.py +18 -0
  29. econometrics/model_specification_diagnostics_robust_inference/model_selection/model_selection_model.py +286 -0
  30. econometrics/model_specification_diagnostics_robust_inference/regularization/__init__.py +15 -0
  31. econometrics/model_specification_diagnostics_robust_inference/regularization/regularization_model.py +177 -0
  32. econometrics/model_specification_diagnostics_robust_inference/robust_errors/__init__.py +15 -0
  33. econometrics/model_specification_diagnostics_robust_inference/robust_errors/robust_errors_model.py +122 -0
  34. econometrics/model_specification_diagnostics_robust_inference/simultaneous_equations/__init__.py +15 -0
  35. econometrics/model_specification_diagnostics_robust_inference/simultaneous_equations/simultaneous_equations_model.py +246 -0
  36. econometrics/model_specification_diagnostics_robust_inference/weighted_least_squares/__init__.py +15 -0
  37. econometrics/model_specification_diagnostics_robust_inference/weighted_least_squares/wls_model.py +127 -0
  38. econometrics/nonparametric/nonparametric_semiparametric_methods/__init__.py +0 -0
  39. econometrics/spatial_econometrics/spatial_econometrics_new/__init__.py +0 -0
  40. econometrics/specific_data_modeling/micro_discrete_limited_data/__init__.py +0 -0
  41. econometrics/specific_data_modeling/survival_duration_data/__init__.py +0 -0
  42. econometrics/specific_data_modeling/time_series_panel_data/__init__.py +143 -0
  43. econometrics/specific_data_modeling/time_series_panel_data/arima_model.py +104 -0
  44. econometrics/specific_data_modeling/time_series_panel_data/cointegration_vecm.py +334 -0
  45. econometrics/specific_data_modeling/time_series_panel_data/dynamic_panel_models.py +653 -0
  46. econometrics/specific_data_modeling/time_series_panel_data/exponential_smoothing.py +176 -0
  47. econometrics/specific_data_modeling/time_series_panel_data/garch_model.py +198 -0
  48. econometrics/specific_data_modeling/time_series_panel_data/panel_diagnostics.py +125 -0
  49. econometrics/specific_data_modeling/time_series_panel_data/panel_var.py +60 -0
  50. econometrics/specific_data_modeling/time_series_panel_data/structural_break_tests.py +87 -0
  51. econometrics/specific_data_modeling/time_series_panel_data/time_varying_parameter_models.py +106 -0
  52. econometrics/specific_data_modeling/time_series_panel_data/unit_root_tests.py +204 -0
  53. econometrics/specific_data_modeling/time_series_panel_data/var_svar_model.py +372 -0
  54. econometrics/statistical_inference/statistical_inference_techniques/__init__.py +0 -0
  55. econometrics/statistics/distribution_decomposition_methods/__init__.py +0 -0
  56. econometrics/tests/basic_parametric_estimation_tests/__init__.py +3 -0
  57. econometrics/tests/basic_parametric_estimation_tests/test_gmm.py +128 -0
  58. econometrics/tests/basic_parametric_estimation_tests/test_mle.py +127 -0
  59. econometrics/tests/basic_parametric_estimation_tests/test_ols.py +100 -0
  60. econometrics/tests/model_specification_diagnostics_tests/__init__.py +3 -0
  61. econometrics/tests/model_specification_diagnostics_tests/test_diagnostic_tests.py +86 -0
  62. econometrics/tests/model_specification_diagnostics_tests/test_robust_errors.py +89 -0
  63. econometrics/tests/specific_data_modeling_tests/__init__.py +3 -0
  64. econometrics/tests/specific_data_modeling_tests/test_arima.py +98 -0
  65. econometrics/tests/specific_data_modeling_tests/test_dynamic_panel.py +198 -0
  66. econometrics/tests/specific_data_modeling_tests/test_exponential_smoothing.py +105 -0
  67. econometrics/tests/specific_data_modeling_tests/test_garch.py +118 -0
  68. econometrics/tests/specific_data_modeling_tests/test_unit_root.py +156 -0
  69. econometrics/tests/specific_data_modeling_tests/test_var.py +124 -0
  70. prompts/__init__.py +0 -0
  71. prompts/analysis_guides.py +43 -0
  72. pyproject.toml +78 -0
  73. resources/MCP_MASTER_GUIDE.md +422 -0
  74. resources/MCP_TOOLS_DATA_FORMAT_GUIDE.md +185 -0
  75. resources/__init__.py +0 -0
  76. server.py +83 -0
  77. tools/README.md +88 -0
  78. tools/__init__.py +45 -0
  79. tools/data_loader.py +213 -0
  80. tools/decorators.py +38 -0
  81. tools/econometrics_adapter.py +286 -0
  82. tools/mcp_tool_groups/__init__.py +1 -0
  83. tools/mcp_tool_groups/basic_parametric_tools.py +173 -0
  84. tools/mcp_tool_groups/model_specification_tools.py +402 -0
  85. tools/mcp_tool_groups/time_series_tools.py +494 -0
  86. tools/mcp_tools_registry.py +114 -0
  87. tools/model_specification_adapter.py +369 -0
  88. tools/output_formatter.py +563 -0
  89. tools/time_series_panel_data_adapter.py +858 -0
  90. tools/time_series_panel_data_tools.py +65 -0
  91. aigroup_econ_mcp/__init__.py +0 -19
  92. aigroup_econ_mcp/cli.py +0 -82
  93. aigroup_econ_mcp/config.py +0 -561
  94. aigroup_econ_mcp/server.py +0 -452
  95. aigroup_econ_mcp/tools/__init__.py +0 -19
  96. aigroup_econ_mcp/tools/base.py +0 -470
  97. aigroup_econ_mcp/tools/cache.py +0 -533
  98. aigroup_econ_mcp/tools/data_loader.py +0 -195
  99. aigroup_econ_mcp/tools/file_parser.py +0 -1027
  100. aigroup_econ_mcp/tools/machine_learning.py +0 -60
  101. aigroup_econ_mcp/tools/ml_ensemble.py +0 -210
  102. aigroup_econ_mcp/tools/ml_evaluation.py +0 -272
  103. aigroup_econ_mcp/tools/ml_models.py +0 -54
  104. aigroup_econ_mcp/tools/ml_regularization.py +0 -186
  105. aigroup_econ_mcp/tools/monitoring.py +0 -555
  106. aigroup_econ_mcp/tools/optimized_example.py +0 -229
  107. aigroup_econ_mcp/tools/panel_data.py +0 -619
  108. aigroup_econ_mcp/tools/regression.py +0 -214
  109. aigroup_econ_mcp/tools/statistics.py +0 -154
  110. aigroup_econ_mcp/tools/time_series.py +0 -698
  111. aigroup_econ_mcp/tools/timeout.py +0 -283
  112. aigroup_econ_mcp/tools/tool_descriptions.py +0 -410
  113. aigroup_econ_mcp/tools/tool_handlers.py +0 -1016
  114. aigroup_econ_mcp/tools/tool_registry.py +0 -478
  115. aigroup_econ_mcp/tools/validation.py +0 -482
  116. aigroup_econ_mcp-1.3.3.dist-info/METADATA +0 -525
  117. aigroup_econ_mcp-1.3.3.dist-info/RECORD +0 -30
  118. aigroup_econ_mcp-1.3.3.dist-info/entry_points.txt +0 -2
  119. /aigroup_econ_mcp-1.3.3.dist-info/licenses/LICENSE → /LICENSE +0 -0
  120. {aigroup_econ_mcp-1.3.3.dist-info → aigroup_econ_mcp-1.4.3.dist-info}/WHEEL +0 -0
@@ -1,186 +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
- if len(y) < 5:
135
- warnings.warn(f"⚠️ 警告:样本数量较少({len(y)}个),正则化回归可能不稳定")
136
-
137
- # 数据标准化 - 只标准化自变量,不标准化因变量
138
- scaler = StandardScaler()
139
- X_scaled = scaler.fit_transform(X)
140
-
141
- # 选择模型
142
- if model_type == "lasso":
143
- model = Lasso(alpha=alpha, random_state=random_state, max_iter=10000, tol=1e-4)
144
- # 对于Lasso,如果alpha过大,建议使用更小的值
145
- if alpha > 10:
146
- warnings.warn(f"⚠️ 警告:Lasso正则化参数alpha={alpha}可能过大,建议尝试更小的值(如0.1-1.0)")
147
- elif model_type == "ridge":
148
- model = Ridge(alpha=alpha, random_state=random_state)
149
- else:
150
- raise ValueError(f"不支持的模型类型: {model_type}")
151
-
152
- # 训练模型
153
- try:
154
- model.fit(X_scaled, y)
155
- except Exception as e:
156
- raise ValueError(f"{model_type}模型拟合失败: {str(e)}。建议:1) 检查数据质量 2) 尝试不同的alpha值 3) 增加样本数量")
157
-
158
- # 预测
159
- y_pred = model.predict(X_scaled)
160
-
161
- # 计算评估指标
162
- r2 = r2_score(y, y_pred)
163
- mse = mean_squared_error(y, y_pred)
164
- mae = mean_absolute_error(y, y_pred)
165
-
166
- # 检查R²是否为负值
167
- if r2 < 0:
168
- warnings.warn(f"⚠️ 警告:{model_type}模型的R²为负值({r2:.4f}),表明模型性能比简单均值预测更差。可能原因:1) 数据噪声过大 2) 特征与目标变量无关 3) 正则化参数过大 4) 样本量过小")
169
-
170
- # 系数(注意:由于标准化,系数需要适当解释)
171
- coefficients = dict(zip(feature_names, model.coef_))
172
-
173
- # 检查系数是否全为0(Lasso过度压缩)
174
- if model_type == "lasso" and all(abs(coef) < 1e-10 for coef in model.coef_):
175
- warnings.warn(f"⚠️ 警告:Lasso模型所有系数都被压缩为0,表明正则化参数alpha={alpha}可能过大,建议减小alpha值")
176
-
177
- return RegularizedRegressionResult(
178
- model_type=model_type,
179
- r2_score=r2,
180
- mse=mse,
181
- mae=mae,
182
- n_obs=len(y),
183
- feature_names=feature_names,
184
- alpha=alpha,
185
- coefficients=coefficients
186
- )