为什么样本方差(sample variance)的分母是 n-1?

样本均值与样本方差的定义

首先来看一下均值,方差,样本均值与样本方差的定义
总体均值的定义:
μ = 1 n ∑ i = 1 n X i \mu=\frac{1}{n}\sum_{i=1}^{n} X_i μ=n1i=1nXi
也就是将总体中所有的样本值加总除以个数,也可以叫做总体的数学期望或简称期望

总体方差的定义:
σ 2 = 1 n ∑ i = 1 n ( X i − μ ) 2 \sigma ^2=\frac {1}{n}\sum_{i=1}^{n} (X_i-\mu)^2 σ2=n1i=1n(Xiμ)2
总体中全部样本各数值与总体均值差的平方和的平均数,用来衡量随机变量或一组数据离散程度的度量。

在实际应用中,我们一般是拿不到总体的均值与总体的方差,只能通过抽样得到的样本均值与样本方差来估计总体的均值与方差。于是我们就得到了样本均值和样本方差:
样本均值的定义
X ˉ = 1 n ∑ i = 1 n X i \bar {X}=\frac{1}{n}\sum_{i=1}^{n} X_i Xˉ=n1i=1nXi

样本方差的定义
S 2 = 1 n − 1 ∑ i = 1 n ( X i − X ˉ ) 2 S^2=\frac{1}{n-1} \sum_{i=1}^{n} (X_i - \bar X)^2 S2=n11i=1n(XiXˉ)2

对比总体方差的公式,样本方差的公式的系数为什么变为了 1 n − 1 \frac{1}{n-1} n11

通俗理解-自由度

一个比较通俗的的理解就是自由度,可以理解为对应的独立信息量。样本均值和样本方差就是抽样后把所有的独立的信息量(这里的独立的信息量就是数值,包含了均值和方差的信息)平均得到,在计算样本方差时用 X ˉ \bar X Xˉ替代了总体均值 μ \mu μ,自由度减少了一个。

假设只采样了两个样本 X 1 , X 2 X_1,X_2 X1X2,这其中的信息量是多少呢?方差是计算样本之间的偏离程度,所以一个独立有效的信息量就是这个数值减去均值。在计算方差时分子有两项: ( X 1 − X ˉ ) 2 (X_1-\bar X)^2 (X1Xˉ)2 ( X 2 − X ˉ ) 2 (X_2-\bar X)^2 (X2Xˉ)2 . 要算第一个样本的偏离程度,毋庸置疑只能老老实实算 ( X 1 − X ˉ ) (X_1-\bar X) (X1Xˉ);但是,第二个样本呢?计算 ( X 2 − X ˉ ) (X_2-\bar X) (X2Xˉ) 吗?其实还有另外一种方法,因为 X ˉ = X 1 + X 2 2 \bar X=\frac{X_1+X_2}{2} Xˉ=2X1+X2 X 1 X_1 X1 X 2 X_2 X2 其实是对于 X ˉ \bar X Xˉ对称的。所以其实 ( X 2 − X ˉ ) = ( 2 X ˉ − X 1 − X ˉ ) = − ( X 1 − X ˉ ) (X_2-\bar X)=(2\bar X-X_1-\bar X)=-(X_1-\bar X) (X2Xˉ)=(2XˉX1Xˉ)=(X1Xˉ)。也就是我们在用样本均值 X ˉ \bar X Xˉ替代总体均值后,只要 X 1 X_1 X1确定了之后, X 2 X_2 X2是可以根据 X 1 X_1 X1推出来具体数值的,实际能够有效提供样本到 X ˉ \bar X Xˉ的偏移量的信息数只有一条 X 1 X_1 X1

我们对这种现象可以有一个表述:就是 ( X 2 − X ˉ ) (X_2-\bar X) (X2Xˉ) 是不自由的,因为从之前的式子可以推出它。当然,对称地,我们也可以说 ( X 1 − X ˉ ) (X_1-\bar X) (X1Xˉ)是不自由的。总之,这两个式子当中,只有一个是自由的,所以我们称这两个式子的自由度为 1.所以在两个样本求方差的时候要除1,应为实际应用到方差计算种的只有 ( X 1 − X ˉ ) (X_1-\bar X) (X1Xˉ)这一个有效信息。

