洞察考生流向,助力地摊经济精准布局

本教程通过分析2023年浙江省考生报考的省份,以及不同省份居民对于食物的消费观念,预测在哪个城市摆摊能获得更多收益。教程采用DataV-Note(智能分析)完成对原始高考数据的清洗、查看及分析操作,并将分析结果生成报告,进行查阅分享。

教程简介

背景介绍

通常,大学生作为小吃摊的主要受众群体,有助于带动摆摊经济的增长。我们将运用智能分析,借助2023年浙江省的学校报考数据,探究浙江的学生都流向了哪些地区;同时,对各地区的食品偏好程度进行分析,基于分析结果,针对性地去对应地区摆小吃摊。

分析流程

本教程的分析流程如下图。

image
  1. 数据清洗:首先对获取到的多个高考数据进行整合,生成一张包含所有高校及招生信息的汇总表。后续将基于该表进行查询分析。

  2. 数据概览:基于汇总表进行查询,可查看各高校的报考信息概况、录取情况及各城市的教育水平。

  3. 数据分析:

    1. 报考热度及差异:基于高校汇总表,分析考生报考热度较高的地区,以及地区是否作为影响高校录取分数线的因素。

    2. 饮食消费指数:基于居民饮食消费信息表,分析各地区居民的食品偏好指数。

    基于分析结果,我们可以将获得的“考生报考热度高,且居民食品消费指数较高的地区”视为摆摊收益更为显著的区域。

  4. 生成分析报告:您可将分析过程发布为分析报告,导出或分享给他人使用。

分析工具

整个分析过程,将会使用DataV-Note的如下分析单元:

  • SQL分析:通过SQL语句整合原始数据,以及对结果数据进行查询分析操作。

  • 智能报告:使用自然语言一键分析学生报考的意向省份,以及省份与录取分数的关系,并生成分析报告。

  • Python分析:通过Python语句进行线性回归分析,探索省份与平均分数线是否存在线性趋势。

  • 可视化分析:通过图表可视化展示分析结果。

  • 文本分析:使用Markdown文本分析单元,编写报告相关介绍,辅助理解分析过程。

效果展示

完成本教程后,您将输出类似如下样式的分析报告。image

准备数据

请下载如下数据至本地,后续需将该数据上传至DataV-Note,进行相关查询分析操作。

原始数据

作用

浙江省招生一段线.csv

存放浙江省2023年普通类高校招生投档分数线数据,以及高校信息数据(例如,所在省份、城市等)。

用于分析各省份的分数线及招生计划。

浙江省招生二段线.csv

高校信息.csv

居民人均消费支出.csv

用于分析各个城市的人均消费支出。

居民主要食品消费量.csv

用于分析各个城市的食品平均消费量。

说明

该数据为样例数据,仅用于学习和交流。

创建项目并上传数据

  1. 创建项目。

    1. 登录DataV-Note控制台

    2. 单击新建项目,在新建项目对话框输入项目标题,并单击确定

      示例项目标题为洞察考生流向,助力地摊经济精准布局

  2. 上传数据。

    单击左侧数据集 > 文件数据集后的image图标,按照界面指引,依次上传已准备的所有数据。

    数据上传后,将展示在左侧导航栏的文件数据集中,您可基于该数据,按照下文执行数据清洗、数据概览、数据分析操作。

数据清洗:整合高校信息

由于获取到的三个原始文件数据(招生一段线、招生二段线、高校信息)均包含高校相关信息,且存在信息重合情况,为避免多次查询导致分析过程繁琐,在进行数据分析前,需先对这些数据进行整合。

  1. 创建SQL分析单元。

    在报告编辑区域,单击image图标,创建SQL分析单元。

  2. 进行数据整合。

    选择文件数据集(上传的招生表存放于此),运行如下SQL语句。合并两个招生表数据,通过学校名称与高校信息表进行连接,生成一张包含高校信息及招生数据的汇总表,并将汇总表重命名为school

    示例SQL语句。

    -- 合并一段线及二段线招生表
    WITH merged_table AS (
        SELECT * FROM "浙江省招生一段线.csv"
        UNION
        SELECT * FROM "浙江省招生二段线.csv"
    )
    
    -- 将合并后的结果与高校信息表连接,并筛选所需字段。
    SELECT 
        mt.学校名称,  
        mt.计划数, 
        mt.分数线, 
        mt.位次, 
        t3.省份, 
        t3.城市
    FROM 
        merged_table mt
    JOIN 
        "高校信息.csv" t3 
    ON 
        mt.学校名称 = t3.学校名称;

    image

