R语言实现:统计学及计量专业中的多种平均值计算方式

news2024/10/7 11:23:40

平均值在计量专业和统计学中有着广泛的应用如:描述数据集中趋势、比较不同组数据、评估数据的代表性、决策和判断、回归分析概率统计与财务分析等。此外,在计量专业中,平均值还被广泛应用于各种测量和校准过程中,以确保测量结果的准确性和可靠性。例如,在实验室测量中,多次测量的平均值可以提高测量的精度;在质量控制中,通过计算产品的平均质量水平来评估生产过程的稳定性等。
算数平均数(Mean):
算术平均值为所有数值相加后除以数值的个数,它反映了数据的一般水平。其中,简单平均数(算术平均数)是把所有数值相加,然后用总数除以数值的个数。这种方法假设每个数值具有相同的权重或重要性。简单平均数是反映一组数据的一般水平的重要指标,它利用了所有数据的信息,并且在数学上是使误差平方和达到最小的统计量。
x ˉ = x 1 + x 2 + x 3 + . . . + x n n = Σ i = 1 n x i n \bar{x}=\frac{x_{1}+x_{2}+x_{3}+...+x_{n}}{n}=\frac{\Sigma^{n}_{i=1}x_{i}}{n} xˉ=nx1+x2+x3+...+xn=nΣi=1nxi 衍生公式(如计算方差时用到):
V a r i a n c e = 1 n ∑ i = 1 n ( x i − A M ) 2 Variance = \frac{1}{n} \sum_{i=1}^{n} (x_i - AM)^2 Variance=n1i=1n(xiAM)2 A M = 1 n ∑ i = 1 n x i AM = \frac{1}{n} \sum_{i=1}^{n} x_i AM=n1i=1nxi,其中 :
* n n n :数据的数量
* x i x_i xi :每个数据点。
建立样品数据:

name <- c("大天二", "陈浩南", "刘亦菲", "山鸡", "蕉皮", "洪满天",
          "刘华强", "马大脚", "奥利给", "大金刚", "马里奥", "GGBond",
          "菲菲", "刘老二")
gender <- c("男", "女", "男", "女", "女", "男", "男", "女",
            "男", "男", "女", "女", "男", "女")
stat <- c(11, 12, 15, 85, 76, 45, 78, 99, 64, 10, 73, 74, 82, 72)
math <- c(44, 67, 82, 91, 45, 23, 1, 98, 23, 45, 24, 30, 75, 69)
econ <- c(99, 85, 79, 68, 49, 79, 88, 92, 93, 94, 89, 84, 46, 77)

student_data <- data.frame(姓名=name, 性别=gender, 统计学=stat,数学=math, 经济学=econ)

print(student_data)

在这里插入图片描述

计算统计学的平均分数:

simple_mean <- mean(student_data$统计学)
print(simple_mean)
# 输出: 56.85714

平均值在以下情况下可以作为最佳估约值:

  1. 数据分布均匀:当数据集中的数值分布相对均匀,没有明显的极端值时,平均值能够较好地代表整体数据的中心趋势。
  2. 大样本量:当样本量足够大时,平均值受个别极端值的影响会相对较小,因此更能准确地反映数据的整体情况。
  3. 对称分布:对于对称分布的数据集(如正态分布),平均值是描述数据中心位置的最佳选择。

但需要注意的是,在数据存在极端值或分布严重偏斜的情况下,平均值可能不是最佳的估约值(比如存在系统误差)。在这种情况下,中位数或众数可能更能代表数据的中心趋势。因此,在选择使用平均值作为估约值时,需要综合考虑数据的分布特点和具体应用场景。
加权算数平均值
在计算平均数时,给每个数据赋予一个权重,以反映数据的重要性。每个数据与其对应的权重相乘,然后将所得的乘积求和,再除以所有权重的总和。加权平均数能够更准确地反映数据的实际重要性,特别是在数据点的重要性或频率不均匀分布的情况下。 x ˉ = m 1 f 1 + m 2 f 2 + m 3 f 3 + . . . + m k f k f 1 + f 2 + f 3 + . . . + f k = Σ i = 1 k m i f i n \bar{x}=\frac{m_{1}f_{1}+m_{2}f_{2}+m_{3}f_{3}+...+m_{k}f_{k}}{f_{1}+f_{2}+f_{3}+...+f_{k}}=\frac{\Sigma_{i=1}^{k}m_{i}f_{i}}{n} xˉ=f1+f2+f3+...+fkm1f1+m2f2+m3f3+...+mkfk=nΣi=1kmifi * x ˉ \bar{x} xˉ:表示加权平均值。

