有没有办法实现样本权重?

use*_*817 7 python sample statsmodels logistic-regression

我在 Python 中使用 statsmodels 进行逻辑回归分析。例如:

import statsmodels.api as sm
import numpy as np
x = arange(0,1,0.01)
y = np.random.rand(100)
y[y<=x] = 1
y[y!=1] = 0
x = sm.add_constant(x)
lr = sm.Logit(y,x)
result = lr.fit().summary()
Run Code Online (Sandbox Code Playgroud)

但我想为我的观察定义不同的权重。我组合了 4 个不同大小的数据集,并希望对分析进行加权,以便来自最大数据集的观察结果不会主导模型。

use*_*082 6

我花了一段时间才解决这个问题,但实际上在 statsmodels 中创建一个具有加权行/每行多个观察值的 logit 模型非常容易。这是它是如何完成的:

import statsmodels.api as sm
logmodel=sm.GLM(trainingdata[['Successes', 'Failures']], trainingdata[['const', 'A', 'B', 'C', 'D']], family=sm.families.Binomial(sm.families.links.logit)).fit()
Run Code Online (Sandbox Code Playgroud)

  • 这是很不清楚的。您能澄清一下您是如何引入加权的吗? (18认同)
  • “trainingdata”中的“Successes”和“Failures”是指每个数据的观察次数。因此,这个观察值数量提供了一个权重。 (6认同)