同样,将样本数增加至三个,当有两个样本 X 1 , X 2 X_1,X_2 X1X2并且知道 X ˉ \bar X Xˉ的情况下,我们就可以推出第三个样本 X 3 X_3 X3的值,对应的自由度为 2.

以此类推,当我们有 n n n个样本的时候,其自由度为 n − 1 n - 1 n1.也就是说,当我们有 n n n 个样本的时候,我们虽然看起来在分子上做了 n n n 个减法,但实际上我们只算出了 n − 1 n - 1 n1 个偏差量。因此,做平均的时候,要除以的分母就是 n − 1 n - 1 n1

但是,为什么 n 个减法做完,自由度只有 n - 1?是谁从中搞鬼,偷走了一个自由度?答案很简单,是 X ˉ \bar X Xˉ 。注意在总体方差中,隐含的分布均值是 μ \mu μ ,这个均值是知道了总体的分布后计算出来的,而在样本方差中 μ \mu μ 是未知的,所以在估计方差之前,我们会需要先找一个 μ \mu μ 的代替,也就是 X ˉ \bar X Xˉ ,而 X ˉ \bar X Xˉ是根据样本算出来的. 也就是说,在用 X ˉ \bar X Xˉ 代替 μ \mu μ 的过程中,我们损失了一个自由度。

那么,如果问题的背景变了,我们知道隐含的分布均值 μ \mu μ ,只是不知道 σ 2 \sigma^2 σ2 ,那我们该如何估计 σ 2 \sigma^2 σ2?这种情况下求方差就变成了符合直觉的 ( X 1 − μ ) 2 + ( X 2 − μ ) 2 + ⋯ + ( X n − μ ) 2 n \frac{(X_1-\mu)^2+(X_2-\mu)^2+\dots+(X_n-\mu)^2}{n} n(X1μ)2+(X2μ)2++(Xnμ)2

严密推导过程

估计量的评选标准

当我们用抽样的方法去估计总体时,总是希望每次抽样的结果尽可能的靠近实际的总体评估量,同时抽取的样本越多时越接近实际的总体评估量。对于评估量的好坏有如下三个评价指标

无偏性

θ \theta θ是总体的未知参数, X 1 , X 2 , . . . . . X n X_1,X_2,.....X_n X1,X2,.....Xn是总体的一个样本, θ ^ \widehat \theta θ 是参数的一个估计量,若
E ( θ ^ ) = θ E(\widehat \theta)=\theta E(θ )=θ
则称 θ ^ \widehat \theta θ θ \theta θ的一个无偏估计量
无偏性简单来说就是取样后得到的估计量 θ ^ \widehat \theta θ 的期望就等于总体的估计量。

考虑如下一个打靶的例子。如果有一个射击高手打靶,那么结果总会在靶心附近(总体期望 θ \theta θ),那么我们一般会通过打靶结果(也就是样本 θ ^ \widehat \theta θ )认为这是一个熟练的射击手,对于多次的打靶结果我们对其打靶结果的期望是靶心( E ( θ ^ ) = θ E(\widehat \theta)=\theta E(θ )=θ),也就是无偏的。
在这里插入图片描述

但如果出现了如下这种结果,通过这些样本我们就会猜测集中在一点附近可能是一个射击高手,这个偏差可能是由于瞄准镜歪了这种导致的呢
在这里插入图片描述

对于这种稳定影响结果的因素导致的偏差称为系统偏差,也就是 E ( θ ^ ) − θ E(\widehat \theta)-\theta E(θ )θ。无偏估计的实际意义就是无系统偏差。很明显无偏估计更接近实际的总体统计量

有效性

θ ^ 1 {\widehat \theta}_1 θ 1 θ ^ 2 {\widehat \theta}_2 θ 2都是样本 X 1 , X 2 , . . . . . X n X_1,X_2,.....X_n X1,X2,.....Xn的无偏估计量,若对于任意取值范围里有 D ( θ ^ 1 ) ≤ D ( θ ^ 2 ) D({\widehat \theta}_1) \le D({\widehat \theta}_2) D(θ 1)D(θ 2),
θ ^ 1 {\widehat \theta}_1 θ 1 θ ^ 2 {\widehat \theta}_2 θ 2更加有效。
有效性就是同样无偏的估计量,更集中,方差更小的估计量更好
接着考虑如下打靶结果,虽然期望都是靶心,但是很明显后面的结果更加集中,相应的评估效果也会更好
在这里插入图片描述

