【数据分析】数据的计量尺度、数据集中趋势

news2024/11/14 23:42:51

一、数据的计量尺度

  • 数据的计量尺度分为四类:定类尺度、定序尺度、定距尺度、定比尺度。
数据的计量尺度特点逻辑与数学运算常见的例子数据类型
定类尺度无等级次序是否相等

性别:男、女...

民族:汉族、满族...

职业:医生、消防员...

定性数据
定序尺度内在固有顺序比较大小、是否相等

职称:高级、初级...

健康状况:优良中差

质量等级:优良中差

定距尺度

“0”只是尺度上的一个点,不代表“不存在”

比较大小、加减运算摄氏温度、纬度定量数据

定比尺度

(比率尺度)

"0"表示“没有”或“不存在”

可以计算两个测度值之间的比值

比较大小、加减乘除质量、长度、能量

二、数据的集中趋势

  • 集中趋势在统计学中指一组数据向一中心值靠拢的程度,反应一组数据中心店所在位置。
  • 集中趋势测度就是寻找数据水平的代表值或中心值。
  • 常见指标:平均数、分位数、众数。

1、平均数

  • 适用于定量数据,不适用于定性数据。
  • 平均数有不同的计算形式和计算公式,主要包括:算术平均数、加权算法平均数、几何算法平均数等。
  • 平均数容易受极端值影响:平均数随着极端值的变化而变化,且有向极端值靠近的趋势。

2、分位数

  • 适用于顺序数据、定量数据。
  • 常见分位数:中位数、四分位数、百分位数

   百分位数:

  • 在按升序排序的数列中,其左侧的观察个数在整个样本中占比p%,右侧的观察个数在整个样本中占比为 (100-p)%。

   四分位数:

  • 是特殊的百分位数,不受极端值的影响。
  • 将所有数据按升序排序,并分成四等份,处于三个分割点位置的数字就是四分位数。
  • 第一四分位数(Q1)为较小四分位数,是第 25% 的数字。
  • 第二四分位数(Q2)为中位数,是第 50% 的数字。
  • 第三四分位数(Q3)为较大四分位数,是第 75% 的数字。

   中位数:

  • 特殊的四分位数
  • 不收极端值的影响
  • 计算公式分两种情况:
    • 当 n 为奇数时:中位数 = (n+1)/2 位置上数据的值
    • 当 n 为偶数时:中位数 = (n)/2 位置和 (n)/2+1 位置上数据的平均值

3、众数

  • 适用于分类数据、顺序数据、定量数据。 
  • 描述分类数据的集中趋势最常见的测度值
  • 只有在数据量较大的情况下,众数才有意义
  • 主要特点是不收极端值的影响
  • 一组数据中,不是只有一个众数,有可能有多个众数或者没有众数

三、Python 中如何计算平均数、分位数、众数?

1、简单公式运算

import numpy as np
import pandas as pd
from scipy import stats

# 生成包含 10 个介于 0 到 5 之间的随机浮点数,再转换成整数
data_floats = np.random.random(size=10)*6
data = data_floats.astype(int).tolist()

print(data)

mean_value = np.mean(data)
print(f'平均数:{mean_value}')

quantiles = np.quantile(data, [0.25, 0.5, 0.75])
print(f'分位数:第一四分位({quantiles[0]}), 中位数({quantiles[1]}), 第三四分位({quantiles[2]})')

mode_value = stats.mode(data)
print(f'众数:{mode_value[0][0]}')
  • 输出: 

>>>  [5, 3, 5, 2, 2, 2, 4, 3, 4, 2]
>>> 平均数:3.2
>>> 分位数:第一四分位(2.0), 中位数(3.0), 第三四分位(4.0)
>>> 众数:2

2、图表中呈现

import dash
from dash import dcc, html
from dash.dependencies import Input, Output
import plotly.express as px
import pandas as pd
import numpy as np

