R语言进行Box-Cox变换
@R语言进行Box-Cox变换
R语言进行Box-Cox变换
Box-Cox变换是Box和Cox在1964年提出的一种广义幂变换方法,是统计建模中常用的一种数据变换,用于连续的响应变量不满足正态分布的情况。Box-Cox变换的主要特点是引入一个参数,通过数据本身估计该参数进而确定应采取的数据变换形式,Box-Cox变换可以明显地改善数据的正态性、对称性和方差相等性,对许多实际数据都是行之有效的。
一个例子
对某百货公司连续十年的销售业绩进行线性拟合。其中Xi为年份,Yi为对应销售额。采用R语言进行分析:
导入数据:
#1.导入数据
mydata2 <- "
xi yi
0 98
1 135
2 162
3 178
4 221
5 232
6 283
7 300
8 374
9 385
"
mydata2 <- read.table(header=TRUE, text=mydata2)
head(mydata2)
attach(mydata2) #使得mydata2中的xi,yi可以直接作为单独变量
head(xi)
绘制散点图观看大致走向:
#install.packages("ggplot2") #下载ggplot2,仅第一需要
library(ggplot2) #加载ggplot2包
ggplot(data=mydata2,aes(xi,yi))+geom_point(color="blue")+labs(title="3.17a ",x="year",y="annual sales")
进行Box-Cox变换
第一步:导入包(没有先安装)
#step1 read packages
#install.packages("MASS")
library(MASS) #基于此包进行box-cox转换
#install.packages("moments")
library(moments) #基于此包进行峰度偏度计算
第二步:构建模型并检验正态性
#step2 构建线性模型并检查是否满足正态分布
lm.sales1<-lm(yi~xi,data=mydata2)
res2<-lm.sales1$residual
hist(res2) #绘制残差频率分布图
#head(res2)
skewness(res2) #计算偏度,结果:0.13
#通过残差频率分布图和偏度值可以发现残差并不满足正态分布
第三步:进行box-cox转换,确定lambda值
#step3 进行box-cox转换,确定λ值
b2=boxcox(yi~xi, data=mydata2) # 定义函数类型和数据
I=which(b2$y==max(b2$y))
b2$x[I]#lambda=0.55,即为图中最高点
第四步:检验转化效果
#step4 依据上一步box-cox转换的lambda值,带入模型
lm.sales2<-lm(yi^0.55~xi,data=mydata2)
hist(lm.sales2$residuals)
skewness(lm.sales2$residuals)
#此时的残差分布已经接近正态分布了
至此Box-Cox转换完成。
R语言进行Box-Cox变换相关推荐
- R语言生存分析COX回归分析实战:以乳腺癌数据为例
R语言生存分析COX回归分析实战:以乳腺癌数据为例 目录
- R语言生存分析COX回归分析实战:两种治疗方法发生肾功能损害的情况
R语言生存分析COX回归分析实战:两种治疗方法发生肾功能损害的情况 目录
- R语言生存分析COX回归分析实战:放疗是否会延长胰脏癌症患者的生存时间
R语言生存分析COX回归分析实战:放疗是否会延长胰脏癌症患者的生存时间 目录
- R语言epiDisplay包cox.display函数获取cox回归模型汇总统计信息(风险率HR、调整风险率及其置信区间、模型系数t检验的p值、Wald检验的p值和似然比检验的p值)、保存结果到csv
R语言使用epiDisplay包的cox.display函数获取cox回归模型的汇总统计信息(风险率HR.调整的风险率及其置信区间.模型系数的t检验的p值.Wald检验的p值和似然比检验的p值).使用 ...
- r语言归一化_数据变换-归一化与标准化
一般在机器学习的模型训练之前,有一个比较重要的步骤是数据变换. 因为,一般情况下,原始数据的各个特征的值并不在一个统一的范围内,这样数据之间就没有可比性. 数据变换的目的是将不同渠道,不同量级的数据转 ...
- R语言构建回归模型并进行模型诊断(线性关系不满足时)、进行变量变换(Transforming variables)、使用car包中的boxTidwell函数对预测变量进行Box–Tidwell变换
R语言构建回归模型并进行模型诊断(线性关系不满足时).进行变量变换(Transforming variables).使用car包中的boxTidwell函数对预测变量进行Box–Tidwell变换 目 ...
- 基础004:R语言数据处理和变换——dplyr
dplyr 背景简介 安装和数据准备 常用函数 变量筛选select 数据筛选filter 排序arrange 创建新变量mutate 本文"植物微生物组"公众号原创,ID: pl ...
- R语言使用timeROC包计算存在竞争情况下的生存资料多个标记物在相同时间下的cox及协变量分析AUC值、并可视化多个标记物在相同时间下的ROC值、多指标的ROC曲线(Time-dependent R
R语言使用timeROC包计算存在竞争情况下的生存资料多个标记物在相同时间下的cox及协变量分析AUC值.并可视化多个标记物在相同时间下的ROC值.多指标的ROC曲线(Time-dependent R ...
- R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行SpatialSign变换(将数据投影到单位圆之内)、设置method参数为spatialSign
R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行SpatialSign变换(将数据投影到单位圆之内).设置method参数为spatialSign 目录
最新文章
- OpenCV3.0.0下的视频稳像代码,效果不错哦
- document.body ,window.screen javascript对象属性取值意义
- 小工匠聊架构 - 构建架构思维
- 13.transform确保目标空间足够大
- 前后数据交互(ajax) -- 初始化页面表格
- 全球互联网领域第一人!马云获福布斯终身成就奖
- MNIST机器学习入门
- 电商订单ElasticSearch同步解决方案--使用logstash
- mysql 5.7 安装后添加root用户
- ubuntu 下 使用vmware 虚拟xp 声卡没声音 解决
- 【优化算法】蜜獾优化算法(HBA)【含Matlab源码 1437期】
- et中计算机的快捷键,ET软件快捷键
- ABBYY FineReader 12使用教程
- 优化UE4性能 、减少DrawCall——材质中使用自定义基元数据
- Markdown必备,Lsky-pro图床配置
- 通过ADB命令行卸载或删除你的Android设备中的应用
- WLAN AP安全策略中WPA认证与WPA2认证的差异
- alias常见小问题汇总20例
- 送女友的html语言,html+css+js精美页面,送女友
- redis数据备份与恢复