* m i m_i mi:表示第 i i i个测量值或数据点。

* f i f_i fi:表示与第 i i i个测量值相关联的权重(或称为频数)。

* k k k:表示测量值的数量。

* n n n:表示所有权重的总和,即 n = f 1 + f 2 + f 3 + . . . + f k n = f_1 + f_2 + f_3 + ... + f_k n=f1+f2+f3+...+fk

* Σ i = 1 k \Sigma_{i=1}^{k} Σi=1k:表示从 i = 1 i=1 i=1 i = k i=k i=k的求和符号。

* m 1 f 1 + m 2 f 2 + m 3 f 3 + . . . + m k f k m_{1}f_{1} + m_{2}f_{2} + m_{3}f_{3} + ... + m_{k}f_{k} m1f1+m2f2+m3f3+...+mkfk:这部分是测量值与对应权重的乘积之和。它表示了每个测量值根据其权重对总和的贡献。

* f 1 + f 2 + f 3 + . . . + f k f_{1} + f_{2} + f_{3} + ... + f_{k} f1+f2+f3+...+fk:这是所有权重的总和,也称为 n n n。它用于标准化上述乘积之和,以确保加权平均值在合理的范围内。

因此,加权平均值 x ˉ \bar{x} xˉ是测量值与权重乘积之和除以权重之和。这反映了每个测量值根据其权重对平均值的贡献。

在计量专业中加权算数平均值的计算公式为:

x w = Σ i = 1 m W i x i Σ i = 1 m W i = Σ i = 1 m W i Σ i = 1 m W i x i = Σ i = 1 m w i x i x_{w}=\frac{\Sigma^{m}_{i=1}W_{i}x_{i}}{\Sigma_{i=1}^{m}W_{i}}=\Sigma_{i=1}^{m}\frac{W_{i}}{\Sigma_{i=1}^{m}W_{i}}x_{i}=\Sigma^{m}_{i=1}w_{i}x_{i} xw=Σi=1mWiΣi=1mWixi=Σi=1mΣi=1mWiWixi=Σi=1mwixi * x w x_{w} xw:加权算数平均值

* W i W_{i} Wi:第 i i i次测量结果的权

* x i x_{i} xi:第i次的测量结果

* m m m:测量次数

* w i w_{i} wi:归一化的权,即 Σ i m w i = 1 \Sigma^{m}_{i}w_{i}=1 Σimwi=1

在计算 x w x_{w} xw时,各测量结果 x i x_{i} xi所占的比重,用权 W i W_{i} Wi表示。 W i W_{i} Wi越大, x i x_{i} xi越可信赖,则加权平均计算中 x i x_{i} xi的权应该相应的越大。由于最终对加权算术平值起作用的归一化的权 w i w_{i} wi,所以,对于一组权( W 1 , W 2 , . . . , W n , W_{1},W_{2},...,W_{n}, W1,W2,...,Wn,),每个 W i W_{i} Wi都放大或缩小同样倍数,并不影响加权平均中的实际权重。 假设几个实验室分别对同一被测量在相同环境等测量条件下的测得值为 x i x_{i} xi,其标准不确定度为 u i u_{i} ui,且评定数值合理;各实验室均为独立测量;而且这组独立测量数据之间是兼容的;此时,权的计算公式为: W i = 1 u i 2 W_{i}=\frac{1}{u^{2}_{i}} Wi=ui21 即加权平均的权与每个参与计算的测量值的试验标准偏差的二次方成反比。 假设有三个实验室对同一被测量进行了独立测量,测得的数值和标准不确定度如下:

实验室1:测得值 ( x 1 x_{1} x1 = 10.5 ),标准不确定度 ( u 1 u_{1} u1 = 0.5 )
实验室2:测得值 ( x 2 x_{2} x2 = 10.2 ),标准不确定度 ( u 2 u_{2} u2 = 0.3 )
实验室3:测得值 ( x 3 x_{3} x3 = 10.7 ),标准不确定度 ( u 3 u_{3} u3 = 0.4 )
我们要计算这组测量值的加权算术平均值 W i = 1 u i 2 W_{i} = \frac{1}{u_{i}^{2}} Wi=ui21 来计算每个测量结果的权:
实验室1的权 W 1 = 1 0. 5 2 = 4 W_{1} = \frac{1}{0.5^{2}} = 4 W1=0.521=4
实验室2的权 W 2 = 1 0. 3 2 ≈ 11.1111 W_{2} = \frac{1}{0.3^{2}} \approx 11.1111 W2=0.32111.1111
实验室3的权 W 3 = 1 0. 4 2 = 6.25 W_{3} = \frac{1}{0.4^{2}} = 6.25 W3=0.421=6.25
接下来计算归一化的权 w i w_{i} wi