说明

生成的汇总表将展示在左侧导航栏的查询结果集中,后续会基于该查询结果集进行查询分析。

数据概览:查看高校信息概况

在该步骤,可使用SQL查看相关数据详情,了解高校信息概况。您可参考如下语句进行查询,也可自行编写SQL查询语句。

查看高校汇总表概况

  1. 单击image图标,创建SQL分析单元。

  2. 运行如下语句,查看汇总表数据详情。

    示例SQL语句。

    SELECT * FROM "school" LIMIT 100;

    image

查看各高校的录取情况

基于高校汇总表,统计每个学校的计划数、分数线及位次,并按分数线降序排列,以便了解不同学校的录取分数和表现。

  1. 单击image图标,创建SQL分析单元。

  2. 运行如下语句,查看各个学校的录取情况。

    示例SQL语句。

    SELECT 学校名称, SUM(计划数) AS 计划数, ROUND(AVG(分数线), 2) AS 分数线, ROUND(AVG(位次), 2) AS 位次, ANY_VALUE(省份) AS 省份, ANY_VALUE(城市) AS 城市 FROM school GROUP BY 学校名称 ORDER BY 分数线 DESC;

    image

查看各城市的教育水平

统计每个城市中学校的数量,以及分数线和位次的平均值,并按分数线降序排序,以便了解不同城市的教育水平。

  1. 单击image图标,创建SQL分析单元。

  2. 运行如下语句,查看各个城市的教育水平。

    示例SQL语句。

    SELECT ANY_VALUE(省份) AS 省份, 城市, COUNT(*) AS 学校数量, ROUND(AVG(分数线), 2) AS 分数线, ROUND(AVG(位次), 2) AS 位次 FROM school GROUP BY 城市 ORDER BY 分数线 DESC;

    image

数据分析:报考热度及差异

至此,将正式进入报告的分析及编写阶段。在该步骤,我们将借助Data-NoteAI能力,输出分析思路及分析过程,了解各地区的学校招生情况、录取标准及报考热度,并评估地域是否会影响录取分数线。

说明
  • 智能分析是系统根据您输入的需求,自动分析并匹配相应算法,输出合适结果。因此,即使每次输入的描述相同,生成的分析过程也可能存在差异,但不会影响最终的结论导向,具体请以实际界面为准。

  • 智能分析生成的报告您可直接使用,也可基于该报告进行二次编辑。为保障报考热度及差异分析与后文饮食消费指数分析的关联性,本文示例使用智能分析体验生成分析思路,并通过手动操作体验核心分析过程。

智能分析操作指引

分析操作

在报告编辑区域单击智能报告,选择数据源为查询结果集中的school(高校信息汇总表),使用自然语言描述您的需求并运行。

示例输入“分析下学生都被招到了哪些省份,以及地域是否影响高校的最低录取分数线”。

说明

分析过程预计需要3~5分钟,请耐心等待。

image

分析过程

智能分析接收到需求后,将自动为您设计报告结构、生成分析思路、执行分析操作、并总结分析结果。

示例生成的报告结构如下。生成的报告您可直接使用,也可基于该报告进行二次编辑。单击报考热度及差异.pdf,可查看完整的示例报告内容。

image

各地区学生报考热度排名

在智能分析的指引下,我们将通过如下步骤手动体验核心分析操作。

根据每所学校的所在省份及该省所有院校的总报名人数(即“计划数”之和),计算出各省内高校的整体受欢迎排序。

  1. 查看各省的招生计划。

    单击image图标,创建SQL分析单元,运行如下语句。查看各省的总计划数,并按总计划数降序排序,将结果表重命名为enrollment_plan

    示例SQL语句。

    SELECT "省份", SUM("计划数") AS "总计划数" FROM school GROUP BY "省份" ORDER BY "总计划数" DESC;

    image

  2. 通过图表展示省份分布,观测主导地位占比。

    单击可视化 > 图表,创建图表分析单元,使用饼图展示各省份的总计划数占比。image

根据上述分析可看出,参与统计的省份中,浙江、江苏、上海、江西、湖北等地对浙江考生的欢迎程度更高。

地域对录取分数线的影响评估