相合性

之前的无偏性和一致性都是在样本容量固定为n的情况下讨论的,而如果样本容量越来越多时,一个估计量能稳定于待估的参数真值
相合性大样本条件下,估计值等于实际值.对于任意 θ > 0 \theta >0 θ>0,有
lim ⁡ n → ∞ P ( ∣ θ ^ − θ ∣ < ε ) = 1. \lim\limits_{n\to\infty}P\left(|\hat\theta-\theta| < \varepsilon\right)=1. nlimP(θ^θ<ε)=1.

推导

首先来看一下在分母为n的情况下样本方差是不是总体方差的无偏估计量:
E ( S 2 ) = E [ 1 n ∑ i = 1 n ( X i − X ˉ ) 2 ] = E [ 1 n ∑ i = 1 n ( ( X i − μ ) − ( X ˉ − μ ) ) 2 ] = E [ 1 n ∑ i = 1 n ( ( X i − μ ) 2 − 2 ( X i − μ ) ( X ˉ − μ ) + ( X ˉ − μ ) 2 ) ] = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 − 2 n ( X ˉ − μ ) ∑ i = 1 n ( X i − μ ) + 1 n ( X ˉ − μ ) 2 ∑ i = 1 n 1 ] = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 − 2 n ( X ˉ − μ ) ∑ i = 1 n ( X i − μ ) + ( X ˉ − μ ) 2 ] \begin{aligned} E(S^2) &= E \left [ \frac{1}{n} \sum_{i=1}^{n} (X_i - \bar X)^2 \right ] \\ &= E \left [ \frac{1}{n} \sum_{i=1}^{n} \Bigg( (X_i - \mu)-(\bar X - \mu) \Bigg)^2 \right ] \\ &= E \left [ \frac{1}{n} \sum_{i=1}^{n} \Bigg( (X_i - \mu)^2-2(X_i - \mu)(\bar X - \mu)+(\bar X - \mu)^2 \Bigg) \right ] \\ &= E \left [ \frac{1}{n} \sum_{i=1}^{n} (X_i - \mu)^2- \frac{2}{n} (\bar X - \mu) \sum_{i=1}^{n}(X_i - \mu)+ \frac{1}{n} (\bar X - \mu)^2 \sum_{i=1}^{n} 1 \right ] \\ &= E \left [ \frac{1}{n} \sum_{i=1}^{n} (X_i - \mu)^2- \frac{2}{n} (\bar X - \mu) \sum_{i=1}^{n}(X_i - \mu)+ (\bar X - \mu)^2 \right ] \end{aligned} E(S2)=E[n1i=1n(XiXˉ)2]=E n1i=1n((Xiμ)(Xˉμ))2 =E[n1i=1n((Xiμ)22(Xiμ)(Xˉμ)+(Xˉμ)2)]=E[n1i=1n(Xiμ)2n2(Xˉμ)i=1n(Xiμ)+n1(Xˉμ)2i=1n1]=E[n1i=1n(Xiμ)2n2(Xˉμ)i=1n(Xiμ)+(Xˉμ)2]

其中
X ˉ − μ = 1 n ∑ i = 1 n X i − 1 n ∑ i = 1 n μ = 1 n ∑ i = 1 n ( X i − μ ) \bar X - \mu=\frac{1}{n}\sum_{i=1}^{n} X_i-\frac{1}{n}\sum_{i=1}^{n} \mu=\frac{1}{n}\sum_{i=1}^{n} (X_i-\mu) Xˉμ=n1i=1nXin1i=1nμ=n1i=1n(Xiμ)

