精华内容
下载资源
问答
  • 对连续变量的分组
    千次阅读
    2022-02-21 08:43:32

    概念

    相关性分析:两个连续变量之间的关系检验。

    Pearson相关系数:衡量两个变量的线性相关关系;

    Spearman相关系数:衡量两个变量的线性相关关系,部分非线性的也可以衡量;

    Kendall相关系数:衡量两个变量之间非线性相关关系;

    0.3以上就是有相关性了,0.3~0.5就是有点强的,0.5以上就是很强的。

    下面是分类变量,研究非连续的变量

    卡方检验:两个分类变量的分析,是否相关,不能表示强弱。

    Python例子

    连续变量

    代码如下:

    from statsmodels.stats.anova import anova_lm
    from statsmodels.formula.api import ols
    import pandas as pd
    from scipy import stats
    
    df = pd.DataFrame(
        [
            [20, 6000], [18, 6500], [17, 4500], [16, 3000], [21, 8000], [23, 18000],
            [30, 25000], [40, 18000], [55, 10000], [35, 19000], [26, 15000], [27, 8000]
         ],
        columns=["age", "income"]
    )
    
    
    if __name__ == '__main__':
    
        print(df[['age', 'income']].corr(method='pearson'), "\n")
        print(df[['age', 'income']].corr(method='spearman'), "\n")
        print(df[['age', 'income']].corr(method='kendall'), "\n")
        print(stats.chi2_contingency(df));
    
        pass

    运行截图如下:

     

    更多相关内容
  • Python变量重分类/Python变量重编码(连续变量重分类、离散变量重分类)

    目录

    1. Python连续变量重分类

    1.1 等宽重编码

    1.2 等频重编码

    2. 离散变量重分类

    2.1 分类后为1个指标

    2.2 分类后为多个指标

    1. Python连续变量重分类

    cut(  )函数

    新变量 = pd.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False)
    
    # x:待分类的变量
    # bins:分段的依据
    # right:right=True表示分段后包含右边的数,即左开又闭(X,X]
    # labels:分类后新的分类标签,若不修改默认以(X,X]/[X,X) 的格式显示
    # 其他参数详见:help(pd.cut)

    1.1 等宽重编码

    案例 :

    一份df格式的2020年的人口数据,数值为连续型,最小值为0,最大值为109695.39。现在需要分段为0,(0,100]、(100,300]、(300,500]、(500,700]、(700,900]、(900,1100]、(1100,1300]、1300及以上9类。

    #格式左开右闭,从零开始(XX],bins需要加一个最大值
    bins = [0,100,200,300,500,700,900,1100,1300,max(df['2020'])] #10个数,9个空格,产生9类
    df['2020分层'] = pd.cut(df['2020'],bins,right=True)
    
    #给重分类结果添加标签
    bins = [0,100,200,300,500,700,900,1100,1300,max(Wpop2['2020'])]
    df['2020分层'] = pd.cut(df['2020'],bins,right=True,labels=[1,2,3,4,5,6,7,8,9])

    没有添加labels添加了labels之后
    #若要进一步统计各分段的频数
    df['2020分层'].value_counts()
    Out[1]: 
    (1300.0, 109695.391]    2083
    (0.0, 100.0]            1558
    (100.0, 200.0]           893
    (300.0, 500.0]           642
    (500.0, 700.0]           537
    (200.0, 300.0]           489
    (700.0, 900.0]           408
    (900.0, 1100.0]          320
    (1100.0, 1300.0]         245
    Name: 2020分层, dtype: int64
    
    #若要进一步统计各分段的百分比
    df['2020分层'].value_counts(normalize=True)
    Out[2]: 
    (1300.0, 109695.391]    0.290314
    (0.0, 100.0]            0.217143
    (100.0, 200.0]          0.124460
    (300.0, 500.0]          0.089477
    (500.0, 700.0]          0.074843
    (200.0, 300.0]          0.068153
    (700.0, 900.0]          0.056864
    (900.0, 1100.0]         0.044599
    (1100.0, 1300.0]        0.034146
    Name: 2020分层, dtype: float64

    1.2 等频重编码

    案例 :一份df格式的2020年的人口数据,数值为连续型,最小值为0,最大值为109695.39。现在按照25%的数据为一类,分成4类。

    # 等频重编码
    k=4             # 将数据k等分
    w = df['2020'].quantile(np.arange(0,1+1/k,1/k))    # 获得k等分的临界值
    df['2020分层'] = pd.cut(df['2020'], w, right=True, labels=[1,2,3,4]) # 重分类 
    
    w
    Out[1]: 
    0.00        13.161950
    0.25       652.074890
    0.50      1648.612183
    0.75      4138.446777
    1.00    112781.359375

     

    没有添加labels添加了labels之后

    2. 离散变量重分类

    案例:先建立一个数据框,方便后面演示。我们的任务是,将性别用英文字母F、M表示。

    df = pd.DataFrame([['张三','男','喜欢'],['李四','女','不喜欢'],['赵五','女','无所谓'],['王六','男','喜欢']])
    df.columns=('姓名','性别','是否喜欢看电影')
    df
    
    Out[1]: 
       姓名 性别 是否喜欢看电影
    0  张三  男      喜欢
    1  李四  女     不喜欢
    2  赵五  女     无所谓
    3  王六  男      喜欢

    2.1 分类后为1个指标

    方法:通过设立字典的形式,采用【变量.map()】重编码

    # 方法一,用设立字典的形式,采用【变量.map()】挨个重编码
    size_mapping = {'男':'M','女':'F'}   # 也可以是数值型 size_mapping = {'男':'0','女':'1'}
    df['性别'] = df['性别'].map(size_mapping) 
    
    df
    Out[2]: 
       姓名 性别 是否喜欢看电影
    0  张三  M      喜欢
    1  李四  F     不喜欢
    2  赵五  F     无所谓
    3  王六  M      喜欢

    扩展:对应R语言car包中的recode()函数

    R例子:df$nsex=recode(df$sex,"'男'='M';'女'='F';else=NA")

    2.2 分类后为多个指标

    另外,Python提供了一种可以可以把各个分类变量单独表示出来的形式,用【 pd.get_dummies(  )】函数实现。

    a = pd.get_dummies(df['性别'])
    df['Femal'] = a['女']
    df['male'] = a['男']
    
    a
    Out[1]: 
       女  男
    0  0  1
    1  1  0
    2  1  0
    3  0  1
    
    df
    Out[2]: 
       姓名 性别 是否喜欢看电影  Femal  male
    0  张三  男      喜欢       0      1
    1  李四  女     不喜欢      1      0
    2  赵五  女     无所谓      1      0
    3  王六  男      喜欢       0      1

    扩展阅读:

    利用python将连续指标离散化,分类变量哑元化_weixin_30339969的博客-CSDN博客

    展开全文
  • Stata | 连续变量to类别变量

    千次阅读 2022-03-22 10:32:59
    因此我们需要将年龄分组,比如0-20岁、20-30岁等,此时就要将年龄转换为类别变量。 group 等分数据 必须先数据进行排序 gen g_pri = group(price) recode 指定分界点 前开后闭区间 recode price (min/5000 ...

      在数据分析过程中,我们通常关心一个区间而非具体某个点的情况,如年龄对工资的影响,显然35岁与36岁没有本质区别。因此我们需要将年龄分组,比如0-20岁、20-30岁等,此时就要将年龄转换为类别变量。

    group

    • 等分数据
    • 必须先对数据进行排序
    gen g_pri = group(price)
    

    在这里插入图片描述
    recode

    • 指定分界点
    • 前开后闭区间
     recode price (min/5000 = 1) (5000/8000 = 2) (8000/max = 3), gen(g_price)
    

    在这里插入图片描述
    irecode

    • 函数,同recode
    • 命令更简洁
    gen ig_pri = irecode(price, 5000, 8000)
    

    在这里插入图片描述
    cond

    • 条件函数,和三目运算差不多
    • 语法:cond(x, a, b),满足x返回a否则返回b
    • 将数据分为两组时可用
    gen c_price = cond(price > 8000, 1, 0)
    

    在这里插入图片描述

    展开全文
  • python 连续分组统计

    千次阅读 2020-08-25 11:22:17
    将左表 按照连续分组统计 思路: 给 vlue 做标记,自上而下如果相同值不变,不同则加一,如下图所示。 然后根据 token 进行分组即可方便实现。 方法使用:pandas.core.groupby.DataFrameGroupBy.cumsum ...

     

    需求: 

               将左表 按照连续值分组统计

    思路:

           给 vlue 做标记,自上而下如果相同值不变,不同则加一,如下图所示。

           然后根据 token 进行分组即可方便实现。

           方法使用:pandas.core.groupby.DataFrameGroupBy.cumsum

    代码:

    import pandas as pd
    
    data = [['a','1'],
            ['a','2'],
            ['a','3'],
            ['b','4'],
            ['b','5'],
            ['a','6'],
            ['a','7'],
            ['c','8'],
            ['c','9'],
            ['b','10'],
            ['b','11']
            ]
    df = pd.DataFrame(data,columns=['key','value'])
    col = df['key']
    df['token'] = (col != col.shift()).cumsum()
    data = df.groupby(['token']).aggregate(lambda x: set(x))
    data['key'] = data['key'].apply(lambda set:set.pop())
    data['value'] = data['value'].apply(lambda set:','.join(set))
    print(data)

    输出:

    1         a  2,3,1
    2         b    4,5
    3         a    6,7
    4         c    9,8
    5         b  10,11

     

    展开全文
  • 针对使用非负象限上选定点的双变量连续模型的推论,开发了基于特殊距离的利用生存函数的二次距离方法。 还开发了一个可以看作模拟版本的相关版本,该版本似乎适用于没有闭式表达式且数值上不易处理但易于从这些分布...
  • 连续变量量子密钥分发(CVQKD)多维数据协调过程中, 低密度奇偶校验码(LDPC)的纠错性能直接影响协调效率和传输距离。构造了一种双边类型的低密度奇偶校验码(TET-LDPC), 引入了类似于重复累积码中的累积结构以提高其...
  • 针对连续变量量子密钥分发(CVQKD)通信距离较短的问题,在多维数据协调方案的基础上,利用连续密度进化和差分进化方法,设计出优质度数分布的低密度奇偶校验(LDPC)码,并提出LDPC码码字重复方法,进一步提高多维...
  • R语言连续变量等级划分

    千次阅读 2020-12-02 12:32:59
    R语言连续变量等级划分 ###################等级划分################### ###数据读取 dat <- read.csv("F:/Desktop/ccv.csv") # ##查看数据结构 # str(dat) ##########以按HT(优势树高)划分等级为例######...
  • 连续变量离散化教程

    2022-07-30 21:41:41
    为了分析连续数据,通常需要离散化或分成组。本文介绍pandas包中cut和qcut函数,对连续变量进行使用不同方式进行分组
  • 连续变量离散化的几种方法

    千次阅读 2019-12-10 13:56:10
    连续变量离散化有三种方法 1.等宽离散化 2.等频离散化 3.利用聚类进行离散化 import numpy as np import pandas as pd #参数初始化 datafile = './data/discretization_data.xls' #读取数据 data = pd.read_...
  • 机器学习 决策树篇——解决连续变量的分类问题

    千次阅读 多人点赞 2020-06-09 00:00:39
    机器学习 决策树篇——解决连续变量的分类问题摘要信息熵、条件熵、熵增益、熵增益率的计算GiNi系数、GiNi系数增益的计算python代码连续变量决策树分类案例 摘要 本文通过python实现了连续变量的信息熵、条件熵、熵...
  • SPSS数据分析之连续变量频率分析

    千次阅读 2020-08-19 11:14:02
    接着上一篇SPSS数据分析之分类变量频率分析 ...百分位值主要用于对连续变量数据离散程度的测量,我们常用的百分数值一般是四分位数。 数据从小到大排列,用三个数据点将数据分为四等份,三个点相对应的就是
  • R内置函数实现数组变量转为因子变量有:cut、split、quantile、bincode,本文主要介绍ggplot提供的几个分组函数。 *cut_interval()*按照相同范围分为n组;, cut_number() 按照相同数量(近似)观测值分为n组; cut_...
  • 连续变量的统计推断

    千次阅读 2020-08-03 19:19:40
    连续变量的统计推断1 t检验1.1 t检验概述1.2 成组设计两样本均数的比较 1 t检验 1.1 t检验概述 在针对连续变量的统计推断方法中,最常用的有t检验和方差分析两种,其中t检验是最基本的检验方法。 对于X‾\overline{X...
  • R语言将变量分组的三种方法(含cut函数介绍)

    万次阅读 多人点赞 2021-10-07 17:50:45
    第一种是对变量直接进行重新赋值,第二种是使用within函数语句进行组织,第三种是cut函数。 首先我们定义一个数据框,这个数据框饭知学生姓名和数学成绩两个变量。 mathScore <- data.frame(name=c("刘文涛",...
  • 正式开始建模与处理数据前,数据进行探索并有一个初步的认识非常重要,本文将围绕变量探索,展示分类、连续变量,以及两种类型变量结合的探索方法,并展示 Python Pandas 数据处理与可视化中的一些快捷常用骚操作~...
  • 本期开始,咱们开始聊聊建模型的代码。前期定义y值、衍生变量生成宽表...前几期介绍分箱的时候咱们就说过,变量分箱分为两种,一种为连续变量,一种为字符型变量。两种分箱的逻辑略有不同。今天咱们先聊聊连续型变...
  • 在7月份,本号推出了一个关于R语言配色方法的系列推文,其中第III节介绍了ggplot2工具包的配色方法——颜色标度函数在这篇推文中,小编介绍了针对两种变量类型的三种颜色标度函数,即离散型...
  • 在医学统计分析中,对于连续变量我们总是需要了解数据的分布状态,是正态分布数据还是偏态分布数据,只有了解了数据的分布状态才可以进行后续的统计分析工作。 正态性检验方法主要包括图示法和假设检验法两大类。...
  • 数据准备非常重要: 1.从不同的渠道收集数据; 2.清理数据中意外错误或被认为是极端值的...下面是采用决策树的方法,对于有12个类别的某个feature,首先把所有的看成一个分组,然后找出最优的二元分割方法,具体见《信
  • 对连续变量从小到大排序,使用频次百分比qcut分割的方式对连续变量进行分箱,使得每个区间具有数量相同的样本量。 等距分箱 对连续变量从小到大排序,将取值区间等分成N等份,样本根据其取值落到对应的分箱中。
  • 上两期咱们讲了基础的分位数细分与拆分分组的指标,这一期咱们继续聊聊如何运用前两者进行连续变量的自动分箱。这里可以参考的一个基本思想就是决策树拆分过程。首先将所有的细分组设定为一组,根据我们之前的指标...
  • 利用SPSS对变量进行分组转换结合方差(U)检验轻松做出SCI表一 SCI里常见这样的表格一,表明人群基线资料,通常都是分段表示,可这样的表格是怎么做出来的呢? 今天我们来实际做一下: 假设我们有一组肺炎和炎症...
  • seaborn.stripplot()命令 seaborn.stripplot( x, y, hue : 绘图中所使用的分类/连续变量/颜色分组变量名 data : 数据框名称 绘制细节: order, hue_order : hue变量各类别取值的绘图顺序 jitter = True : 是否散点...
  • 连续变量最优分箱--基于CART算法

    千次阅读 2018-11-27 17:01:21
    关于变量分箱主要分为两大类:有监督型和无监督型对应的分箱方法:A. 无监督:(1) 等宽 (2) 等频 (3) 聚类B. 有监督:(1)&nbsp;卡方分箱法(ChiMerge) (2) ID3、C4.5、CART等单变量决策树算法 (3)&nbsp; 信用...
  • 这几天需要画一张分组堆砌条形图,发现因为x轴取值不是均匀的,画图出来,柱子就会挤到一块,就像下图一样: 于是我记录了一下这次画图的过程。 1.首先,你要把自己的数据导入origin,因为我的数据在一张表格里,...
  • 之前都是用spss分箱分的 在R中要用什么代码呀 找了好久没用找到 求指教!
  • 一 单分类变量描述频数,例如:value_counts()描述分类变量 柱形图 二 单连续变量描述统计量(均值,中位数,...四 单分类变量与单连续变量描述连续变量统计值,例如,分组groupby()描述各地区的房价分布 五 双分...
  • #分布图,连续变量的分布图 #导入包 import numpy as np import matplotlib.pyplot as plt import pandas as pd import seaborn as sns #matplottib inline plt.rcParams['font.sans-serif']=['Simhei']#显示中文 ...
  • R语言ggplot2可视化:可视化连续(数值)变量的堆叠的直方图、自定义堆叠直方图中不同分组条形的色彩、自定义直方图bin的个数(Histogram for Continuous Variable)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,686
精华内容 19,074
热门标签
关键字:

对连续变量的分组