在该步骤,将按照省份分组后求取平均分数线,探索省份与平均分数线是否存在线性趋势,以此衡量地域是否会影响高校的录取分数线。分析过程使用SQL、Python,并结合图表进行可视化展示。

  1. 查看各省份总平均分数线。

    单击image图标,创建SQL分析单元,运行如下语句。查看各省份的总平均分数线,并按总平均分数线降序排序,将结果表重命名为score_line

    示例SQL语句。

    SELECT "省份", AVG("分数线") AS 平均分数线 FROM school GROUP BY "省份";

    image

  2. 利用数学拟合趋势线,分析省份与招生标准的关联性。

    单击Python,创建Python分析单元,通过如下语句进行线性回归分析,探索省份与平均分数线是否存在线性趋势。

    示例Python代码。

    import nb_toolkit
    import pandas as pd
    import numpy as np
    from scipy.stats import linregress
    
    def true_value(x):
        return x.item() if type(x).__module__ == np.__name__ else x
    
    def linear(dimension, measure):
        '''
        返回measuredimension上的线性拟合结果
            参数:
                dimension (numpy.ndarray): 有序型(数值、日期或可以排序的字符串)数组
                measure (numpy.ndarray): 数值数组
            返回值:
                线性拟合结果,格式如下:
                {
                    'type': 'TREND.LINEAR',
                    'r': 拟合结果r值
                    'slope': 拟合结果斜率,
                    'intercept': 拟合结果截距,
                    'se': 拟合结果标准差,
                    'p': 拟合结果显著性(零假设:斜率为零, 使用Wald检验且检验统计量服从t分布的)(当p值<0.05时拒绝零假设,表明斜率显著不为0),
                }
            注:拟合时有序型dimension仅作为顺序参考,不考虑具体数值
        '''
    
        # 线性拟合 scikit——learn里面现成的, 但是数据格式要整理成(n_sample行,n_feature列, 显然我们就一个feature)
        # 该方法可以直接获得rsqured和斜率
    
        mask = np.ma.masked_not_equal(dimension, None).mask  # 排除None
    
        dimension_remain = dimension[mask]
    
        args = dimension_remain.argsort()
        X = measure[mask][args]  # 排序
        mask_valid = ~pd.isna(X)  # 排除NaN
        X_valid = (X[mask_valid]).astype(float)
        dimension_valid = dimension_remain[mask_valid]
        length_valid = len(dimension_valid)
    
        if length_valid < 3:
            return None
    
        slope, intercept, r, p, se = linregress(
            np.array(range(0, length_valid)), X_valid)
    
        slope = true_value(slope)
        intercept = true_value(intercept)
        p = true_value(p)
        se = true_value(se)
        r = true_value(r)
    
        return {
            'type': 'TREND.LINEAR',
            'r': r,
            'slope': slope,
            'intercept': intercept,
            'se': se,
            'p': p,
        }
    
    
    data = score_line.toDataFrame() if isinstance(score_line, nb_toolkit.view.View) else score_line
    dimension = np.array(data['省份'])
    measure = np.array(data['平均分数线'])
    result = linear(dimension, measure)
    print(result)
    说明
    • nb_toolkit:是一个Python工具库(例如,Notebook管理、版本控制、数据可视化),可在GitHub搜索。

    • Pandas:是一个Python数据分析库,主要用于数据操作和分析。

    • Numpy:提供了支持大型多维数组和矩阵的对象,主要用于高效的数值计算和数据分析。

    • scipy.stats.linregress:用于执行线性回归分析。

    image

    示例返回结果。

    {'type': 'TREND.LINEAR', 'r': 0.09203176634665855, 'slope': 0.2510677358578127, 'intercept': 539.2637194982078, 'se': 0.4959586674633785, 'p': 0.6163973632699788}

    通过线性回归模型,对各省份的平均分数线进行了拟合,得到的趋势线斜率为正但非常小。尽管斜率显示存在轻微上升趋势,但由于其p值远大于0.05,表明地理因素对于解释各省间录取分数差异的作用并不明显。此结论有助于我们更客观地看待地域对学生升学难度的影响程度。

根据上述分析可看出,福建、海南、广西、江西、浙江等省份的总平均分数线相对较低,且地域对学生升学的影响不大。

分析结论

结合AI分析及手动分析结果,我们可得出如下结论:

  • 报考浙江、江苏、上海、江西、湖北、福建等省份的浙江考生居多。

  • 省份和高校的平均录取分数线关系不是很大。

数据分析:饮食消费指数

在该步骤,我们将通过分析各地区居民对食品的偏好指数,预测在哪个地区摆摊会获得更高的收益。分析过程使用SQL,并结合图表进行可视化展示,结合Markdown进行辅助描述。