接着计算有:
E ( S 2 ) = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 − 2 n ( X ˉ − μ ) ∑ i = 1 n ( X i − μ ) + ( X ˉ − μ ) 2 ] = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 − 2 n ( X ˉ − μ ) ⋅ n ⋅ ( X ˉ − μ ) + ( X ˉ − μ ) 2 ] = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 − ( X ˉ − μ ) 2 ] = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 ] − E [ ( X ˉ − μ ) 2 ] = σ 2 − E [ ( X ˉ − μ ) 2 ] \begin{aligned} E(S^2) &= E \left [ \frac{1}{n} \sum_{i=1}^{n} (X_i - \mu)^2- \frac{2}{n} (\bar X - \mu) \sum_{i=1}^{n}(X_i - \mu)+ (\bar X - \mu)^2 \right ] \\ &= E \left [ \frac{1}{n} \sum_{i=1}^{n} (X_i - \mu)^2- \frac{2}{n} (\bar X - \mu) \cdot n \cdot (\bar X - \mu)+ (\bar X - \mu)^2 \right ] \\ &= E \left [ \frac{1}{n} \sum_{i=1}^{n} (X_i - \mu)^2- (\bar X - \mu)^2 \right ] \\ &= E \left [ \frac{1}{n} \sum_{i=1}^{n} (X_i - \mu)^2 \right ]- E \bigg [(\bar X - \mu)^2 \bigg ] \\ &= \sigma^2-E \bigg [(\bar X - \mu)^2 \bigg ] \end{aligned} E(S2)=E[n1i=1n(Xiμ)2n2(Xˉμ)i=1n(Xiμ)+(Xˉμ)2]=E[n1i=1n(Xiμ)2n2(Xˉμ)n(Xˉμ)+(Xˉμ)2]=E[n1i=1n(Xiμ)2(Xˉμ)2]=E[n1i=1n(Xiμ)2]E[(Xˉμ)2]=σ2E[(Xˉμ)2]
可以看到同样在除以 n n n的情况下只有当 X ˉ = μ \bar X = \mu Xˉ=μ时才有 E ( S 2 ) = σ 2 E(S^2)= \sigma^2 E(S2)=σ2,在其他情况下 E ( S 2 ) E(S^2) E(S2)都是小于 σ 2 \sigma^2 σ2的。这一个结果也很好理解,只要样本均值 X ˉ \bar X Xˉ越偏离总体均值 μ \mu μ,样本也就越偏离总体均值。

请添加图片描述
接下来就是要计算出差异 E [ ( X ˉ − μ ) 2 ] E \bigg [(\bar X - \mu)^2 \bigg ] E[(Xˉμ)2]是多少

E ( X ˉ ) = E ( 1 n ∑ i = 1 n X i ) = 1 n ∑ i = 1 n E ( X i ) = 1 n ∑ i = 1 n μ = μ E(\bar{X}) = E\bigg(\frac{1}{n} \sum_{i=1}^{n} X_i\bigg) = \frac{1}{n}\sum_{i=1}^nE(X_i) = \frac{1}{n}\sum_{i=1}^n \mu = \mu E(Xˉ)=E(n1i=1nXi)=n1i=1nE(Xi)=n1i=1nμ=μ
D ( a X i ) = a 2 D ( X i ) D(aX_i) = a^2 D(X_i) D(aXi)=a2D(Xi)
代入有:
E [ ( X ˉ − μ ) 2 ] = E [ ( X ˉ − E ( X ˉ ) ) 2 ] = D ( X ˉ ) = D ( 1 n ∑ i = 1 n X i ) = 1 n 2 ∑ i = 1 n D ( X i ) = 1 n 2 ⋅ n σ 2 = σ 2 n \begin{aligned} E \bigg [(\bar X - \mu)^2 \bigg ] &= E \bigg [(\bar X - E(\bar{X}))^2 \bigg ] \\ &=D(\bar{X})\\ &=D\bigg(\frac{1}{n} \sum_{i=1}^{n} X_i\bigg)\\ &=\frac{1}{n^2} \sum_{i=1}^{n} D(X_i) \\ &=\frac{1}{n^2} \cdot n \sigma^2 \\ &=\frac{\sigma^2}{n} \end{aligned} E[(Xˉμ)2]=E[(XˉE(Xˉ))2]=D(Xˉ)=D(n1i=1nXi)=n21i=1nD(Xi)=n21nσ2=nσ2
所以
E ( S 2 ) = σ 2 − E [ ( X ˉ − μ ) 2 ] = n − 1 n σ 2 E(S^2) = \sigma^2-E \bigg [(\bar X - \mu)^2 \bigg ] =\frac{n-1}{n}\sigma^2 E(S2)=σ2E[(Xˉμ)2]=nn1σ2

