python - 使用 statsmodel 执行单向方差分析测试时出现语法错误
问题描述
我一直在尝试使用 pandas 数据框中的 statsmodel 执行单向方差分析测试,如下所示
import statsmodels.api as sm
from statsmodels.formula.api import ols
mod = ols('DOSE DELIVERED ~ TYPE', data = df_chosen).fit()
aov_table = sm.stats.anova_lm(mod, typ =2)
print(aov_table)
但是我不断收到此语法错误。我检查了类别的拼写是否有意义,但没有任何作用。
Traceback (most recent call last):
File "C:\Users\Home\Anaconda_3\lib\site-packages\IPython\core\interactiveshell.py", line 3326, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-25-364084670c42>", line 1, in <module>
mod = ols('DOSE DELIVERED ~ TYPE', data = df_chosen).fit()
File "C:\Users\Home\Anaconda_3\lib\site-packages\statsmodels\base\model.py", line 159, in from_formula
missing=missing)
File "C:\Users\Home\Anaconda_3\lib\site-packages\statsmodels\formula\formulatools.py", line 65, in handle_formula_data
NA_action=na_action)
File "C:\Users\Home\Anaconda_3\lib\site-packages\patsy\highlevel.py", line 310, in dmatrices
NA_action, return_type)
File "C:\Users\Home\Anaconda_3\lib\site-packages\patsy\highlevel.py", line 165, in _do_highlevel_design
NA_action)
File "C:\Users\Home\Anaconda_3\lib\site-packages\patsy\highlevel.py", line 70, in _try_incr_builders
NA_action)
File "C:\Users\Home\Anaconda_3\lib\site-packages\patsy\build.py", line 689, in design_matrix_builders
factor_states = _factors_memorize(all_factors, data_iter_maker, eval_env)
File "C:\Users\Home\Anaconda_3\lib\site-packages\patsy\build.py", line 354, in _factors_memorize
which_pass = factor.memorize_passes_needed(state, eval_env)
File "C:\Users\Home\Anaconda_3\lib\site-packages\patsy\eval.py", line 474, in memorize_passes_needed
subset_names = [name for name in ast_names(self.code)
File "C:\Users\Home\Anaconda_3\lib\site-packages\patsy\eval.py", line 474, in <listcomp>
subset_names = [name for name in ast_names(self.code)
File "C:\Users\Home\Anaconda_3\lib\site-packages\patsy\eval.py", line 105, in ast_names
for node in ast.walk(ast.parse(code)):
File "C:\Users\Home\Anaconda_3\lib\ast.py", line 35, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "<unknown>", line 1
DOSE DELIVERED
^
SyntaxError: invalid syntax
谢谢你先进
解决方案
公式变量名称中不能有空格。
您必须重命名DOSE DELIVERED
为DOSE_DELIVERED
,否则它们将被视为两个变量DOSE
和DELIVERED
.
推荐阅读
- c# - 显式忽略为控制器操作提供的令牌
- typescript - 基于预期函数类型参数的打字稿推断
- java - 如何确保 Stage 作为窗口而不是选项卡打开?
- delphi - Delphi6 代码:一个简单的 hello world 应用程序,调用 form2.bpl 但碰壁了
- verification - ==> 在箴言中是什么意思?
- java - 线程本地缓存的变量在更新后何时与“主内存”保持一致?
- tensorflow-federated - TFF:两种类型有什么区别?
- ajax - OpenWeather Api 调用中的 ERR_NAME_NOT_RESOLVED
- r - 将字符列拆分/分隔为具有指定名称和格式的多列
- rest - Alfresco REST Core API 按路径查找节点