0

私は OLS 回帰モデルを構築しており、小さなテストを行いたいと考えていました (以下を参照)。入力データを正常に作成し、モデルに適合するように指示するとそれは実行されますが、要約を求めるとゼロ除算エラーが発生します。ここにいくつかのコードがあります(ここではランダム呼び出しの実際のデータを交換しました)

import numpy
import scikits.statsmodels.api as sm

y = numpy.random.randn(10)
x = numpy.random.randn(10, 18)

x = sm.add_constant(x, prepend=True)

model = sm.OLS(y,x).fit()
model.summary() #CREATES DIVIDE BY ZERO ERROR

トレースバックでは、linear_model.pyc でゼロ除算が発生します。

@cache_readonly
def rsquared_adj(self):
    return 1 - (self.nobs - 1)/sef.df_resid * (1 - self.rsquared)
@cache_readonly
4

2 に答える 2

2

この例では、観測 (行) よりも多くの変数 (列) が x にあります。その結果、完璧にフィットします。この場合、結果の統計はどれも統計的に意味がありません。

df_resid がゼロであるため、rsquared_adj のゼロ除算エラーが発生します。

summary() は、例外を発生させるいくつかの属性とメソッドを呼び出しています。これらの属性のいずれかを自分で呼び出した場合にも、同様の例外が発生します。

この場合、statsmodels は任意の時点で中断させるのではなく、適切な有益な例外を発生させるべきだと思います。

于 2013-06-13T20:38:30.990 に答える