进行一下调整,即有
n n − 1 E ( S 2 ) = n n − 1 E [ 1 n ∑ i = 1 n ( X i − X ˉ ) 2 ] = E [ 1 n − 1 ∑ i = 1 n ( X i − X ˉ ) 2 ] = σ 2 \frac{n}{n-1}E(S^2)=\frac{n}{n-1} E \left [ \frac{1}{n} \sum_{i=1}^{n} (X_i - \bar X)^2 \right ]=E \left [ \frac{1}{n-1} \sum_{i=1}^{n} (X_i - \bar X)^2 \right ]=\sigma^2 n1nE(S2)=n1nE[n1i=1n(XiXˉ)2]=E[n11i=1n(XiXˉ)2]=σ2

这样得到的就是无偏的估计

https://www.zhihu.com/question/20099757
https://www.zhihu.com/question/22983179

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

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

相关文章

倚天屠龙记高手排名

张无忌&#xff1a;其武功配置堪称无双&#xff0c;乾坤大挪移、完全版九阳神功、太极拳剑&#xff0c;再加上后来习得的降龙十八掌&#xff0c;使他成为当之无愧的武林至尊。九阳神功的内力绵绵不绝&#xff0c;使他连拍一千招降龙十八掌也不觉疲累&#xff0c;其威力甚至超过…

vuepress搭建个人文档

vuepress搭建个人文档 文章目录 vuepress搭建个人文档前言一、VuePress了解二、vuepress-reco主题个人博客搭建三、vuepress博客部署四、vuepress后续补充 总结 vuepress搭建个人文档 所属目录&#xff1a;项目研究创建时间&#xff1a;2024/7/23作者&#xff1a;星云<Xing…

git配置代理

git配置代理 添加全局代理&#xff1a; #我在本地7890端口配置了代理&#xff0c;通过该端口转发&#xff0c;这里转发的地址和端口可根据自己的实际情况进行配置 git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy http://127.0.0.1:7…

Java毕业设计 基于SSM和Vue的跑腿系统小程序

Java毕业设计 基于SSM和Vue的跑腿系统小程序 这篇博文将介绍一个基于SSM框架和Vue开发的跑腿系统微信小程序&#xff0c;适合用于Java毕业设计。 功能介绍 跑腿员 登录 注册 忘记密码 首页 图片轮播 校友动态 校友动态详情 任务 在线接单 任务订单 我的 我的收藏 联系客…

WEB安全-SQL注入

1 需求 SQL注入分类&#xff1a; 根据参数类型&#xff1a;字符型&#xff0c;数字型、搜索型 根据提交方式&#xff1a;POST注入&#xff0c;GET注入&#xff0c;HTTP HEAD注入 根据有无回显&#xff1a;联合注入&#xff0c;报错注入&#xff0c;布尔盲注&#xff0c;延时注入…

栈和队列(C语言)

栈的定义 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#xff1a;…

Elasticsearch:Golang ECS 日志记录 - zerolog

ECS 记录器是你最喜欢的日志库的格式化程序/编码器插件。它们可让你轻松地将日志格式化为与 ECS 兼容的 JSON。在本教程中&#xff0c;我将详述如何 编码器以 JSON 格式记录日志&#xff0c;并以 ECS 错误格式处理错误字段的记录。 默认情况下&#xff0c;会添加以下字段&…

【算法】深入理解并优化算法:提升软件开发效率与质量

目录 一、算法的基本概念 输入 输出 确定性 有限性 有效性 二、常见算法类型 1. 排序算法 选择排序&#xff08;Selection Sort&#xff09; 插入排序&#xff08;Insertion Sort&#xff09; 快速排序&#xff08;Quick Sort&#xff09; 归并排序&#xff08;Mer…

Langchain核心模块与实战[7]:专业级Prompt工程调教LLM[输入输出接口、提示词模板与例子选择器的协同工程]

Langchain核心模块与实战[7]:专业级Prompt工程调教LLM[输入输出接口、提示词模板与例子选择器的协同工程] 1. 大模型IO接口 任何语言模型应用的核心元素是…模型的输入和输出。LangChain提供了与任何语言模型进行接口交互的基本组件。 提示 prompts : 将模型输入模板化、动态…

