数学建模——Box-Cox变换

news2024/9/21 8:01:46

用途:当某个随机变量 X X X 不服从正态分布的时候,可以尝试通过这种变换将其变成正态分布。

两个常用的变换

  • 对数变换:已知随机变量 X X X,如果有 ln ⁡ X ∼ N ( μ , σ 2 ) \ln X\sim N(\mu,\sigma^2) lnXN(μ,σ2),那么对 X X X 使用对数变换。适合随着自变量的增加,因变量的方差也增大的模型。
  • 平方根变换:已知随机变量 X X X,如果有 X ∼ N ( μ , σ 2 ) \sqrt X\sim N(\mu,\sigma^2) X N(μ,σ2),那么对 X X X 使用平方根变换。适合服从Poission分布的计数资料,或轻度偏态资料。

Box-Cox 变换简介

  Box-Cox变换的基本思想是通过对数据进行一定的变换,使得变换后的数据更加符合正态分布的特征。这种变换是一种幂函数变换,其公式如下:
y ~ = { y λ − 1 λ , λ ≠ 0 ln ⁡ y , λ = 0 \tilde{y}=\left \{{\begin{matrix}\cfrac{{{y}^{\lambda }}-1}{\lambda },&\lambda \ne 0\\\ln{y},&\lambda =0\end{matrix}}\right . y~= λyλ1,lny,λ=0λ=0

  将原数据 y y y 变为大致服从正态分布的 y ~ \tilde y y~。Box-Cox 变换可以很好地根据一组随机变量 X X X 的观测值,构造出一个服从正态分布的变量 X ~ \tilde X X~,从而能够根据这个正态分布进行一些数据分析。传统的 Fitter 库给出的最佳拟合可能是一些从来没有见过的分布函数。
  注意上式只适合非负数,如果存在负数,需要将 y y y 加上一个偏移量后再进行 Box-Cox 变换。
  对数变换是 λ = 0 \lambda =0 λ=0 的 Box-Cox 变换,平方根变换是 λ = 1 / 2 \lambda=1/2 λ=1/2 的 Box-Cox 变换。

代码实例

from scipy.stats import boxcox
# 下面这个库也含有 boxcox 变换方法,但是这个库的 boxcox 需要自行提供 λ。而 scipy.stats.boxcox 可以通过极大似然等方法自行计算 λ。
# from scipy.special import boxcox

from scipy.special import inv_boxcox
import numpy as np

np.random.seed(114514)
# F 分布有点偏态正态分布的意思,生成一组 F 分布数据
x = np.random.f(dfnum=3, dfden=10, size=10000)

# box-cox 正变换
y, lambda_ = boxcox(x, lmbda=None, alpha=None)
print(lambda_)
# 0.1678598919247737

import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['font.family'] = 'Euclid'
plt.subplot(121)
sns.distplot(x)
plt.title('Origin')
plt.subplot(122)
sns.distplot(y)
plt.title('Transformed')
plt.show()

# 这是反变换,经验证和之前的 x 是一样的
x = inv_boxcox(y, lambda_)

  做出来图片如下。
在这里插入图片描述

参考文献

  下面的资料对 Box-Cox 变换有深入的介绍:

  • 统计学中的数值变换 – 标点符
  • 【机器学习】Box-Cox变换详解-CSDN博客
  • 数据预处理—5.box-cox变换及python实现_box-cox变换python-CSDN博客

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

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

相关文章

快被右下角的windows Defender烦死了,怎么让它消失?

前言 前段时间有小伙伴问:Windows自带的杀毒软件Windows Defender怎么关掉? 原因是无论在Windows Defender软件界面里怎么关闭,它都会拦截到某些软件和文件。 而且对于强迫症患者来说,右下角始终有个图标,还带了个x的…

【开源风云】从若依系列脚手架汲取编程之道(四)

📕开源风云系列 🍊本系列将从开源名将若依出发,探究优质开源项目脚手架汲取编程之道。 🍉从不分离版本开写到前后端分离版,再到微服务版本,乃至其中好玩的一系列增强Plus操作。 🍈希望你具备如下…

有了室内外一体化人行导航,你还怕迷路吗?

在快节奏的现代生活中,无论是穿梭于繁华的都市丛林,还是漫步于错综复杂的购物中心,迷路似乎成了不少人的“小确丧”。然而,随着科技的飞速发展,一项革命性的创新——室内外一体化人行导航系统,正悄然改变着…

CAN总线(一)

CAN总线(Controller Area Network Bus),从名字上可以知道,CAN总线构建的是一种局域网网路,每个挂载在CAN总线上的设备都可以利用这个局域网去发送自己的消息,也可以接收局域网的各种消息,每个设…

解锁高效驱动密码:SiLM8260A系列SiLM8260ABCS-DG 集成米勒钳位的双通道隔离驱动芯片

附上SiLM8260A同系列型号参考: SiLM8260ADCS-DG 12.5V/11.5V SiLM8260ABCS-DG 8.5V/7.5V SiLM8260AACS-DG 5.5V/5V SiLM8260AGCS-DG 3.5V/3V SiLM8260ABCS-DG是一款集成了米勒钳位功能的双通道隔离驱动芯片,它精准地满足了上述严苛条件。具备…

Excel排序错误原因之一

# Excel日常表格中的文字排序乱了,在系统语言更改成英语之后,不再按照首字母的顺序排列,且强制设置序列顺序也无济于事。 Excel表格内的排序尝试 表格基础选项就有“排序”,在其自定义选项中的“选项”设置处设置“拼音排序”&am…

2024年实体行业都在用的AI自动直播,有哪些可以发展的机会?

抖捧AI自动直播系统,是一款结合Ai和短视频营销的自动化直播辅助工具,针对企业和实体店有多重的应用场景,通过预设的直播脚本和智能回复逻辑,实现不需要真人参与,就可以实现全天候24小时直播,当用户进入直播…

【Java基础】ThreadLocal<LoginUser>:存储登录用户信息

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【一篇文章搞定】LVGL显示中文+解决keil下LVGL无法正常显示中文及error:#8:missing closing quote问题

LVGL显示中文 进入lvgl中文文档:显示中文 — LVGL 文档 (100ask.net) 下载字体zip文件,解压得到一个.otf文件 进入LVGL的字体转换网站 Font Converter — LVGL 1.点击Browse指定.otf文件即可 2.range不用管 3.为了节省内存在Symbols中输入自己要使用的…

【计算机网络】概述篇

目录 导学 计算机网络的发展简史 互联网的发展历史 中国互联网的发展历史 计算机网络的层次结构 层次结构设计的基本原则 OSI七层模型 TCP/IP四层模型 现代互联网的网络拓扑 计算机网络的性能指标 速率 时延 发送时延 ​传播时延 ​排队时延 处理时延 总时延 …

K8S - Emptydir - 取代ELK 使用fluentd 构建logging saidcar

由于k8s 的无状态service 通常部署在多个POD中, 实现多实例面向高并发。 但是k8s 本身并没有提供集中查询多个pod的日志的功能 其中1个常见方案就是ELK. 本文的方案是 利用fluentd sidecar 和 emptydir 把多个pod的日志导向到bigquery的table中。 Emptydir 的简介 …

STM32F407ZGT6单片机HAL库——DAC输出

一、输出直流电压 1.cubemax的配置(通道1) 2.直流电压大小计算 3.主函数加入初始化的程序 float DAC_voltage1.5;HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, DAC_voltage*4095/3.3);//HAL_DAC_Start(&hdac,DAC_CHANNEL_1); 二、…

深度解析价值流:推动业务架构创新与效益提升的核心指南

数字化转型下的价值流管理与架构 在当今的数字化转型背景下,如何有效创造并交付价值,成为企业竞争力提升的关键课题。作为企业架构的重要组成部分,价值流的概念为业务决策者和技术人员提供了全面的工具,帮助优化业务能力&#xf…

java,php,go,nodejs,Python开发web项目优缺点对比

Java 优点:java 是一门广泛应用于企业级开发的语言,丰富且庞大的开发框架和库。有较高的性能和可伸缩性。生态系统庞大且成熟,拥有大量的开源框架和工具,可以加速开发过程。 内置对多线程的支持,适合处理高并发的 Web 项目。 缺点:相比其他语言,Java 的语法相对冗长繁琐…

Linux-Shell编程【看这一篇就够了!!!】

目录 前言 什么是Shell编程 Shell脚本的执行方式 脚本格式要求 运行一个Shell 一个Shell例子 Shell的变量 shell变量的定义 设置环境变量 简单示范 位置参数变量 预定义变量 基本语法 运算符 应用案例 条件判断 单流程判断 常用判断条件 应用案例 多流程判…

Type-C 接口 取电 PD快充协议取电电压5V、9V、15V、20V

随着Type-C接口的普及,快充技术融入进了各种电子设备中,然而快充技术里快充协议是必不可少的,目前市面上已经出现多种快充协议,最常见的便是Type-C PD协议,下面来以起了解以下PD协议。 PD协议的工作原理主要是基于电压…

【OpenCV】灰度化和二值化处理图像

文章目录 1. 图像灰度化处理对比2. 代码示例3. 二值化处理 1. 图像灰度化处理对比 2. 代码示例 #include <opencv2/opencv.hpp> using namespace cv;int main() {Mat currentImage imread("path_to_image.jpg"); // 读取彩色图像Mat grayImage;// 将彩色图像…

负债不再是障碍?银行信贷“白名单“揭秘

谈及银行信贷产品&#xff0c;常闻有言称存在无需考量负债与查询记录之奇品&#xff0c;此等说法十有八九为中介诱人上钩之辞。轻信之下&#xff0c;恐将步入连环陷阱。除非个人资质出类拔萃&#xff0c;如就职于国央企或事业单位&#xff0c;工龄逾年&#xff0c;五险一金完备…

计算机毕业设计选题推荐-土地承包管理系统-Java/Python项目实战(亮点:数据可视化分析、账号锁定、智能推荐)

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

Address localhost:1099 is already in use:tomcat频繁重启端口占用问题

错误提示 Unable to open debugger port (127.0.0.1:58198): java.net.SocketException "Socket closed" Address localhost:1099 is already in use 端口被占用 报错原因 由于短时间内频繁运行tomcat服务器。 为了避免出现这一错误。可以点击刷新uodate resourc…