# 生成随机数据
# 1. 可以手动生成列表
# data = np.array([11, 7, 33, 30, 21, 57, 25, 92, 24, 64, 8, 64, 77, 39, 27, 99, 51, 4, 66, 31,
#                  6, 87, 39, 46, 73, 36, 24, 65, 70, 78, 87, 9, 85, 23, 45, 93, 77, 2, 77, 15,
#                  76, 77, 32, 89, 33, 23, 80, 28, 93, 70, 36, 12, 96, 39, 11, 97, 57, 36, 75, 30])

# 2. 可以用 random 生成包含 120 个介于 0 到 100 之间的随机浮点数,再转换成整数
# data_floats = np.random.random(size=120) * 100
# data = data_floats.astype(int).tolist()

# 3. 可以用 randint 生成包含 120 个介于 0 到 100 之间的随机整数列表
data = np.random.randint(0, 100, size=1000).tolist()

df = pd.DataFrame(data, columns=['Value'])

app = dash.Dash(__name__)
# 假设 bin_size 是我们知道的或者从直方图创建时确定的
m_bin = 30  # 直方图的 bin 数量
bin_size = (max(df['Value']) - min(df['Value'])) / m_bin


# 创建 Dash 应用程序
def create_histogram(df, m_bin):
    mean_value = df['Value'].mean()
    mode_value = df['Value'].mode()[0]
    quantiles = np.quantile(df['Value'], [0.25, 0.5, 0.75])

    # 创建直方图
    histogram_fig = px.histogram(df, x='Value', nbins=m_bin,
                                 barmode='overlay',
                                 labels={'Value': '数据值'},
                                 title='直方图 - 四分位数、平均数和众数',
                                 color_discrete_sequence=['lightblue'])
    histogram_fig.update_traces(
        marker=dict(line=dict(width=1, color='gray'))
    )
    # 添加统计信息的线条和注解
    histogram_fig.add_vline(x=mean_value,
                            line_dash='dash',
                            line_color='red',
                            annotation_text=f'平均数: {mean_value:.2f}',
                            annotation_position='top left')

    histogram_fig.add_vline(x=mode_value,
                            line_dash='solid',
                            line_color='lightgreen',
                            annotation_text=f'众数: {mode_value}',
                            annotation_position='top right')

    for i, q in enumerate(quantiles, 1):
        histogram_fig.add_vline(x=q,
                                line_dash='solid' if i == 2 else 'dash',
                                line_color='orange',
                                annotation_text=f'第{i}四分位数: {q:.2f}',
                                annotation_position='top')
    return histogram_fig


# 回调函数:根据直方图的点击事件更新箱线图
@app.callback(
    Output('box-plot', 'figure'),
    [Input('histogram', 'clickData')]
)
def update_box_plot(clickData):
    if clickData and clickData['points']:
        # 获取点击的柱状图的索引和 x 值
        point = clickData['points'][0]
        x = point['x']
        # 根据点击的柱状图确定数据范围
        lower_bound = x - bin_size
        upper_bound = x + bin_size
        # 筛选数据
        filtered_df = df[(df['Value'] >= lower_bound) & (df['Value'] < upper_bound)]
        # 更新箱线图
        fig = px.box(filtered_df, y='Value', title=f'Box plot for bin {lower_bound} : {upper_bound}')
    else:
        # 如果没有点击数据,显示完整数据的箱线图
        fig = px.box(df, y='Value', title='完整数据的箱线图')
    return fig


histogram_fig = create_histogram(df, m_bin)
# 定义应用程序的布局
app.layout = html.Div([
    html.H1('数据统计图'),
    # 初始为空的箱线图组件
    dcc.Graph(id='box-plot'),
    # 将创建的直方图添加到布局中
    dcc.Graph(id='histogram', figure=histogram_fig)
])

# 运行应用程序
if __name__ == '__main__':
    app.run_server(debug=True)
  • 输出:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2067263.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文心快码Baidu Comate 帮你解大厂面试题:在8g内存的机器,能否启动一个7G堆大小的java进程?

