标签: logistic-regression

如何在 R 中找到逻辑回归模型的 Brier 分数?

我创建了一个逻辑回归模型并用它来预测出勤率:

LogModel <- glm(formula = Attended ~ City + Duration, 
                family = binomial(logit), data = MyData)
prediction <- predict(LogModel, MyData, type = "response")
Run Code Online (Sandbox Code Playgroud)

brierscore()为了获得 Brier 分数,我应该在函数中使用哪些参数?

r logistic-regression

1
推荐指数
1
解决办法
9478
查看次数

geom_abline 用于逻辑回归 (ggplot2)

如果这个问题很简单,我很抱歉,但是,我找不到任何解决方案来解决我的问题。我想用 ggplot2 绘制逻辑回归线。问题是我无法使用,geom_abline因为我没有原始模型,只有每条回归线的斜率和截距。我已经使用这种方法进行线性回归,并且这对于 来说效果很好geom_abline,因为您可以为函数提供多个斜率和截距。

geom_abline(数据 = 估计值,aes(截距 = inter,斜率 = slo)

其中interslo是具有多个值的向量。

如果我对逻辑回归的系数尝试相同的方法,我将得到错误的回归线(线性)。我正在尝试使用 geom_line,但是,我无法使用该函数predict来生成预测值,因为我没有原始模型对象等。

有什么建议吗?

预先感谢,古斯塔沃

r ggplot2 logistic-regression

1
推荐指数
1
解决办法
2339
查看次数

为什么我在逻辑回归中收到“权重错误 * y:二元运算符的非数字参数”?

我愿意对我的数据集执行逻辑回归。我用:

glm.fit=glm(direccion~Profit, data=datos, family=binomial)

    Minute  ecopet  TASA10  direccion   Minute  cl1     Day         Profit  
1   571     2160     5       1          571    51.85    2015-02-20  -0.03   
2   572     2160     5       1          572    51.92    2015-02-20   0.04   
3   573     2160     5       1          573    51.84    2015-02-20  -0.04   
4   574     2160     5       1          574    51.77    2015-02-20  -0.11   
5   575     2160     10      1          575    51.69    2015-02-20  -0.19   
6   576     2165     5       1          576    51.69    2015-02-20  -0.16   
7   577     2165    -5       0          577    51.64    2015-02-20  -0.28   
8   578     2165    -10      0 …
Run Code Online (Sandbox Code Playgroud)

r logistic-regression

1
推荐指数
1
解决办法
3万
查看次数

Python 中逻辑回归中的受控变量

我刚刚了解了受控变量对于我正在做的项目意味着什么,我试图找出 sci-kit learn 是否有受控变量选项。具体来说,Python 是否有逻辑回归的控制变量(而不是自变量)?

我用 google 搜索了一下,没有找到任何关于 Python 的信息。然而,我想的是更基本的,控制变量意味着对你感兴趣的群体(比如种族)进行分层,然后根据你的 x 和 y 对每个群体进行分析。如果这是正确的,那么我应该解释这些分层组的结果,对吧?

抱歉,我问了两个问题,但我试图获得有关这个受控小组想法和 Python 应用程序的更多信息

python scikit-learn logistic-regression

1
推荐指数
1
解决办法
2319
查看次数

scipy.optimize.curve_fit 用于逻辑函数

我正在尝试使用 Jupyter Notebook 绘制逻辑函数。我可以很好地绘制它,但是使用 scipy.optimize.curve_fit 的逻辑函数不起作用。它返回直线坐标。

如何绘制逻辑回归线?

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
%matplotlib inline

df = pd.read_csv('https://gist.githubusercontent.com/shinokada/76070a0927fa1fac01eeaed298757a26/raw/2707a1bd7cba80613a01a2026abeb9f587dbaee5/logisticdata.csv')

x=df.T.iloc[0]
y=df.T.iloc[1]

def logifunc(x,l,c,k):
    return l / (1 + c*np.exp(-k*x))

popt, pcov = curve_fit(logifunc, x, y, p0=[-150,1,1])
print(*popt)

x_data = np.linspace(170,205,num=100)
print(logifunc(x_data, *popt))

plt.scatter(x,y,label='Logistic function')
plt.plot(x_data, logifunc(x_data, *popt), 'r-',label='Fitted function')

plt.title("Logistic")
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(170,210)
plt.ylim(-210,-160)
plt.legend()
plt.show()

Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

scipy logistic-regression scipy-optimize

1
推荐指数
1
解决办法
5509
查看次数

在单个数据框中获取多个回归的结果

我有一个像这样的数据框,有 10 列酒精(从酒精1到酒精10)

\n
ID  Status  matching  Alcohol1  Alcohol2\n 1     1       1           1      0\n 2     0       1           0      1\n 3     0       2           0      1\n 4     1       2           0      0\n
Run Code Online (Sandbox Code Playgroud)\n

我有许多逻辑回归模型可以使用酒精列作为解释变量来运行。我创建了一个执行此操作的函数。

\n

现在我想在一个数据框中汇总所有模型的结果。\n我需要估计系数、95% 置信区间的下限、上限和 p 值。我设法获得了估计系数和 p 值,但无法获得置信区间(或也适合的方差)(通常通过摘要获得)

\n

以下是我使用的功能:

\n
library(broom)\nlibrary(purrr)\n\nf1 <- function(column) {\n  tidy(clogit(\n    as.formula(\n     paste("status ~", column, "+ strata(matching)")),\n    data = table\n  ))\n }\n\nmodel_results <- map_dfr(\n  set_names(names(table)[4:14]), \n  f1\n)\n
Run Code Online (Sandbox Code Playgroud)\n

预期的结果会是这样的

\n
term      estimate   lower.95   upper.95    pvalue\nAlcohol1                \nAlcohol2                \n\xe2\x80\xa6               \n
Run Code Online (Sandbox Code Playgroud)\n

预先感谢您的帮助

\n

r tidy logistic-regression

1
推荐指数
1
解决办法
53
查看次数

R 没有在二项式 glm 中使用我的角色随机效果

当我尝试使用 glm 运行我的模型时出现此错误。为什么 R 不使用我的嵌套字符嵌套效果?

model <- glm(Propotion ~ Parasites_box * Parasites_nest + Day_of_year + Site + (1|Subsite/Nestbox/Cavity_ID), data = data.ex, family = binomial)

Error in Subsite/Trapnest : non-numeric argument to binary operator

Run Code Online (Sandbox Code Playgroud)

使用 glmer 给了我一个不同的警告:

model <- glmer(Propotion ~ Parasites_box * Parasites_nest + Day_of_year + Site + (1|Subsite/Nestbox/Cavity_ID), data = data.ex, family = binomial)

Error in (function (fr, X, reTrms, family, nAGQ = 1L, verbose = 0L, maxit = 100L,  : 
  Downdated VtV is not positive definite
In addition: …
Run Code Online (Sandbox Code Playgroud)

r mixed-models logistic-regression glmm

1
推荐指数
1
解决办法
53
查看次数

何时在机器学习中使用生成算法?

假设我有(x,y)样本制作的训练集.

为了应用生成算法,让我们说高斯判别,我必须假设

p(x|y) ~ Normal(mu, sigma) 为每一个可能的西格玛

或者我只需要知道是否x ~ Normal(mu, sigma)给出了y?

如何评估p(x | y)是否遵循多元正态分布对我来说足够(达到阈值)使用生成算法?

normal-distribution generative-programming machine-learning logistic-regression

0
推荐指数
1
解决办法
162
查看次数

逻辑回归:如何尝试R中的每个预测变量组合?

这是https://stats.stackexchange.com/questions/293988/logistic-regression-how-to-try-every-combination-of-predictors的副本.

我想进行逻辑回归:我有1个因变量和~10个预测变量.

我想在尝试每种组合时执行详尽的搜索,例如更改顺序和添加/删除预测变量等.例如:

  • y~x1 + x2 + x3 + x4 + x5

  • y~x2 + x1 + x3 + x4 + x5

  • y~x1 + x2 + x3

  • y~x5 + x1 + x2 + x3 + x4

  • y~x4 + x2

  • ...等等.

在这种情况下,计算时间对我来说不是一个停止的问题:这主要是一项教育活动.

你知道我该怎么做吗?我用R.

编辑:要明确:这主要是一个教育练习:我想测试每个模型,所以我可以根据一些索引(如AUC或伪R²)对它们进行排序,以便向我的" 学生 "展示哪些预测器似乎有趣但没有科学意义.我打算执行bootstrap重采样以进一步测试"最狂野 "的模型.

r combinatorics logistic-regression

0
推荐指数
1
解决办法
1446
查看次数

如何在R中绘制Logistic回归(LASSO)的ROC曲线?

我将逻辑回归模型拟合到R中的训练数据集,更具体地说是具有L1惩罚的LASSO回归.我用了这个glmnet包.模型的代码如下所示.

t1 <- Sys.time()
glmnet_classifier <- cv.glmnet(x = dtm_train_tfidf,
                           y = tweets_train[['sentiment']], 
                           family = 'binomial', 
                           # L1 penalty
                           alpha = 1,
                           # interested in the area under ROC curve
                           type.measure = "auc",
                           # 5-fold cross-validation
                           nfolds = 5,
                           # high value is less accurate, but has faster training
                           thresh = 1e-3,
                           # again lower number of iterations for faster training
                           maxit = 1e3)
print(difftime(Sys.time(), t1, units = 'mins'))

preds <- predict(glmnet_classifier, dtm_test_tfidf, type = 'response')[ ,1]
Run Code Online (Sandbox Code Playgroud)

现在我想绘制ROC曲线.但是,我无法弄清楚如何准确地绘制它.

当我 …

r glmnet roc logistic-regression

0
推荐指数
1
解决办法
3761
查看次数