精华内容
下载资源
问答
  • python做logistic回归分析,我觉的使用statsmodel库比较好,结果输出比较整齐。很类似传统的统计软件。 比如使用 kaggel 的heart数据集。 地址在:https://www.kaggle.com/zhaoyingzhu/heartcsv ############...

    python做logistic回归分析,我觉的使用statsmodel库比较好,结果输出比较整齐。很类似传统的统计软件。

    比如使用 kaggel 的heart数据集。

    地址在:https://www.kaggle.com/zhaoyingzhu/heartcsv

     

    
    ###############################################################
    import pandas as pd
    import statsmodels.api as sm
    
    df = pd.read_csv("binary.csv")
    df.head()
    df
    # 重命名 ranks 列,
    df.columns = ['admit', 'gre', 'gpa', 'prestige']
    df
    
    pd.crosstab( df['prestige'],df['admit'])
    
    df.hist()
    
    # 这里产生了一个虚拟变量数据表。
    dummy_ranks = pd.get_dummies(df['prestige'], prefix='prestige')
    dummy_ranks
    type(dummy_ranks)
    dummy_ranks.shape
    df.shape
    
    clos_to_keep = ['admit', 'gre', 'gpa']
    clos_to_keep
    # 这里,需要保留3个虚拟变量。n个虚拟的,纳入回归就纳入n-1,否则完全共线
    data = df[clos_to_keep].join(dummy_ranks.loc[:, 'prestige_2':])
    data
    
    #产生一个截距项。
    data['intercept'] = 1.0
    data
    # 从第二列开始,数据中的列是自变量,第一列是y
    train_cols = data.columns[1:]
    train_cols
    # 这里使用、logit函数,更简单一点
    logit = sm.Logit(data['admit'], data[train_cols])
    result = logit.fit()
    result.summary()
    
    # 当然也可以使用广义线性模型,这有点类似于R的一些语法
    model = sm.GLM.from_formula('admit~gre + gpa +prestige_2 +prestige_3 +prestige_4 ',
                                family = sm.families.Binomial(), data = data)
    
    m1 = model.fit()
    m1.summary()
    # 两种方法,结果相同
    
    ##################################
    ############ 添加截距项,也可以使用 sm的add——constant功能
    ##################################
    df = pd.read_csv("binary.csv")
    
    df.head()
    df.keys()
    df.columns = ['admit', 'gre', 'gpa', 'prestige']
    
    df.head()
    
    data_dummy = pd.get_dummies(df['prestige'], prefix="prestige")
    
    data_dummy
    
    df_new = df.iloc[:, :-1].join(data_dummy.iloc[:, 1:])
    
    df_new
    
    independent = sm.add_constant(df_new.iloc[:, 1:])
    independent
    dependent = df_new.iloc[:, 0]
    dependent
    
    model = sm.Logit(dependent, independent).fit()
    model.summary()
    
    # 结果也是一样的。
    

     

    展开全文
  • 6、spss做logistic回归

    千次阅读 2015-04-15 15:29:38
    前边我们用两篇笔记讨论了线性回归的内容。线性回归是很重要的一种回归方法,但是线性回归...Logistic回归主要分为三类,一种是因变量为二分类得logistic回归,这种回归叫做二项logistic回归,一种是因变量为无序多分类

    前边我们用两篇笔记讨论了线性回归的内容。线性回归是很重要的一种回归方法,但是线性回归只适用于因变量为连续型变量的情况,那如果因变量为分类变量呢?比方说我们想预测某个病人会不会痊愈,顾客会不会购买产品,等等,这时候我们就要用到logistic回归分析了。

    Logistic回归主要分为三类,一种是因变量为二分类得logistic回归,这种回归叫做二项logistic回归,一种是因变量为无序多分类得logistic回归,比如倾向于选择哪种产品,这种回归叫做多项logistic回归。还有一种是因变量为有序多分类的logistic回归,比如病重的程度是高,中,低呀等等,这种回归也叫累积logistic回归,或者序次logistic回归。

    二值logistic回归

    选择分析——回归——二元logistic,打开主面板,因变量勾选你的二分类变量,这个没有什么疑问,然后看下边写着一个协变量。有没有很奇怪什么叫做协变量?在二元logistic回归里边可以认为协变量类似于自变量,或者就是自变量。把你的自变量选到协变量的框框里边。

    细心的朋友会发现,在指向协变量的那个箭头下边,还有一个小小的按钮,标着a*b,这个按钮的作用是用来选择交互项的。我们知道,有时候两个变量合在一起会产生新的效应,比如年龄和结婚次数综合在一起,会对健康程度有一个新的影响,这时候,我们就认为两者有交互效应。那么我们为了模型的准确,就把这个交互效应也选到模型里去。我们在右边的那个框框里选择变量a,按住ctrl,在选择变量b,那么我们就同时选住这两个变量了,然后点那个a*b的按钮,这样,一个新的名字很长的变量就出现在协变量的框框里了,就是我们的交互作用的变量。

    然后在下边有一个方法的下拉菜单。默认的是进入,就是强迫所有选择的变量都进入到模型里边。除去进入法以外,还有三种向前法,三种向后法。一般默认进入就可以了,如果做出来的模型有变量的p值不合格,就用其他方法在做。再下边的选择变量则是用来选择你的个案的。一般也不用管它。

    选好主面板以后,单击分类(右上角),打开分类对话框。在这个对话框里边,左边的协变量的框框里边有你选好的自变量,右边写着分类协变量的框框则是空白的。你要把协变量里边的字符型变量和分类变量选到分类协变量里边去(系统会自动生成哑变量来方便分析,什么事哑变量具体参照前文)。这里的字符型变量指的是用值标签标注过得变量,不然光文字,系统也没法给你分析啊。选好以后,分类协变量下边还有一个更改对比的框框,我们知道,对于分类变量,spss需要有一个参照,每个分类都通过和这个参照进行比较来得到结果,更改对比这个框框就是用来选择参照的。默认的对比是指示符,也就是每个分类都和总体进行比较,除了指示符以外还有简单,差值等。这个框框不是很重要,默认就可以了。

    点击继续。然后打开保存对话框,勾选概率,组成员,包含协方差矩阵。点击继续,打开选项对话框,勾选分类图,估计值的相关性,迭代历史,expB)的CI,在模型中包含常数,输出——在每个步骤中。如果你的协变量有连续型的,或者小样本,那还要勾选Hosmer-Lemeshow拟合度,这个拟合度表现的会较好一些。

    继续,确定。

    然后,就会输出结果了。主要会输出六个表。

    第一个表是模型系数综合检验表,要看他模型的p值是不是小于0.05,判断我们这个logistic回归方程有没有意义。

    第二个表示模型汇总表。这个表里有两个R^2,叫做广义决定系数,也叫伪R^2,作用类似于线性回归里的决定系数,也是表示这个方程能够解释模型的百分之多少。由于计算方法不同,这两个广义决定系数的值往往不一样,但是出入并不会很大。

    在下边的分类表则表述了模型的稳定性。这个表最后一行百分比校正下边的三个数据列出来在实际值为0或者1时,模型预测正确的百分比,以及模型总的预测正确率。一般认为预测正确概率达到百分之五十就是良好(标准真够低的),当然正确率越高越好。

    在然后就是最重要的表了,方程中的变量表。第一行那个B下边是每个变量的系数。第五行的p值会告诉你每个变量是否适合留在方程里。如果有某个变量不适合,那就要从新去掉这个变量做回归。根据这个表就可以写出logistic方程了:P=Exp(常量+a1*变量1+a2*变量2.。。。)/(1+Exp(常量+a1*变量1+a2*变量2.。。。))。如果大家学过一点统计,那就应该对这个形式的方程不陌生。提供变量,它最后算出来会是一个介于01的数,也就是你的模型里设定的值比较大的情况发生的概率,比如你想推算会不会治愈,你设0治愈,1为没有治愈。那你的模型算出来就是没有治愈的概率。如果你想直接计算治愈的概率,那就需要更改一下设定,用1去代表治愈。

    此外倒数后两列有一个EXPB),也就是OR值,哦,这个可不是或者的意思,OR值是优势比。在线性回归里边我们用标准化系数来对比两个自变量对于因变量的影响力的强弱,在logistic回归里边我们用优势比来比较不同的情况对于因变量的影响。举个例子。比如我想看性别对于某种病是否好转的影响,假设0代表女,1代表男,0代表不好转,1代表好转。发现这个变量的OR值为2.9,那么也就是说男人的好转的可能是女人好转的2.9倍。注意,这里都是以数值较大的那个情况为基准的。而且OR值可以直接给出这个倍数。如果是0,1,2各代表一类情况的时候,那就是212.9倍,102.9倍,以此类推。OR值对于方程没什么贡献,但是有助于直观的理解模型。在使用OR值得时候一定要结合它95%的置信区间来进行判断。

    此外还有相关矩阵表和概率直方图,就不再介绍了。

     

     

     

    多项logistic回归

    选择分析——回归——多项logistic,打开主面板,因变量大家都知道选什么,因变量下边有一个参考类别,默认的第一类别就可以。再然后出现了两个框框,因子和协变量。很明显,这两个框框都是要你选因变量的,那么到底有什么区别呢?嘿嘿,区别就在于,因子里边放的是无序的分类变量,比如性别,职业什么的,以及连续变量(实际上做logistic回归时大部分自变量都是分类变量,连续变量是比较少的。),而协变量里边放的是等级资料,比如病情的严重程度啊,年龄啊(以十年为一个年龄段撒,一年一个的话就看成连续变量吧还是)之类的。在二项logistic回归里边,系统会自动生成哑变量,可是在多项logistic回归里边,就要自己手动设置了。参照上边的解释,不难知道设置好的哑变量要放到因子那个框框里去。

    然后点开模型那个对话框,哇,好恐怖的一个对话框,都不知道是干嘛的。好,我们一点点来看。上边我们已经说过交互作用是干嘛的了,那么不难理解,主效应就是变量本身对模型的影响。明确了这一点以后,这个对话框就没有那么难选了。指定模型那一栏有三个模型,主效应指的是只做自变量和因变量的方程,就是最普通的那种。全因子指的是包含了所有主效应和所有因子和因子的交互效应的模型(我也不明白为什么只有全因子,没有全协变量。这个问题真的很难,所以别追问我啦。)第三个是设定/步进式。这个是自己手动设置交互项和主效应项的,而且还可以设置这个项是强制输入的还是逐步进入的。这个概念就不用再啰嗦了吧啊?

    点击继续,打开统计量对话框,勾选个案处理摘要,伪R方,步骤摘要,模型拟合度信息,单元格可能性,分类表,拟合度,估计,似然比检验,继续。打开条件,全勾,继续,打开选项,勾选为分级强制条目和移除项目。打开保存,勾选包含协方差矩阵。确定(总算选完了)。

    结果和二项logistic回归差不多,就是多了一个似然比检验,p值小于0.05认为变量有意义。然后我们直接看参数估计表。假设我们的因变量有n个类,那参数估计表会给出n-1组的截距,变量1,变量2。我们我们用Zm代表Exp(常量m+am1*变量1+am2*变量2+。。。),那么就有第m类情况发生的概率为Zn/1+Z2+Z3+……+Zn(如果我们以第一类为参考类别的话,我们就不会有关于第一类的参数,那么第一类就是默认的1,也就是说Z11)

     

    有序回归(累积logistic回归)

    选择菜单分析——回归——有序,打开主面板。因变量,因子,协变量如何选取就不在重复了。选项对话框默认。打开输出对话框,勾选拟合度统计,摘要统计,参数估计,平行线检验,估计响应概率,实际类别概率,确定,位置对话框和上文的模型对话框类似,也不重复了。确定。

    结果里边特有的一个表是平行线检验表。这个表的p值小于0.05则认为斜率系数对于不同的类别是不一样的。此外参数估计表得出的参数也有所不同。假设我们的因变量有四个水平,自变量有两个,那么参数估计表会给出三个阈值a1,a2a3(也就是截距),两个自变量的参数mn。计算方程时,首先算三个Link值,Link1=a1+m*x1+n*x2Link2=a2+m*x1+n*x2Link3=a3+m*x1+n*x2,(仅有截距不同)有了link值以后,p1=1/(1+exp(link1)),   p1+p2=1/(1+explink2),    p1+p2+p3=1/(1+exp(link3)),    p1+p2+p3+p4=1..    

    通过上边的这几个方程就能计算出各自的概率了。

     

    Logistic回归到这里基本就已经结束了。大家一定要记熟公式,弄混可就糟糕了。希望能对你有所帮助呦。

    下章内容,probit回归及非线性回归。

    展开全文
  • 用R语言做logistic回归模型的calibration curve?代码如何写?用什么包?
    用R语言做logistic回归模型的calibration curve?代码如何写?用什么包?
    展开全文
  • 如何用GraphPad Prism9做logistic回归

    千次阅读 2020-11-29 03:40:02
    先来看看数据,很明显,第一列为因变量,其余为自变量...之后,按照下图进行操作,选择new analysis——multiple variable analysis——multiple logistic regression——OK 文章剩余内容<<<<< ...

    先来看看数据,很明显,第一列为因变量,其余为自变量,其中age为定量变量,sex为二分类,ticket class为多分类。

    下载.jpeg

    之后,按照下图进行操作,选择new analysis——multiple variable analysis——multiple logistic regression——OK

     

    文章剩余内容<<<<<

     

    展开全文
  • 回顾:当logistic回归模型能够较好地拟合数据时,我们便可以对模型的系数进行解释了,类似于线性回归系数。Logistic回归系数也可以被解释为对应自变量一个单位的变化所导致的因变量上的变化。在logistic回归系列(二...
  • 线性回归、logistic回归和一般回归线性回归、logistic回归和一般回归线性回归、logistic回归和一般回归线性回归、logistic回归和一般回归
  • Logistic回归

    2018-06-08 16:28:07
    logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘。
  • logistic回归

    千次阅读 2018-10-28 19:04:43
    值得一提的是,logistic回归跟多元线性回归有很多相似之处,模型形式也都是wx+b,w、b为要求的参数,不同点在于因变量不同,logistic回归通过logistic函数L将wx+b对应一个隐形状态p,即p=L(wx+b),若L是logistic...
  • Logistic 回归

    千次阅读 2018-08-22 11:04:43
    logistic回归   logistic回归是一种二分类算法,直接为样本估计出它属于正负样本的概率。先将向量进行线性加权,然后计算logistic函数,可以得到[0,1]之间的概率值,它表示样本x属于正样本的概率: 正样本标签...
  • Logistic回归 为什么要用sigmoid函数? Logistic模型参数求解 参考文献 Logistic回归 Logistic回归为概率型非线性回归模型,是研究观察结果与一些影响因素之间关系的一种多变量分析方法。 虽然名字中带有...
  • 自定义预测函数,激活函数,梯度下降优化器,单纯用python实现logistic回归算法,再与sklearn构建模型的一个比对。
  • logistic回归模型

    千次阅读 多人点赞 2020-04-13 17:44:45
    logistic回归模型 从这一期开始,我们准备介绍一系列机器学习算法模型,主要包括logistic回归,决策树,随机森林,关联规则,朴素贝叶斯,支持向量机模型,隐式马尔可夫模型,因子分析,主成分分析,聚类,多元线性...
  • logistic回归分类与softmax回归

    千次阅读 2019-10-21 17:19:50
    Logistic回归 逻辑回归的定义式: 损失函数 梯度下降 Logistic回归防止过拟合: Softmax回归: loss函数 逻辑回归与Softmax回归的联系 与神经网络的关系 logistic回归(多分类)和softmax的关系: YOLOV3...
  • logistic回归数据集

    2019-03-29 23:18:05
    logistic回归数据集logistic回归数据集logistic回归数据集
  • logistic回归原理解析及Python应用实例

    万次阅读 多人点赞 2017-03-20 17:59:00
    logistic回归,又叫对数几率回归(从后文中便可此名由来)。首先给大家强调一点,这是一个分类模型而不是一个回归模型!下文开始将从不同方面讲解logistic回归的原理,随后分别使用梯度上升算法和随机梯度上升算法将...
  • 二元Logistic回归

    千次阅读 2020-10-16 22:58:08
    研究分类反应变量与多个因素之间的关系,使用Logistic回归 典型例子:疾病的病因 (危险因素)分析 按反应变量分类 二分类:二元Logistic回归 多分类无序:多元Logistic回归 多分类有序:定序回归 (ordinal ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,362
精华内容 22,544
关键字:

如何做logistic回归