&#x1f50d;【大厂面试真题】系列&#xff0c;带你攻克大厂面试真题&#xff0c;秒变offer收割机&#xff01; ❓今日问题&#xff1a;在8g内存的机器&#xff0c;能否启动一个7G堆大小的java进程&#xff1f; ❤️一起看看文心快码Baidu Comate给出的答案吧&#xff01;如…

网络安全 day2 --- 宝塔搭建网站、phpstudy、IIS搭建网站的区别、docker、建站分配站、前后端分离

宝塔建站 以下步骤目前在VPS上操作 直接网上搜索宝塔官网进行下载window面板&#xff0c;然后安装宝塔面板 https://download.bt.cn/win/panel/BtSoft.zip 也可以直接用我这个下载链接 等待安装成功&#xff0c;安装成功后直接进入宝塔面板 登陆宝塔面板之后我们需要注册…

RAG的数据清洗和拆分

在大模型实际落地的时候&#xff0c;存在一些问题&#xff0c;主要集中在以下方面&#xff1a; 缺少垂直领域知识&#xff1a;虽然大模型压缩了大量的人类知识&#xff0c;但在垂直场景上明显存在短板&#xff0c;需要专业化的服务去解决特定问题。 存在幻觉、应用有一定门槛&…

解决 Navicat 删除唯一键(unique)后保存失败的问题:1-near “)“:syntax error

1、问题描述 我按照以下步骤删除如下图所示的 studentId 唯一键&#xff1a; 可以看到唯一键已经被删除了&#xff0c;但是此时我点击保存按钮时报错&#xff0c;保存失败&#xff1a; 2、解决方法 还需要点击如下图所示的删除唯一键按钮&#xff0c;才算是真正删除成功&…

作为一个电子工程师,在选择合适的网络变压器

作为一个电子工程师&#xff0c;在选择合适的网络变压器&#xff08;Network Transformer&#xff09;设计PCB时&#xff0c;应该遵循一系列的准则和步骤&#xff0c;确保所设计的电路既满足功能需求&#xff0c;又具备良好的性能和可靠性。以下是选择和设计过程中应该考虑的关…

坚持绿色发展的上海智算中心,稳步推进中

自今年年初正式封顶以来&#xff0c;云端股份上海智算中心在外墙及内部的建设进展顺利。这座智算中心地理位置优越&#xff0c;正逐步成为推动数字经济发展的重要力量。 位置优势 云端股份上海智算中心毗邻智慧岛数据产业园&#xff0c;是崇明区目前建设的唯一一座智算中心&am…

Flutter ListView控件

ListView是flutter中线性排列的可滚动的列表部件。ListView 是最常用的滚动小部件。它在滚动方向上一个接一个地显示其子项。在交叉轴上&#xff0c;子项需要填满 ListView。 如果非空&#xff0c;则 itemExtent 会强制子项在滚动方向上具有给定的范围。 如果非空&#xff0c;…

@Transactional 注解 this调用注解不生效

如果在一个方法上标注Transactional,要确定这个方法的调用方是容器中的代理对象还是普通的java对象. 如果是代理对象事务会开启生效 如果是普通的java对象事务会失效 如果是这样调用,那 grantDayBonus 方法肯定是容器中的代理对象调起的.事务会生效

【机器学习练习】糖尿病预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、数据预处理 1. 数据导入 import numpy as np import pandas as pd import seaborn as sns from sklearn.model_selec…

第二十九节、场景管理和切换

使用这个加载场景&#xff0c;实现场景的切换 是一个打包工具&#xff0c;使包体变小&#xff0c;不会重复打包包体 这个也可以远程进行打包&#xff0c;将代码上传到网上的库中&#xff0c;实现热更新 勾选后就会默认将当前场景加载到这里 简化名字 当物体需要跨场景&#xf…

