zoukankan      html  css  js  c++  java
  • R WLS矫正方差非齐《回归分析与线性统计模型》page115

    rm(list = ls())
    A = read.csv("data115.csv")
    fm = lm(y~x1+x2,data = A)
    coef(fm)
    A.cooks = cooks.distance(fm) #计算cook距离
    new_A = cbind(A,A.cooks) #把原始数据与cook距离放在一个数据框中查看
    new_A[order(A.cooks,decreasing = T),]#按cook距离降序排列

    显示西藏地区数据对应的cook统计量明显过大,不能放入建模分析中

    A = A[-26,] #剔除西藏数据
    fm1 = lm(y~x1+x2,data = A)
    summary(fm1)
    anova(fm1) 
    

     

    进行正态性检验、残差分析

    par(mfrow=c(2,2))
    e = resid(fm1)
    d = e/sqrt(deviance(fm1)/27) #标准化残差
    hist(d,probability = T)      #绘制回归标准化残差概率图
    lines(density(d),col='red')  #添加回归线
    
    qqnorm(d) #QQ图正态性检验
    qqline(d) #添加趋势线
    
    r = rstudent(fm1)
    plot(A$y,r,ylim = c(-1,4),xlim = c(1000,6000)) #标准化残差关于响应变量图
    

      

     显示存在异方差

    利用WLS修正异方差

    #利用WLS修正异方差
    se = deviance(fm1)/30  #计算全模型的1/n残差平方和
    #S1
    A1 = A[A$jbh==1,]
    lm1 = lm(y~x1+x2,data = A1)
    sig1 = deviance(lm1)/lm1$df #σ^2的估计
    csq1 = sig1/se              #WLS方法所需要的权重
    #S2
    A2 = A[A$jbh==2,]
    lm2 = lm(y~x1+x2,data = A2)
    sig2 = deviance(lm2)/lm2$df
    csq2 = sig2/se
    #S3
    A3 = A[A$jbh==3,]
    lm3 = lm(y~x1+x2,data = A3)
    sig3 = deviance(lm3)/lm3$df
    csq3 = sig3/se
    #S4
    A4 = A[A$jbh==4,]
    lm4 = lm(y~x1+x2,data = A4)
    sig4 = deviance(lm4)/lm4$df
    csq4 = sig4/se
    

      人均教育经费数据WLS估计结果:

    #人均教育经费数据WLS估计结果
    nj = c(nrow(A1),nrow(A2),nrow(A3),nrow(A4))
    cj = c(csq1,csq2,csq3,csq4) #权重
    #数据变换,除以相应的权重
    Y = c(A1$y/cj[1],A2$y/cj[2],A3$y/cj[3],A4$y/cj[4])
    X1 = c(A1$x1/cj[1],A2$x1/cj[2],A3$x1/cj[3],A4$x1/cj[4])
    X2 = c(A1$x2/cj[1],A2$x2/cj[2],A3$x2/cj[3],A4$x2/cj[4])
    
    lm_res = lm(Y~X1+X2)
    summary(lm_res)
    

      

    #残差分析、正态性检验
    par(mfrow=c(2,2))
    e = resid(lm_res)
    d = e/sqrt(deviance(lm_res)/27) #标准化残差
    hist(d,probability = T)      #绘制回归标准化残差概率图
    lines(density(d),col='red')  #添加回归线
    
    qqnorm(d) #QQ图正态性检验
    qqline(d) #添加趋势线
    
    r = rstudent(lm_res)
    plot(Y,r) #回归学生化残差-响应变量散点图
    

      

  • 相关阅读:
    python基础学习-无参装饰器
    python基础学习-day16==课后作业练习(函数对象和闭包)
    python基础学习-函数闭包
    python基础学习-函数对象与函数嵌套
    4.15作业
    反射、元类
    Mixins、多态、绑定方法与非绑定方法
    propety装饰器、继承
    封装
    4.8作业
  • 原文地址:https://www.cnblogs.com/jiaxinwei/p/11758137.html
Copyright © 2011-2022 走看看