各地区人均消费支出

  1. 编写分析操作介绍。

    单击文本 > Markdown,创建Markdown分析单元,输入如下内容。

    示例分析介绍。

    ## 3. 各地区人均消费支出
    
    根据居民人均消费支出情况,分析出哪个地区的经济发展水平及生活质量较高。
  2. 计算各地区人均消费支出。

    单击image图标,创建SQL分析单元,运行如下语句,计算各地区的居民人均消费支出,按照人均消费支出降序排序,并将结果表重命名为cost

    示例SQL代码。

    SELECT 地区, SUM("2022年"+"2021年"+"2020年"+"2019年"/ 4) AS 人均消费支出 FROM "居民人均消费支出.csv" GROUP BY 地区 ORDER BY 人均消费支出 DESC;

    image

各地区总食品消费量

  1. 编写分析操作介绍。

    单击文本 > Markdown,创建Markdown分析单元,输入如下内容。

    示例分析介绍。

    ## 4. 各地区人均食品消费量
    
    根据居民人均食品消费支出情况,分析出哪个地区的居民更愿意为美食买单。
  2. 计算各地区总食品平均消费量。

    单击image图标,创建SQL分析单元,运行如下语句。计算各地区居民的总食品平均消费量,按照消费量降序排序,并将结果表重命名为food_like

    示例SQL代码。

    SELECT 地区, SUM("2022年"+"2021年"+"2020年"+"2019年"/ 4) AS 食品平均消费量 FROM "居民主要食品消费量.csv" GROUP BY 地区 ORDER BY 食品平均消费量 DESC;

    image

计算食品偏好指数并得出结论

至此,您将结合学生报考热度及差异分析,和居民的食品消费情况,计算出地区的食品偏好指数,并基于分析结果预测收益更高的摆摊地区。

  1. 计算食品偏好指数。

    单击image图标,创建SQL分析单元,运行如下语句,计算各地区居民的食品偏好指数。

    说明

    您可通过如下计算公式,预估各地区的销售利润,利润较高的地区将被视为食品偏好指数较高。

    利润 = 小吃单位利润 * 销量 - 自身固定生活开支

    = (各省消费水平 / 2000) * (各省计划招生人数 / 10) * 食品平均消费量 / 500 - 消费水平 / 150

    • 各省消费水平 / 2000:预估的小吃单位利润。

    • 各省计划招生人数 / 10:预估的购买人数。

    • 食品平均消费量 / 500:预估的人均购买量。

    • 消费水平 / 150:预估的各省固定生活开支。

    计算公式中的各个数值,是基于本文分析情况预估的较为合理的数值,您也可按需调整数值大小。

    示例SQL代码。

    -- 计算每个地区的食品偏好指数
    SELECT cost.地区,
        ANY_VALUE(
            ((cost.人均消费支出 / 2000) *  -- 小吃单位利润
            (enrollment_plan.总计划数 / 10) *  -- 购买小吃的人数
            food_like.食品平均消费量 / 500 -  -- 每个人的购买量
            cost.人均消费支出 / 150)  -- 固定生活开支
            + 50000                 -- 调整参数,用于调整最终的指数结果
        ) AS 食品偏好指数
    FROM enrollment_plan
    JOIN
        cost
    ON 
        enrollment_plan.省份 = substr(cost.地区, 1, 2)
    JOIN 
        food_like 
    ON 
        enrollment_plan.省份 = substr(food_like.地区, 1, 2)
    GROUP BY 
        cost.地区
    ORDER BY 
        食品偏好指数 DESC;

    image

  2. 输出结论。

    单击文本 > Markdown,创建Markdown分析单元,输出分析结果。

    # 结论与价值
    
    基于计算出的地区食品偏好指数,我们可以看出,浙江、上海、江苏等省份均适合摆小吃摊。
    
    当然,本案例获取的仅是浙江省学生去其他省份的招生数据,未包含其他省份报考相应地区的人数及消费能力,相关结论存在一定局限性。仅供体验功能及参考。

生成分析报告

分析操作执行完成后,您可将分析过程发布为分析报告,并导出或分享给他人查阅。

  1. 单击分析界面右上角的预览&发布,将分析结果生成可视化报告。

  2. 在报告界面右上角,单击image图标,即可将该报告导出为指定格式或分享至所需应用。

    说明

    您也可按需进行相关发布设置,调整报告样式。

    image

相关文档