Python OLS回归结果

Python OLS回归结果,python,numpy,regression,statsmodels,Python,Numpy,Regression,Statsmodels,我正在尝试对一个大学项目进行“OLS回归结果”,我的代码如下: 将statsmodels.api导入为sm 从statsmodels.formula.api导入ols 将numpy作为np导入 data=np.loadtxt('file.txt',skiprows=1) 季节=数据[:nb,0] tod=数据[:nb,1] obs=数据[:nb,2] pr=数据[:nb,3] 数据=ols('pr~tod+季节',数据=数据).fit() 表=sm.stats.anova(数据,典型值=2) 数

我正在尝试对一个大学项目进行“OLS回归结果”,我的代码如下:

将statsmodels.api导入为sm
从statsmodels.formula.api导入ols
将numpy作为np导入
data=np.loadtxt('file.txt',skiprows=1)
季节=数据[:nb,0]
tod=数据[:nb,1]
obs=数据[:nb,2]
pr=数据[:nb,3]
数据=ols('pr~tod+季节',数据=数据).fit()
表=sm.stats.anova(数据,典型值=2)
数据汇总表()
打印(表格)
它给了我这个错误“PatsyError:error evaluation factor:indexer:只有整数、片(
)、省略号(
)、numpy.newaxis(
None
)和整数或布尔数组是有效的索引 pr~tod)+季节“

我认为错误在于我的数据格式。文本文件包含4个不同的列(季节、tod、obs和pr)


有人能帮我吗?

data
是一个基本的NumPy
ndarray
对象。当您使用
[]
对它们进行索引时,它们接受整数、切片或其他“类似数组”的对象。但是,
ols
函数在中明确表示:

数据必须使用公式中的键定义
\uuuu getitem\uuu


这意味着
data
必须是一个pandas
DataFrame
、一个字典或一个NumPy,带有一个接受
str
对象作为索引的
getitem
方法。

data
是一个基本NumPy
ndarray
对象。当您使用
[]
对它们进行索引时,它们接受整数、切片或其他“类似数组”的对象。但是,
ols
函数在中明确表示:

数据必须使用公式中的键定义
\uuuu getitem\uuu


这意味着
data
必须是一个pandas
DataFrame
、一个字典或一个NumPy,其
\uuuu getitem\uuuuuuuu
方法接受
str
对象作为索引。

它也可以是一个字典<代码>{“pr”:pr,“tod”:tod,“seasure”:seasure}@Josef是的,它可以是一个dict,列在最后一句:)它也可以是一本字典<代码>{“pr”:pr,“tod”:tod,“season”:season}@Josef是的,它可以是一个dict,在最后一句中列出:)
season:[3., 3., 1., 3., 3., 3., 3., 3., 1., 3., 3., 1., 3., 2., 3., 3., 3.,
       1., 1., 1., 1., 3., 1., 2., 1., 3., 1., 1., 2., 1., 3., 3., 1., 1.,
       1., 2., 3.]

tod:[2., 4., 1., 2., 2., 2., 4., 1., 3., 3., 1., 3., 3., 2., 2., 4., 3.,
       3., 4., 3., 3., 2., 4., 1., 3., 4., 1., 1., 1., 3., 3., 4., 3., 3.,
       4., 4., 4.]

obs:[ 1.,  1.,  1.,  3.,  3.,  3.,  3.,  3.,  4.,  4.,  4.,  5.,  5.,
        5.,  5.,  5.,  6.,  9.,  9., 12., 12., 12., 12., 12., 13., 13.,
       16., 16., 17., 19., 19., 19., 20., 20., 20., 20., 24.]

pr:[0. , 0. , 0. , 0.1, 0.2, 0.2, 0.4, 0.4, 0.5, 0.5, 0.7, 0.7, 0.7,
       0.8, 0.8, 0.8, 0.8, 0.9, 0.9, 1. , 1. , 1.1, 1.1, 1.2, 1.3, 1.4,
       1.4, 1.5, 1.6, 1.7, 1.7, 1.8, 1.8, 1.9, 2. , 2. , 2. ]