data<-data.frame() #数据框的构建
异常值诊断
```r
y=c(160,260,210,265,240,220,275,160,275,250)
x1=c(70,75,65,74,72,68,78,66,70,65)
x2=c(35,40,40,42,38,45,42,36,44,42)
x3=c(1,2.4,2,3,1.2,1.5,4,2,3.2,3)
shuju<-data.frame(y,x1,x2,x3)
shuju
lm1=lm(y~.,data=shuju)#(2)求三元线性回归方程(3)拟合优度检验
summary(lm1)
#异常值与强影响点
#残差
shuju.stdres<-rstudent(lm1);
#中心化杠杆值
ch<-hatvalues(lm1)-1/10;
#Cook距离
shuju.cooks<-cooks.distance(lm1);
#找异常值
isoutlier<-abs(shuju.stdres)>3;
isoutlier #残差选择正负3倍标准差以外的
isch<-ch>2*1/10;
isch #杠杆值大于两倍的hba
iscooks<-shuju.cooks>1;
iscooks #库克距离大于1的
R语言进行box-cox转换:
library(MASS)
b <- boxcox(y ~ x1 + x2 + x3 + x4, data=data)
b
lambda <- b$x
lik <- b$y
bc <- cbind(lambda, lik)
bc[order(-lik),]#结果λ=-0.3时lik值最大,因此λ取值-0.3