总权 Σ W i = 4 + 11.1111 + 6.25 = 21.3611 \Sigma W_{i} = 4 + 11.1111 + 6.25 = 21.3611 ΣWi=4+11.1111+6.25=21.3611
实验室1的归一化权 w 1 = 4 21.3611 ≈ 0.1872 w_{1} = \frac{4}{21.3611} \approx 0.1872 w1=21.361140.1872
实验室2的归一化权 w 2 = 11.1111 21.3611 ≈ 0.5202 w_{2} = \frac{11.1111}{21.3611}\approx 0.5202 w2=21.361111.11110.5202
实验室3的归一化权 w 3 = 6.25 21.3611 ≈ 0.2926 w_{3} = \frac{6.25}{21.3611} \approx 0.2926 w3=21.36116.250.2926
最后,我们根据加权算术平均值的公式计算 ( x w x_{w} xw ):

1. x w = Σ i = 1 m w ∗ i x i = w 1 x 1 + w 2 x 2 + w 3 x 3 x_{w} = \Sigma_{i=1}^{m} w*{i} x_{i} = w_{1} x_{1} + w_{2} x_{2} + w_{3} x_{3} xw=Σi=1mwixi=w1x1+w2x2+w3x3)
2. x w ∗ ≈ 0.187210.5 + 0.5202 ∗ 10.2 + 0.2926 ∗ 10.7 x_{w}* \approx 0.1872 10.5 + 0.5202 *10.2 + 0.2926* 10.7 xw0.187210.5+0.520210.2+0.292610.7)
3. x w ≈ 10.3978 x_{w} \approx 10.3978 xw10.3978
所以,这组测量值的加权算术平均值约为 10.3978。

# 定义测量值和标准不确定度  
x <- c(10.5, 10.2, 10.7)  
u <- c(0.5, 0.3, 0.4)  
  
# 计算权值  
W <- 1 / (u^2)  
  
# 计算归一化权值  
w <- W / sum(W)  
  
# 计算加权算术平均值  
x_w <- sum(w * x)  
print(x_w)  # 输出加权算术平均值
#  输出: 10.40247

公式变形
x ˉ = Σ i = 1 k m i f i n \bar{x} = \frac{\Sigma_{i=1}^{k}m_{i}f_{i}}{n} xˉ=nΣi=1kmifi,其中:
* Σ i = 1 k m i f i \Sigma_{i=1}^{k}m_{i}f_{i} Σi=1kmifi表示所有 m i m_i mi f i f_i fi乘积的和
* n n n是所有权重的总和。
这种表示方法更为简洁,且更通用。

计算完实验室数据后继续上述代码,计算学生成绩表的加权平均数,以经济学成绩作为权重

weighted_mean_stat <- weighted.mean(student_data$统计学, student_data$经济学)  
print(weighted_mean_stat) 
# 输出:54.58645

计算每个科目的简单平均数和加权平均数

# 初始化一个数据框来存储结果  
results <- data.frame(Subject=character(), SimpleMean=numeric(), WeightedMean=numeric())   
subjects <- c("统计学", "数学", "经济学")  
for (subject in subjects) {  
  simple_mean <- mean(student_data[[subject]])  
  weighted_mean <- weighted.mean(student_data[[subject]], student_data$经济学)  
  results <- rbind(results, data.frame(Subject=subject, SimpleMean=simple_mean, WeightedMean=weighted_mean))  
}  
print(results)

在这里插入图片描述
使用ggplot2绘制气泡图

library(ggplot2)  
student_data$性别 <- as.factor(student_data$性别)  

ggplot(student_data, aes(x = 统计学, y = 数学, color = 性别, size = 经济学)) +  
  geom_point(alpha = 0.7) + # alpha用于设置点的透明度  
  scale_size(range = c(1, 10)) + # 设置气泡的最小和最大尺寸  
  theme_minimal() + # 使用简洁的主题  
  ggtitle("学生成绩气泡图") + # 设置图表标题  
  xlab("统计学成绩") + # 设置x轴标签  
  ylab("数学成绩") + # 设置y轴标签  
  guides(size = guide_legend(title = "经济学成绩")) 

在这里插入图片描述
几何平均值(Geometric Mean):
计算公式:
G M = ( ∏ i = 1 n x i ) 1 n GM = (\prod_{i=1}^{n} x_i)^{\frac{1}{n}} GM=(i=1nxi)n1,其中:

  • ∏ \prod :连乘
  • * n n n :数据的数量
  • * x i x_i xi :每个数据点。
    几何平均值常用于计算平均增长率或复利等情况,在计量专业中使用几何平均值可以有效的消除系统误差。
    在计量专业中最常见的就是等臂天平测量。
geometric_mean <- function(x) {  
  if(all(x > 0)) {  
    return(prod(x)^(1/length(x)))  
  } else {  
    stop("所有数值必须为正数")  
  }  
}  
  
values <- c(12.5, 12.2, 12.1, 12.3, 12.2)  
  
geom_mean <- geometric_mean(values)  
print(geom_mean)

# 输出: 12.25925

调和平均值(Harmonic Mean):
计算公式:
H M = n ∑ i = 1 n 1 x i HM = \frac{n}{\sum_{i=1}^{n} \frac{1}{x_i}} HM=i=1nxi1n,其中:

  • n n n :数据的数量
  • x i x_i xi :每个数据点。
    调和平均值常用于计算平均速率或成本等情况。
    以下数据为一组气体流量计的实时流量记录:
harmonic_mean <- function(x) {  
  if(all(x > 0)) {  
    return(length(x) / sum(1/x))  
  } else {  
    stop("所有数值必须为正数")  
  }  
}  
  
values <- c(400.38, 400.41, 400.11, 400.35, 400.44, 400.19)  

harm_mean <- harmonic_mean(values)  
print(harm_mean)
# 输出: 400.3133

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

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

相关文章

AI大语言模型GPT —— R 生态环境领域数据统计分析

自2022年GPT&#xff08;Generative Pre-trained Transformer&#xff09;大语言模型的发布以来&#xff0c;它以其卓越的自然语言处理能力和广泛的应用潜力&#xff0c;在学术界和工业界掀起了一场革命。在短短一年多的时间里&#xff0c;GPT已经在多个领域展现出其独特的价值…

博客部署001-centos安装docker

1、安装docker 1.1 卸载旧版本的 Docker sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine1.2 设置 Docker 仓库 安装 Docker Engine 之前&#xff0c;首先需要设置…

观测线程的工具——jconsole

joconsole的简单使用 joncole位置在jdk/bin路径中&#xff0c;在进入路径后可以查找到jconsole.exe的应用程序。如图&#xff1a; 双击创建jconsole进程&#xff0c;可以在里面选择所要观测的java文件。 以我的代码为例&#xff1a; class MyThread extends Thread {Overrid…

算法基础课-搜索与图论

DFS 题目链接&#xff1a;842. 排列数字 - AcWing题库 思路&#xff1a;写的很好的题解AcWing 842. 排列数字--深度优先遍历代码注释 - AcWing #include<bits/stdc.h>using namespace std; int n; int st[10]; vector<int> a; void dfs(){if(a.size() n){for(in…

Vue 有哪些常用的指令

目录 1. 指令 v-html 1.1. 作用 1.2. 语法 1.3. 练习 2. 指令 v-show 2.1. 作用 2.2. 语法 3. 原理 4. 场景 3. 指令 v-if 3.1. 作用 3.2. 语法 3.3. 原理 3.4. 场景 4. 指令 v-else与 v-else-if 4.1. 作用 4.2. 语法 4.3. 注意 4.4. 使用场景 5. 指令 v-on 5…

详解 Redis 在 Centos 系统上的安装

文章目录 详解 Redis 在 Centos 系统上的安装1. 使用 yum 安装 Redis 52. 创建符号链接3. 修改配置文件4. 启动和停止 Redis 详解 Redis 在 Centos 系统上的安装 1. 使用 yum 安装 Redis 5 如果是Centos8&#xff0c;yum 仓库中默认的 redis 版本就是5&#xff0c;直接 yum i…

Pytorch转onnx