观测云对接 Pinpoint 最佳实践

简介 Pinpoint 是一个开源的分布式应用性能监控工具&#xff0c;由韩国搜索引擎公司 Naver 开发。它主要用于跟踪和监控分布式应用程序和微服务架构中的性能问题。Pinpoint 的核心功能包括对分布式链路的追踪和监控&#xff0c;通过收集和分析数据来帮助开发者定位问题所在。P…

node版本管理工具Node Version Manager(nvm)的安装及使用

文章目录 一、nvm安装1.1,下载nvm安装包程序&#xff08;选最高版本安装即可&#xff0c;安装前先把本机电脑node卸载&#xff0c;不然管理不到&#xff09;双击安装包进行安装&#xff08;傻瓜式下一步即可&#xff09; 二、配置镜像2.1、使用管理员运行命令提示符2.2、检查nv…

健康减调攻略:1月轻松掉十斤

减调减调&#xff0c;有减才有调&#xff0c;饮食为调、运动重在减&#xff0c;他们是相互作用的&#xff0c;要瘦&#xff0c;只有饮食与运动结合才能事半功倍。 饮食调减&#xff1a; 不需要花多大钱&#xff0c;也不用费精力和时间自己做饭&#xff0c;或狂抠饮食量和食物…

6款ai伪原创软件app,自动生成文章效率更高

在当今信息爆炸的时代&#xff0c;内容创作的需求日益增长。无论是专业的写手、自媒体从业者&#xff0c;还是企业的营销人员&#xff0c;都在不断寻求提高创作效率的方法。而ai伪原创软件app的出现&#xff0c;为创作者们带来了新的解决方案。下面就为大家介绍6个强大的ai伪原…

6款大学生电脑里的必装软件,装进电脑慢慢用

分享6款大学生爱用的windows软件&#xff0c;个个功能强大&#xff0c;装进电脑能提升效率&#xff0c;让大学生活更轻松&#xff01; 1、Everything 大学四年怎么都得积攒下一堆PPT和文档&#xff0c;日子久了存放的乱七八糟&#xff0c;想找的时候一个头两个大。这时候Every…

中断和异常(X86架构)

中断和异常是强制性的执行流的转移&#xff0c;从当前正在执行的任务或程序转移到一个特殊的称作句柄的例程或任务。当硬件发出信号时&#xff0c;便产生中断&#xff0c;中断的产生是同现在正在执行的任务是异步的&#xff0c;即中断的产生是随机的。异常是处理器在执行指令的…

2024年金属非金属矿山(露天矿山)安全管理人员证考试题库及金属非金属矿山(露天矿山)安全管理人员试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员证考试题库及金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;…

后端给前端传递数据形式:广播 单播以及组播

目录 1.单播2.广播3.组播4.任播5.总结 网络数据在传输时需要使用特定的传输方式&#xff0c;其中最常见的包括单播、广播、组播和任播。本文将对这四种不同的网络传输方式进行详细介绍&#xff0c;并列举多个例子以说明不同场景下使用何种传输方式。 1.单播 单播是指一种向单个…

联想24春招算法方向部分试题解析

来自牛客题库&#xff0c;浅浅记录一下 CNN模型支持输入不定长序列&#xff1a;错。CNN模型通常用于处理具有固定尺寸输入的图像或类似结构的数据。虽然可以通过一些技术&#xff08;如滑动窗口或填充&#xff09;来处理不同尺寸的图像&#xff0c;但CNN本身并不直接支持输入…

解决arcmap发布影像切片,注册传输数据慢的问题

1、本地服务器进行切片步骤&#xff1a; 开发环境按照正常方案发布影像切片。 2、生产环境切片步骤 a、使用范文等同影像文件范围的矢量面数据&#xff0c;作为切片数据发布切片服务 重点&#xff1a;【服务名称必须一致】 b、获取开发环境切片的切片方案文件conf.xml 重点&am…