aigroup-econ-mcp 0.4.0__py3-none-any.whl → 1.3.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.
- aigroup_econ_mcp/__init__.py +1 -1
- aigroup_econ_mcp/cli.py +81 -86
- aigroup_econ_mcp/server.py +451 -451
- aigroup_econ_mcp/tools/__init__.py +8 -7
- aigroup_econ_mcp/tools/base.py +204 -5
- aigroup_econ_mcp/tools/data_loader.py +51 -27
- aigroup_econ_mcp/tools/file_parser.py +1027 -560
- aigroup_econ_mcp/tools/machine_learning.py +56 -669
- aigroup_econ_mcp/tools/ml_ensemble.py +210 -0
- aigroup_econ_mcp/tools/ml_evaluation.py +272 -0
- aigroup_econ_mcp/tools/ml_models.py +54 -0
- aigroup_econ_mcp/tools/ml_regularization.py +186 -0
- aigroup_econ_mcp/tools/panel_data.py +70 -4
- aigroup_econ_mcp/tools/time_series.py +53 -22
- aigroup_econ_mcp/tools/tool_descriptions.py +410 -0
- aigroup_econ_mcp/tools/tool_handlers.py +681 -43
- aigroup_econ_mcp/tools/tool_registry.py +329 -21
- aigroup_econ_mcp-1.3.3.dist-info/METADATA +525 -0
- aigroup_econ_mcp-1.3.3.dist-info/RECORD +30 -0
- aigroup_econ_mcp/server_v1_backup.py +0 -1250
- aigroup_econ_mcp/server_v1_old.py +0 -1250
- aigroup_econ_mcp/server_with_file_support.py +0 -259
- aigroup_econ_mcp/tools/decorators.py +0 -178
- aigroup_econ_mcp/tools/file_input_handler.py +0 -268
- aigroup_econ_mcp-0.4.0.dist-info/METADATA +0 -718
- aigroup_econ_mcp-0.4.0.dist-info/RECORD +0 -30
- {aigroup_econ_mcp-0.4.0.dist-info → aigroup_econ_mcp-1.3.3.dist-info}/WHEEL +0 -0
- {aigroup_econ_mcp-0.4.0.dist-info → aigroup_econ_mcp-1.3.3.dist-info}/entry_points.txt +0 -0
- {aigroup_econ_mcp-0.4.0.dist-info → aigroup_econ_mcp-1.3.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
"""
|
|
2
|
+
工具描述模块 - 优化版
|
|
3
|
+
统一管理所有MCP工具的描述信息,为大模型提供详细、结构化的工具说明
|
|
4
|
+
包含使用示例、参数说明、适用场景等信息,提升大模型调用体验
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Dict, Any, List, Optional
|
|
8
|
+
from pydantic import Field
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ToolDescription:
|
|
12
|
+
"""工具描述类 - 优化版"""
|
|
13
|
+
|
|
14
|
+
def __init__(self, name: str, description: str, field_descriptions: Dict[str, str] = None,
|
|
15
|
+
examples: Optional[List[str]] = None, use_cases: Optional[List[str]] = None):
|
|
16
|
+
self.name = name
|
|
17
|
+
self.description = description
|
|
18
|
+
self.field_descriptions = field_descriptions or {}
|
|
19
|
+
self.examples = examples or []
|
|
20
|
+
self.use_cases = use_cases or []
|
|
21
|
+
|
|
22
|
+
def get_field_description(self, field_name: str, default: str = "") -> str:
|
|
23
|
+
"""获取字段描述"""
|
|
24
|
+
return self.field_descriptions.get(field_name, default)
|
|
25
|
+
|
|
26
|
+
def get_full_description(self) -> str:
|
|
27
|
+
"""获取完整描述,包含示例和用例"""
|
|
28
|
+
full_desc = self.description
|
|
29
|
+
if self.examples:
|
|
30
|
+
full_desc += "\n\n使用示例:\n" + "\n".join(f"- {example}" for example in self.examples)
|
|
31
|
+
if self.use_cases:
|
|
32
|
+
full_desc += "\n\n适用场景:\n" + "\n".join(f"- {use_case}" for use_case in self.use_cases)
|
|
33
|
+
return full_desc
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# ============================================================================
|
|
37
|
+
# 基础统计工具描述 (5个)
|
|
38
|
+
# ============================================================================
|
|
39
|
+
|
|
40
|
+
DESCRIPTIVE_STATISTICS = ToolDescription(
|
|
41
|
+
name="descriptive_statistics",
|
|
42
|
+
description="""计算描述性统计量
|
|
43
|
+
|
|
44
|
+
支持三种输入方式:file_path(文件路径)、file_content(文件内容)、data(直接数据)
|
|
45
|
+
支持格式:CSV、JSON、TXT(单列/多列/键值对三种格式)""",
|
|
46
|
+
field_descriptions={
|
|
47
|
+
"file_path": "CSV/JSON/TXT文件路径",
|
|
48
|
+
"file_content": "CSV/JSON/TXT文件内容",
|
|
49
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
50
|
+
"data": "数据字典"
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
OLS_REGRESSION = ToolDescription(
|
|
55
|
+
name="ols_regression",
|
|
56
|
+
description="""OLS回归分析
|
|
57
|
+
|
|
58
|
+
支持文件输入或直接数据输入。文件格式示例:
|
|
59
|
+
CSV: 最后一列为因变量,其余列为自变量""",
|
|
60
|
+
field_descriptions={
|
|
61
|
+
"file_path": "CSV/JSON/TXT文件路径",
|
|
62
|
+
"file_content": "CSV/JSON/TXT文件内容",
|
|
63
|
+
"file_format": "文件格式",
|
|
64
|
+
"y_data": "因变量(直接输入)",
|
|
65
|
+
"x_data": "自变量(直接输入)",
|
|
66
|
+
"feature_names": "特征名称"
|
|
67
|
+
}
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
HYPOTHESIS_TESTING = ToolDescription(
|
|
71
|
+
name="hypothesis_testing",
|
|
72
|
+
description="假设检验 - 支持文件或直接数据输入",
|
|
73
|
+
field_descriptions={
|
|
74
|
+
"file_path": "文件路径",
|
|
75
|
+
"file_content": "文件内容",
|
|
76
|
+
"file_format": "文件格式",
|
|
77
|
+
"data": "第一组数据",
|
|
78
|
+
"data2": "第二组数据",
|
|
79
|
+
"test_type": "检验类型(t_test/adf)"
|
|
80
|
+
}
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
TIME_SERIES_ANALYSIS = ToolDescription(
|
|
84
|
+
name="time_series_analysis",
|
|
85
|
+
description="时间序列分析 - 支持文件或直接数据输入",
|
|
86
|
+
field_descriptions={
|
|
87
|
+
"file_path": "文件路径",
|
|
88
|
+
"file_content": "文件内容",
|
|
89
|
+
"file_format": "文件格式",
|
|
90
|
+
"data": "时间序列数据"
|
|
91
|
+
}
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
CORRELATION_ANALYSIS = ToolDescription(
|
|
95
|
+
name="correlation_analysis",
|
|
96
|
+
description="相关性分析 - 支持文件或直接数据输入",
|
|
97
|
+
field_descriptions={
|
|
98
|
+
"file_path": "文件路径",
|
|
99
|
+
"file_content": "文件内容",
|
|
100
|
+
"file_format": "文件格式",
|
|
101
|
+
"data": "多变量数据",
|
|
102
|
+
"method": "相关系数类型"
|
|
103
|
+
}
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
# ============================================================================
|
|
108
|
+
# 面板数据工具描述 (4个)
|
|
109
|
+
# ============================================================================
|
|
110
|
+
|
|
111
|
+
PANEL_FIXED_EFFECTS = ToolDescription(
|
|
112
|
+
name="panel_fixed_effects",
|
|
113
|
+
description="固定效应模型 - 支持文件输入",
|
|
114
|
+
field_descriptions={
|
|
115
|
+
"file_path": "CSV文件路径。CSV格式要求:必须包含实体ID列(列名含entity_id/id/entity/firm/company/country/region之一)和时间列(列名含time_period/time/date/year/month/period/quarter之一)",
|
|
116
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
117
|
+
"file_format": "文件格式(csv/json/txt/auto)。面板数据推荐使用CSV格式",
|
|
118
|
+
"y_data": "因变量数据列表,数值格式",
|
|
119
|
+
"x_data": "自变量数据矩阵,二维列表格式",
|
|
120
|
+
"entity_ids": "实体ID列表,字符串格式,如 ['A', 'B', 'C', ...]",
|
|
121
|
+
"time_periods": "时间周期列表,字符串格式,如 ['2020', '2021', '2022', ...]",
|
|
122
|
+
"feature_names": "自变量名称列表,如 ['Investment', 'Employment', 'R&D']",
|
|
123
|
+
"entity_effects": "是否包含实体固定效应,默认True",
|
|
124
|
+
"time_effects": "是否包含时间固定效应,默认False"
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
PANEL_RANDOM_EFFECTS = ToolDescription(
|
|
129
|
+
name="panel_random_effects",
|
|
130
|
+
description="随机效应模型 - 支持文件输入",
|
|
131
|
+
field_descriptions={
|
|
132
|
+
"file_path": "CSV文件路径。CSV格式要求:必须包含实体ID列和时间列",
|
|
133
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
134
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
135
|
+
"y_data": "因变量数据列表,数值格式",
|
|
136
|
+
"x_data": "自变量数据矩阵,二维列表格式",
|
|
137
|
+
"entity_ids": "实体ID列表,字符串格式",
|
|
138
|
+
"time_periods": "时间周期列表,字符串格式",
|
|
139
|
+
"feature_names": "自变量名称列表",
|
|
140
|
+
"entity_effects": "是否包含实体随机效应,默认True",
|
|
141
|
+
"time_effects": "是否包含时间随机效应,默认False"
|
|
142
|
+
}
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
PANEL_HAUSMAN_TEST = ToolDescription(
|
|
146
|
+
name="panel_hausman_test",
|
|
147
|
+
description="Hausman检验 - 支持文件输入",
|
|
148
|
+
field_descriptions={
|
|
149
|
+
"file_path": "CSV文件路径。CSV格式要求:必须包含实体ID列和时间列",
|
|
150
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
151
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
152
|
+
"y_data": "因变量数据列表",
|
|
153
|
+
"x_data": "自变量数据矩阵",
|
|
154
|
+
"entity_ids": "实体ID列表",
|
|
155
|
+
"time_periods": "时间周期列表",
|
|
156
|
+
"feature_names": "自变量名称列表"
|
|
157
|
+
}
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
PANEL_UNIT_ROOT_TEST = ToolDescription(
|
|
161
|
+
name="panel_unit_root_test",
|
|
162
|
+
description="面板单位根检验 - 支持文件输入",
|
|
163
|
+
field_descriptions={
|
|
164
|
+
"file_path": "CSV文件路径。CSV格式要求:必须包含实体ID列和时间列。数据量要求:至少3个实体,每个实体至少5个时间点",
|
|
165
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
166
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
167
|
+
"data": "面板数据(从文件解析后的数据)",
|
|
168
|
+
"y_data": "需要检验的变量数据",
|
|
169
|
+
"x_data": "自变量数据(通常不用)",
|
|
170
|
+
"entity_ids": "实体ID列表",
|
|
171
|
+
"time_periods": "时间周期列表",
|
|
172
|
+
"feature_names": "变量名称列表",
|
|
173
|
+
"test_type": "检验类型(levinlin/ips/adf)"
|
|
174
|
+
}
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
# ============================================================================
|
|
179
|
+
# 高级时间序列工具描述 (5个)
|
|
180
|
+
# ============================================================================
|
|
181
|
+
|
|
182
|
+
VAR_MODEL_ANALYSIS = ToolDescription(
|
|
183
|
+
name="var_model_analysis",
|
|
184
|
+
description="VAR模型分析 - 支持文件输入",
|
|
185
|
+
field_descriptions={
|
|
186
|
+
"file_path": "CSV/JSON/TXT文件路径,包含多个时间序列变量",
|
|
187
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
188
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
189
|
+
"data": "多变量时间序列数据字典",
|
|
190
|
+
"max_lags": "最大滞后阶数,默认5",
|
|
191
|
+
"ic": "信息准则(aic/bic/hqic),默认aic"
|
|
192
|
+
}
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
VECM_MODEL_ANALYSIS = ToolDescription(
|
|
196
|
+
name="vecm_model_analysis",
|
|
197
|
+
description="VECM模型分析 - 支持文件输入",
|
|
198
|
+
field_descriptions={
|
|
199
|
+
"file_path": "CSV/JSON/TXT文件路径,包含协整的时间序列变量",
|
|
200
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
201
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
202
|
+
"data": "多变量时间序列数据字典",
|
|
203
|
+
"coint_rank": "协整秩,默认1",
|
|
204
|
+
"deterministic": "确定性项(co/ci/lo/li),默认co",
|
|
205
|
+
"max_lags": "最大滞后阶数,默认5"
|
|
206
|
+
}
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
GARCH_MODEL_ANALYSIS = ToolDescription(
|
|
210
|
+
name="garch_model_analysis",
|
|
211
|
+
description="GARCH模型分析 - 支持文件输入",
|
|
212
|
+
field_descriptions={
|
|
213
|
+
"file_path": "CSV/JSON/TXT文件路径,包含单个时间序列",
|
|
214
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
215
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
216
|
+
"data": "时间序列数据",
|
|
217
|
+
"order": "GARCH阶数(p,q),默认(1,1)",
|
|
218
|
+
"dist": "误差分布(normal/t/skewt),默认normal"
|
|
219
|
+
}
|
|
220
|
+
)
|
|
221
|
+
|
|
222
|
+
STATE_SPACE_MODEL_ANALYSIS = ToolDescription(
|
|
223
|
+
name="state_space_model_analysis",
|
|
224
|
+
description="状态空间模型分析 - 支持文件输入",
|
|
225
|
+
field_descriptions={
|
|
226
|
+
"file_path": "CSV/JSON/TXT文件路径,包含时间序列数据",
|
|
227
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
228
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
229
|
+
"data": "时间序列数据",
|
|
230
|
+
"state_dim": "状态维度,默认1",
|
|
231
|
+
"observation_dim": "观测维度,默认1",
|
|
232
|
+
"trend": "是否包含趋势项,默认True",
|
|
233
|
+
"seasonal": "是否包含季节项,默认False",
|
|
234
|
+
"period": "季节周期,默认12"
|
|
235
|
+
}
|
|
236
|
+
)
|
|
237
|
+
|
|
238
|
+
VARIANCE_DECOMPOSITION_ANALYSIS = ToolDescription(
|
|
239
|
+
name="variance_decomposition_analysis",
|
|
240
|
+
description="方差分解分析 - 支持文件输入",
|
|
241
|
+
field_descriptions={
|
|
242
|
+
"file_path": "CSV/JSON/TXT文件路径,包含多个时间序列变量",
|
|
243
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
244
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
245
|
+
"data": "多变量时间序列数据字典",
|
|
246
|
+
"periods": "预测期数,默认10",
|
|
247
|
+
"max_lags": "最大滞后阶数,默认5"
|
|
248
|
+
}
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
# ============================================================================
|
|
253
|
+
# 机器学习工具描述 (6个)
|
|
254
|
+
# ============================================================================
|
|
255
|
+
|
|
256
|
+
RANDOM_FOREST_REGRESSION_ANALYSIS = ToolDescription(
|
|
257
|
+
name="random_forest_regression_analysis",
|
|
258
|
+
description="随机森林回归 - 支持文件输入",
|
|
259
|
+
field_descriptions={
|
|
260
|
+
"file_path": "CSV/JSON/TXT文件路径,最后一列为因变量",
|
|
261
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
262
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
263
|
+
"y_data": "因变量数据",
|
|
264
|
+
"x_data": "自变量数据矩阵",
|
|
265
|
+
"feature_names": "特征名称列表",
|
|
266
|
+
"n_estimators": "树的数量,默认100",
|
|
267
|
+
"max_depth": "树的最大深度,默认None(不限制)"
|
|
268
|
+
}
|
|
269
|
+
)
|
|
270
|
+
|
|
271
|
+
GRADIENT_BOOSTING_REGRESSION_ANALYSIS = ToolDescription(
|
|
272
|
+
name="gradient_boosting_regression_analysis",
|
|
273
|
+
description="梯度提升树回归 - 支持文件输入",
|
|
274
|
+
field_descriptions={
|
|
275
|
+
"file_path": "CSV/JSON/TXT文件路径,最后一列为因变量",
|
|
276
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
277
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
278
|
+
"y_data": "因变量数据",
|
|
279
|
+
"x_data": "自变量数据矩阵",
|
|
280
|
+
"feature_names": "特征名称列表",
|
|
281
|
+
"n_estimators": "提升轮数,默认100",
|
|
282
|
+
"learning_rate": "学习率,默认0.1",
|
|
283
|
+
"max_depth": "树的最大深度,默认3"
|
|
284
|
+
}
|
|
285
|
+
)
|
|
286
|
+
|
|
287
|
+
LASSO_REGRESSION_ANALYSIS = ToolDescription(
|
|
288
|
+
name="lasso_regression_analysis",
|
|
289
|
+
description="Lasso回归 - 支持文件输入",
|
|
290
|
+
field_descriptions={
|
|
291
|
+
"file_path": "CSV/JSON/TXT文件路径,最后一列为因变量",
|
|
292
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
293
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
294
|
+
"y_data": "因变量数据",
|
|
295
|
+
"x_data": "自变量数据矩阵",
|
|
296
|
+
"feature_names": "特征名称列表",
|
|
297
|
+
"alpha": "正则化强度,默认1.0"
|
|
298
|
+
}
|
|
299
|
+
)
|
|
300
|
+
|
|
301
|
+
RIDGE_REGRESSION_ANALYSIS = ToolDescription(
|
|
302
|
+
name="ridge_regression_analysis",
|
|
303
|
+
description="Ridge回归 - 支持文件输入",
|
|
304
|
+
field_descriptions={
|
|
305
|
+
"file_path": "CSV/JSON/TXT文件路径,最后一列为因变量",
|
|
306
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
307
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
308
|
+
"y_data": "因变量数据",
|
|
309
|
+
"x_data": "自变量数据矩阵",
|
|
310
|
+
"feature_names": "特征名称列表",
|
|
311
|
+
"alpha": "正则化强度,默认1.0"
|
|
312
|
+
}
|
|
313
|
+
)
|
|
314
|
+
|
|
315
|
+
CROSS_VALIDATION_ANALYSIS = ToolDescription(
|
|
316
|
+
name="cross_validation_analysis",
|
|
317
|
+
description="交叉验证 - 支持文件输入",
|
|
318
|
+
field_descriptions={
|
|
319
|
+
"file_path": "CSV/JSON/TXT文件路径,最后一列为因变量",
|
|
320
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
321
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
322
|
+
"y_data": "因变量数据",
|
|
323
|
+
"x_data": "自变量数据矩阵",
|
|
324
|
+
"feature_names": "特征名称列表",
|
|
325
|
+
"model_type": "模型类型(random_forest/gradient_boosting/lasso/ridge),默认random_forest",
|
|
326
|
+
"cv_folds": "交叉验证折数,默认5",
|
|
327
|
+
"scoring": "评分指标(r2/mse/mae),默认r2"
|
|
328
|
+
}
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
FEATURE_IMPORTANCE_ANALYSIS_TOOL = ToolDescription(
|
|
332
|
+
name="feature_importance_analysis_tool",
|
|
333
|
+
description="特征重要性分析 - 支持文件输入",
|
|
334
|
+
field_descriptions={
|
|
335
|
+
"file_path": "CSV/JSON/TXT文件路径,最后一列为因变量",
|
|
336
|
+
"file_content": "CSV/JSON/TXT文件内容字符串",
|
|
337
|
+
"file_format": "文件格式(csv/json/txt/auto)",
|
|
338
|
+
"y_data": "因变量数据",
|
|
339
|
+
"x_data": "自变量数据矩阵",
|
|
340
|
+
"feature_names": "特征名称列表",
|
|
341
|
+
"method": "分析方法(random_forest/gradient_boosting/permutation),默认random_forest",
|
|
342
|
+
"top_k": "返回前K个重要特征,默认5"
|
|
343
|
+
}
|
|
344
|
+
)
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
# ============================================================================
|
|
348
|
+
# 辅助函数
|
|
349
|
+
# ============================================================================
|
|
350
|
+
|
|
351
|
+
def get_tool_description(tool_name: str) -> str:
|
|
352
|
+
"""获取工具描述"""
|
|
353
|
+
tool_map = {
|
|
354
|
+
"descriptive_statistics": DESCRIPTIVE_STATISTICS,
|
|
355
|
+
"ols_regression": OLS_REGRESSION,
|
|
356
|
+
"hypothesis_testing": HYPOTHESIS_TESTING,
|
|
357
|
+
"time_series_analysis": TIME_SERIES_ANALYSIS,
|
|
358
|
+
"correlation_analysis": CORRELATION_ANALYSIS,
|
|
359
|
+
"panel_fixed_effects": PANEL_FIXED_EFFECTS,
|
|
360
|
+
"panel_random_effects": PANEL_RANDOM_EFFECTS,
|
|
361
|
+
"panel_hausman_test": PANEL_HAUSMAN_TEST,
|
|
362
|
+
"panel_unit_root_test": PANEL_UNIT_ROOT_TEST,
|
|
363
|
+
"var_model_analysis": VAR_MODEL_ANALYSIS,
|
|
364
|
+
"vecm_model_analysis": VECM_MODEL_ANALYSIS,
|
|
365
|
+
"garch_model_analysis": GARCH_MODEL_ANALYSIS,
|
|
366
|
+
"state_space_model_analysis": STATE_SPACE_MODEL_ANALYSIS,
|
|
367
|
+
"variance_decomposition_analysis": VARIANCE_DECOMPOSITION_ANALYSIS,
|
|
368
|
+
"random_forest_regression_analysis": RANDOM_FOREST_REGRESSION_ANALYSIS,
|
|
369
|
+
"gradient_boosting_regression_analysis": GRADIENT_BOOSTING_REGRESSION_ANALYSIS,
|
|
370
|
+
"lasso_regression_analysis": LASSO_REGRESSION_ANALYSIS,
|
|
371
|
+
"ridge_regression_analysis": RIDGE_REGRESSION_ANALYSIS,
|
|
372
|
+
"cross_validation_analysis": CROSS_VALIDATION_ANALYSIS,
|
|
373
|
+
"feature_importance_analysis_tool": FEATURE_IMPORTANCE_ANALYSIS_TOOL
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
tool = tool_map.get(tool_name)
|
|
377
|
+
if tool:
|
|
378
|
+
return tool.get_full_description()
|
|
379
|
+
return ""
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
def get_field_description(tool_name: str, field_name: str, default: str = "") -> str:
|
|
383
|
+
"""获取字段描述"""
|
|
384
|
+
tool_map = {
|
|
385
|
+
"descriptive_statistics": DESCRIPTIVE_STATISTICS,
|
|
386
|
+
"ols_regression": OLS_REGRESSION,
|
|
387
|
+
"hypothesis_testing": HYPOTHESIS_TESTING,
|
|
388
|
+
"time_series_analysis": TIME_SERIES_ANALYSIS,
|
|
389
|
+
"correlation_analysis": CORRELATION_ANALYSIS,
|
|
390
|
+
"panel_fixed_effects": PANEL_FIXED_EFFECTS,
|
|
391
|
+
"panel_random_effects": PANEL_RANDOM_EFFECTS,
|
|
392
|
+
"panel_hausman_test": PANEL_HAUSMAN_TEST,
|
|
393
|
+
"panel_unit_root_test": PANEL_UNIT_ROOT_TEST,
|
|
394
|
+
"var_model_analysis": VAR_MODEL_ANALYSIS,
|
|
395
|
+
"vecm_model_analysis": VECM_MODEL_ANALYSIS,
|
|
396
|
+
"garch_model_analysis": GARCH_MODEL_ANALYSIS,
|
|
397
|
+
"state_space_model_analysis": STATE_SPACE_MODEL_ANALYSIS,
|
|
398
|
+
"variance_decomposition_analysis": VARIANCE_DECOMPOSITION_ANALYSIS,
|
|
399
|
+
"random_forest_regression_analysis": RANDOM_FOREST_REGRESSION_ANALYSIS,
|
|
400
|
+
"gradient_boosting_regression_analysis": GRADIENT_BOOSTING_REGRESSION_ANALYSIS,
|
|
401
|
+
"lasso_regression_analysis": LASSO_REGRESSION_ANALYSIS,
|
|
402
|
+
"ridge_regression_analysis": RIDGE_REGRESSION_ANALYSIS,
|
|
403
|
+
"cross_validation_analysis": CROSS_VALIDATION_ANALYSIS,
|
|
404
|
+
"feature_importance_analysis_tool": FEATURE_IMPORTANCE_ANALYSIS_TOOL
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
tool = tool_map.get(tool_name)
|
|
408
|
+
if tool:
|
|
409
|
+
return tool.get_field_description(field_name, default)
|
|
410
|
+
return default
|