pytorch 转 onnx 模型需要函数 torch.onnx.export。 def export(model: Union[torch.nn.Module, torch.jit.ScriptModule, torch.jit.ScriptFunction],args: Union[Tuple[Any, ...], torch.Tensor],f: Union[str, io.BytesIO],export_params: bool True,verbose: bool False…

深入浅出 -- 系统架构之负载均衡Nginx环境搭建

引入负载均衡技术可带来的收益&#xff1a; 系统的高可用&#xff1a;当某个节点宕机后可以迅速将流量转移至其他节点。系统的高性能&#xff1a;多台服务器共同对外提供服务&#xff0c;为整个系统提供了更高规模的吞吐。系统的拓展性&#xff1a;当业务再次出现增长或萎靡时…

【Java网络编程】HTTP超文本传输协议

一、HTTP超文本传输协议 HTTP全称为Hyper Text Transfer Protocol超文本传输协议&#xff0c;它是基于TCP传输协议构建的应用层协议&#xff0c;作为支撑万维网www的核心协议&#xff0c;为了保证其效率及处理大量事务的能力&#xff0c;因此在设计时&#xff0c;HTTP被制定成为…

前端学习笔记:display(未完成)

这是本人学习的总结&#xff0c;主要学习资料如下 目录 1、一般属性2、flex系列2.1、flex容器的维度2.2、flex其他的关联属性 – 1、一般属性 display是css中的一个重要属性&#xff0c;它的值基本决定了元素的布局。这里就对它的值如何影响元素布局做一个总结。 display:bl…

go | gin 重定向路由重定向

web 重定向 重定向有一点要注意&#xff0c;重定向是在客户端那边执行的&#xff0c;一次服务器只能响应一次请求。但是要注意路由重定向 路由重定向是在服务器内部完成重定向资源请求 package mainimport ("github.com/gin-gonic/gin""fmt" )/* func main…

HUD抬头显示器阳光倒灌实验一般步骤

概述 汽车HUD&#xff08;Head-Up Display&#xff0c;即抬头显示器&#xff09;阳光倒灌实验是一种用于评估汽车抬头显示器在阳光直射条件下显示效果的测试。该实验的目的是确保HUD系统在强烈的阳光下依然能够清晰地显示信息&#xff0c;不影响驾驶员的视线和驾驶安全。 一般…

数据结构---顺序表实现

目录 1.顺序表 2.动态顺序表的实现 &#xff08;4&#xff09;顺序表初始化 &#xff08;5&#xff09;顺序表销毁 &#xff08;6&#xff09;顺序表的插入 a.尾插 b.头插 &#xff08;7&#xff09;顺序表的删除 a.尾删 b.头删 &#xff08;8&#xff09;指定位置之…

jenkins插件集成api使用

jenkins配置插件&api使用 jenkins https://mirrors.jenkins.io/war-stable/2.222.1/ 包下载地址 jenkins镜像源修改 sed -i s/https:\/\/www.google.com/https:\/\/www.baidu.com/g default.json sed -i s/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.…

使用YOLOv8训练自己的【目标检测】数据集

文章目录 1.收集数据集1.1 使用开源已标记数据集1.2 爬取网络图像1.3 自己拍摄数据集1.4 使用数据增强生成数据集1.5 使用算法合成图像 2.标注数据集2.1确认标注格式2.2 开始标注 3.划分数据集4.配置训练环境4.1获取代码4.2安装环境 5.训练模型5.1新建一个数据集yaml文件5.2预测…

ASP.NET Core 模型绑定

&#x1f340;介绍 在C#中&#xff0c;特别是在ASP.NET Core中&#xff0c;模型绑定是一个将HTTP请求中的数据映射到C#对象的过程。它使得开发者能够方便地从请求中提取数据&#xff0c;而无需手动解析请求体、查询字符串、路由数据等。ASP.NET Core提供了多种特性&#xff08…

《债务与国家的崛起》西方民主制度的金融起源 - 三余书屋 3ysw.net

债务与国家的崛起&#xff1a;西方民主制度的金融起源 你好&#xff0c;今天我们来聊聊由英国知名经济与金融历史学家詹姆斯麦克唐纳所著的《债务与国家的崛起》这本书。19世纪世界历史上发生了一次巨变&#xff0c;即“大分流”。当时西方通过工业革命实现了科技和经济的飞速…

如何保护大模型API安全

大模型的崛起正在改变着我们对机器学习和人工智能的理解&#xff0c;它们不仅提供了令人惊叹的预测和分析能力&#xff0c;还在各行各业的应用中发挥着重要作用。通过提供 API&#xff0c;用户无需了解底层实现细节&#xff0c;使大型模型能够更好地与用户和应用程序进行交互&a…

深度学习相关知识

一.环境配置 1.cuda/cudnn安装&#xff1a; 安装cuda之前首先安装vs&#xff0c;vs版本从低到高安装。 a) 安装cuda&#xff1a;首先查看显卡支持的最高CUDA的版本&#xff0c;以便下载对应的CUDA安装包&#xff1b; cmd命令行&#xff1a;nvidia-smi,显示如下&#xff1a;…

【GPT-4 Turbo】、功能融合:OpenAI 首个开发者大会回顾

GPT-4 Turbo、功能融合&#xff1a;OpenAI 首个开发者大会回顾 就在昨天 2023 年 11 月 6 日&#xff0c;OpenAI 举行了首个开发者大会 DevDay&#xff0c;即使作为目前大语言模型行业的领军者&#xff0c;OpenAI 卷起来可一点都不比同行差。 OpenAI 在大会上不仅公布了新的 …