云原生周刊:Kubernetes v1.31 中的移除和主要变更|2024.7.22

开源项目 Argo Rollouts Argo Rollouts 是一个 Kubernetes 控制器和一组自定义资源定义&#xff08;CRDs&#xff09;&#xff0c;提供高级部署功能&#xff0c;例如蓝绿部署、金丝雀部署、金丝雀分析、实验以及渐进式交付功能给 Kubernetes。 Argo Rollouts 可选地集成了 I…

MATLAB--文件操作相关指令

文章目录 文件操作相关指令前言 M文件创建MATLAB文件操作指令MATLAB文件流控制 文件操作相关指令 前言 记录一下M文件创建、操作、获取信息等相关资料。   MATLAB的M文件是用来代替MATLAB命令行窗口输入指令的文件。因此所有的MATLAB指令都可以再MATLAB的M文件中调用. M文件…

python 读取excel 并处理被合并单元格的数据

业务需求是 读取excel数据 并按指定规则拼接数据保存到 md文件中 遇到的问题&#xff0c;大量空列和空行 造成读取数据卡住&#xff0c;或者逐行 逐单元格遍历 过慢。&#xff08;例如&#xff1a;实际可用数据 一千 行&#xff0c;ws.max_row 读取到的有效行是十万 &#xff…

Harmony学习(二)------ArkUI(2)

1.主轴对齐方式.justifyContent build() {Column(){Text().width(200).height(100).backgroundColor(Color.Yellow).border({width:2})Text().width(200).height(100).backgroundColor(Color.Yellow).border({width:2}).margin(10)Text().width(200).height(100).backgroundCol…

关于iphone不能下载三方软件

iPhone 不能下载第三方软件的原因主要是因为苹果公司严格控制其应用生态系统&#xff0c;确保所有应用都通过其官方的 App Store 分发。这有几个主要原因&#xff1a; 安全性&#xff1a;苹果公司希望通过这种方式减少恶意软件的传播&#xff0c;保护用户的隐私和数据安全。所…

I can‘t link the chatbot model with react

题意&#xff1a;我无法将聊天机器人模型 chatbot 与React连接起来 问题背景&#xff1a; This is the model from flask import Flask, request, jsonify from flask_cors import CORS import json import nltk import numpy as np import random import pickle from time i…

【javascript】关于js控制滚动的一些注意事项

滚动方式有2种 1、element.scrollIntoView // 假设你有一个元素的ID是element-id const element document.getElementById(element-id); // 滚动到该元素 element.scrollIntoView(); // 如果你想要平滑滚动&#xff0c;可以传递一个选项对象 element.scrollIntoView({ behav…

Windows图形界面(GUI)-MFC-C/C++ - 键鼠操作

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 MFC鼠标 派发流程 鼠标消息(客户区) 鼠标消息(非客户) 坐标处理 客户区 非客户 坐标转换 示例代码 MFC键盘 击键消息 虚拟键代码 键状态 MFC鼠标 派发流程 消息捕获&#…

科研绘图系列:R语言热图(heatmap)

介绍 热图是一种数据可视化技术,通常用于展示数据的分布情况。它通过颜色的变化来表示数据的大小或密度,使得观察者能够直观地理解数据集中的模式和趋势。以下是热图的一些关键特点和应用场景: 数据分布:热图可以显示数据在不同区域的分布情况,比如在地图上显示不同地区的…

【cocos creator】ts中export的模块管理

在 TypeScript&#xff08;TS&#xff09;中&#xff0c;export 和 import 的概念与 Java 中的 public 类、接口以及 import 语句有一些相似之处。可以用以下方式来类比理解&#xff1a; Export 在 TypeScript 中&#xff0c;export 用于将模块中的变量、函数、类等暴露给外部…

WHAT - CSS :root 变量定义和使用(var)

在日常开发中&#xff0c;我们经常遇到如下 CSS 代码&#xff1a; bg-primary {background-color: var(--primary-color); } disabled-foreground {color: var(--disabled-foreground-color); }这些变量通常来自于CSS变量&#xff08;也称为CSS自定义属性&#xff09;&#xf…