我正在建立一个模型来预测二元变量(是/否),这取决于三个连续变量(,,)。我用Tanagra软件对一个学习数据集进行了逻辑回归分析,结果很好,预测准确率很高。
我的问题是:是否有可能通过逻辑回归得到预测的概率?类似(0.7 是)?如果不是,我必须使用什么测试才能获得这样的结果?
我正在建立一个模型来预测二元变量(是/否),这取决于三个连续变量(,,)。我用Tanagra软件对一个学习数据集进行了逻辑回归分析,结果很好,预测准确率很高。
我的问题是:是否有可能通过逻辑回归得到预测的概率?类似(0.7 是)?如果不是,我必须使用什么测试才能获得这样的结果?
二元逻辑回归通常用于将模型拟合到二元输出,但形式上逻辑回归的结果本身并不是二元的,它们是连续概率值(通过 logit 变换推至零或 1,但在 0 和 1 之间连续尽管如此)。听起来您正在使用的软件正在为您舍入输出,这是您不想要的。这是一个简单的示例,演示了如何在 R 中完成此操作,因为听起来您可以尝试新软件:
# generate sample data
set.seed(123)
x = rnorm(100)
y= as.numeric(x>0)
# let's shuffle a handful so we don't fit a perfect model
ix = sample(1:100, 10)
y[ix]= 1-y[ix]
# Let's take a look at our observations
df = data.frame(x,y)
plot(df)
# Build the model
m = glm(y~x, family=binomial(logit), data=df)
# Look at results
summary(m)
# generate predictions. Here, since I'm not passing in new data
# it will use the training data set to generate predictions
y.pred = predict(m, type="response")
plot(x, y.pred, col=(round(y.pred)+1))
是的,您可以从逻辑回归模型中获得观察结果是肯定的预测概率。如果您有模型拟合的估计系数,则可以使用这些系数来获得预测概率: