R回归诊断广义线性模型非线性模型

回归诊断
样本是否符合正态分布假设?
是否存在离群值导致模型产生较大误差?
线性模型是否合理?
误差是否满足独立性、等方差、正态分布等假设条件?

是否存在多重共线性?


正态分布检验
正态性检验:函数shapiro.test()
P>0.05,正态性分布 0.05的p值通常被认为是可接受错误的边界水平(p-value) 方差分析,F检验不显著,Pr>0.05
p值为结果可信程度的一个递减指标,p值越大,我们越不能认为样本中变量的关联是总体中各变量关联的可靠指标。p值是将观察结果认为有效即具有总体代表性的犯错概率
num=seq(10378001,10378100)
x1=round(runif(100,min=80,max=100))
x2=round(rnorm(100,mean=80,sd=7))
x3=round(rnorm(100,mean=83,sd=18))
x3[which(x3>100)]=100
x=data.frame(num,x1,x2,x3)
shapiro.test(x$x1)

残差
残差计算函数residuals()
对残差作正态性检验
标准残差图
yn.rst<-rstandard(lm.new); yn.fit<-predict(lm.new)
plot(yn.rst~yn.fit)
iris
z<-lm(iris$Sepal.Length~iris$Sepal.Width)
plot(z)

多重共线性
kappa()函数   
κ < 100多重共线性很小
100 ≤ κ ≤ 1000多重共线性中等
κ > 1000多重共线性很强

广义线性模型
符合logistic回归模型的曲线特征
a=c(0:5)
b=c(0,0.129,0.3,0.671,0.857,0.9)
plot(a,b)
广义线性模型建模函数:glm()
norell <-data.frame(x=0:5,n = rep(70,6),success=c(0,9,21,47,60,63))
norell$Ymat<-cbind (norell$success,norell$n-norell$success)
glm.sol <-glm(Ymat~x,family= binomial,data= norell)
summary(glm.sol)
非线性模型
x=c(1.5,2.8,4.5,7.5,10.5,13.5,15.1,16.5,19.5,22.5,24.5,26.5)
y=c(7.0,5.5,4.6,3.6,2.9,2.7,2.5,2.4,2.2,2.1,1.9,1.8)
plot(x,y)
直线回归( R2值不理想)
lm.1=lm(y~x)
summary(lm.1)
多项式回归,假设用二次多项式方程y=a+bx+cx2
xl=x
x2=x^2
lm.2=lm(y~xl+x2)
summary(lm.2)
plot(x,y)
lines(x,fitted(lm.2))
对数法, y=a+blogx
lm.log=lm(y~log(x))
summary(lm.log)
plot(x,y)
lines(x,fitted(lm.log))
指数法, y=aebx
lm.exp=lm(log(y)~x)
summary(lm.exp)
plot(x,y)
lines(x,exp(fitted(lm.exp)))
幂函数法, y=a xb
lm.pow=lm(log(y)~log(x))
summary(lm.pow)
plot(x,y)
lines(x,exp(fitted(lm.pow)))
对比以上各种拟台回归过程得出结论是幂函数法为最佳

你可能感兴趣的:(R,R,回归诊断,广义线性模型,非线性模型)