BG:在box-cox变换中,当λ = 0时即为对数变换。

当所分析变量的标准差相对于均值而言比较大时,这种变换特别有用。对数据作对数变换常常起到降低数据波动性和减少不对称性的作用。。这一变换也能有效消除异方差性

library(MASS)
library(openxlsx)
data= read.xlsx("data104.xlsx",sheet = 1) #导入数据
attach(data)

  

op<-par(mfrow=c(2,2),mar=0.4+c(4,4,1,1),oma=c(0,0,2,0)) #将四张图放在一起,调整边界。(以后也采用此行)
plot(size,effort) #图4-4(a)
plot(log(size),log(effort)) #图4-4(b)
#绘制频率分布直方图
hist(effort) #图4-5(a)
hist(size) #图4-5(b)

  

effor 和 size 这两个变量的频率分布图表明,它们并不满足正态分布。为了接近正态分布,必须变换这些变量(通过频率分布图判断变量是否满足正态分布)

1.先进行基本的线性回归,利用得到的模型进行box-cox变换

lm1=lm(effort~size+t14)  #拟合线性回归模型
summary(lm1)
#绘制残差图进行残差分析
plot(fitted(lm1),resid(lm1),cex=1.2,pch=21,col="red",bg="orange",xlab="Fitted value",ylab="Residuals")
boxcox(lm1,lambda=seq(0,1,by=0.1)) #进行box-cox变换

  

从残差图可以看到误差项不满足Gauss-Markov假设。

右图的Box-Cox变换建议问哦们λ可以取在[0.05,0.6]范围内,对投入工作量(effort) 取对数有一定的可信度(λ=0 几乎落在置信域内)

进行对数变换

lm2=lm(log(effort)~size+t14)
summary(lm2)
#绘制残差图
plot(fitted(lm2),resid(lm2),cex=1.2,pch=21,col="red",bg="orange",xlab="Fitted value",ylab="Residuals")

  

书上的结果时残差范围大致在[-25,40]内,不满足Gauss-Markov假设

与书上结果不符,上图参擦汗图表示这个模型是可行的。

2.试图拟合 effort 与 log(size),t14 的回归方程。

lm3=lm(effort~log(size)+t14)
summary(lm3)
#绘制残差图
plot(fitted(lm3),resid(lm3),cex=1.2,pch=21,col="red",bg="orange",xlab="Fitted value",ylab="Residuals")
#box-cox变换求λ
boxcox(lm3,lambda=seq(0,1,by=0.1))

  

根据右图,Box-Cox变换建议我们取 λ=0

建立如下方程 ln(effort) = β0 + β1ln(size) + β2 t14 + e

lm4=lm(log(effort)~log(size)+t14) #进行线性回归
summary(lm4)
#绘制残差图
plot(fitted(lm4),resid(lm4),cex=1.2,pch=21,col="red",bg="orange",xlab="Fitted value",ylab="Residuals")
#进行box-cox变换
boxcox(lm4,lambda=seq(0,1,by=0.1))

因为λ=1 包含在box-cox图像所示的置信域内,说明不进行变换也是ok的

而且通过残差分析,可以看出这个模型是合理的。

R 对数变换 《回归分析与线性统计模型》page103的更多相关文章

  1. R 《回归分析与线性统计模型》page120,4.3

    #P120习题4.3 rm(list = ls()) A = read.xlsx("xiti_4.xlsx",sheet = 3) names(A) = c("ord&q ...

  2. R 《回归分析与线性统计模型》page93.6

    rm(list = ls()) #数据处理 library(openxlsx) library(car) library(lmtest) data = read.xlsx("xiti4.xl ...

  3. R 《回归分析与线性统计模型》page164 单变量、多变量多项式模型

    --多项式回归模型 --单变量多项式模型 --多变量多项式模型 rm(list = ls()) library(openxlsx) library(leaps) #单变量多项式模型# data = r ...

  4. R 《回归分析与线性统计模型》page141,5.2

    rm(list = ls()) library(car) library(MASS) library(openxlsx) A = read.xlsx("data141.xlsx") ...

  5. R 《回归分析与线性统计模型》page140,5.1

    rm(list = ls()) library(car) library(MASS) library(openxlsx) A = read.xlsx("data140.xlsx") ...

  6. R 《回归分析与线性统计模型》page121,4.4

    rm(list = ls()) A = read.xlsx("xiti_4.xlsx",sheet = 4) names(A) = c("ord"," ...

  7. R 《回归分析与线性统计模型》page119,4.2

    rm(list = ls()) library(openxlsx) library(MASS) data = read.xlsx("xiti_4.xlsx",sheet = 2) ...

  8. R语言 线性回归分析实例 《回归分析与线性统计模型》page72

    y,X1,X2,X3 分别表示第 t 年各项税收收入(亿元),某国生产总值GDP(亿元),财政支出(亿元)和商品零售价格指数(%). (1) 建立线性模型: ① 自己编写函数: > librar ...

  9. R WLS矫正方差非齐《回归分析与线性统计模型》page115

    rm(list = ls()) A = read.csv("data115.csv") fm = lm(y~x1+x2,data = A) coef(fm) A.cooks = c ...

随机推荐

  1. Android开发遇到的问题:不给include设置width、height,导致ListView GridView内容无法显示

    我的目的是做一个带有TextView的ListView列表页面. 以下是这个页面的xml: <?xml version="1.0" encoding="utf-8& ...

  2. 从npz文件中读取图片并显示的小例子

    前提:我把自己的数据集存成了npz的形式,也就是npy的压缩形式.如果电脑上安装了解压软件,双击npz文件的话,会出现每一部分压缩文件的名字例如npz文件的名称为:mnist.npz文件,用好压解压软 ...

  3. nginx防盗链处理模块referer和secure_link模块

    使用场景:某网站听过URI引用你的页面:当用户在网站点击url时:http头部会通过referer头部,将该网站当前页面的url带上,告诉服务本次请求是由这个页面发起的 思路:通过referer模块, ...

  4. 吴裕雄--天生自然PythonDjangoWeb企业开发:解决Pythonno module named "XX"问题

    在项目中加入 sys.path.append('你的django项目路径') sys.path.append('python的site-packages路径')

  5. Java 常用转换

    日期转换 SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = ft.par ...

  6. android 简单列表对话框(AlertDialog.Builder().setItems())

    ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...

  7. FF获6亿美元投资九城或许比贾跃亭更着急

    互联网企业第九城市(以下简称"九城")确认,已透过旗下子公司与总部位于美国加州的法拉第未来公司签定协议,双方共同建立合资公司,在中国制造.营销及运营电动汽车.根据合资公司协议条款, ...

  8. JAVA--文件内容属性替换

    说明:文件中执行内容是变量,随着环境不同会配置不同,在程序启动后,读取配置进行变量替换 1.测试类如下: public class FileUtilsTest { //public static bo ...

  9. 把链接生成二维码 二维码中间带有logo

    在工程中引入三个文件jquery.qrcode.js.qrcode.js.utf.js.其中utf.js文件是防止链接中的参数出现中文乱码现象 jquery.qrcode.js文件 function ...

  10. Nodejs回调加超时限制两种实现方法

    odejs回调加超时限制两种实现方法 Nodejs下的IO操作都是异步的,有时候异步请求返回太慢,不想无限等待回调怎么办呢?我们可以给回调函数加一个超时限制,到一定时间还没有回调就表示失败,继续后面的 ...