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) #回归学生化残差-响应变量散点图

  

R WLS矫正方差非齐《回归分析与线性统计模型》page115的更多相关文章

  1. R语言 方差稳定化变换与线性变换 《回归分析与线性统计模型》page96

    > rm(list = ls()) > A=read.csv("data96.csv") > A Y N 1 11 0.0950 2 7 0.1920 3 7 0 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. SpringBoot yml文件语法

    SpringBoot提供了大量的默认配置,如果要修改默认配置,需要在配置文件中修改. SpringBoot默认会加载resource下的配置文件: application*.yml applicati ...

  2. C++关键字总结【新手必学】

    const 关键字——常量const 与definedefine是预编译器的编译指令,它从C语言兼容下来,工作方式与文本编辑器中的全局搜索和替换相似.define定义的常量的意义在它开始的地方持续到文 ...

  3. GSS系列题解——最大子段和系列

    开坑啦! 2019 3/28 以前一直不知道怎么搞最大子段和,如今终于可以学习,其实真的很简单啊. 2019 3/29 树链剖分上最大子段和也OK啦 前置技能:线段树 题目大意:询问区间[l,r]的最 ...

  4. Docker示例命令

    1.docker run -t -i -v /root/workspace/node:/home/exam:rw docker.io/node bin/sh    -t 给容器挂载一个伪终端    - ...

  5. Linux centosVMware NFS exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp

    一.exportfs命令 常用选项 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在服务端上 vim /etc/exports //增加 /tmp/ 1 ...

  6. JSTL中获取URL参数

    使用JSTL时,URL会被隐含的对象param包裹起来,使用param.变量名,直接获取值 <body>hello:${param.name}</body> 依据此逻辑,在使用 ...

  7. Linux--常用的linux基本命令学习大全01(适合所有人群)

    常用 Linux 命令的基本使用 序号 命令 对应英文 作用 01 ls list 查看当前文件夹下的内容 02 pwd print wrok directory 查看当前所在文件夹 03 cd [目 ...

  8. C语言笔记 13_排序算法

    排序算法 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小.首字母从A到Z)错误就把他们交换过来. 过程 ...

  9. 算法设计与分析 - AC 题目 - 第 5 弹(重复第 2 弹)

    PTA-算法设计与分析-AC原题 - 最大子列和问题 (20分) 给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+, ..., Nj },其中 ≤i ...

  10. c-指针的理解

    c-指针的理解 最近在学习MFC,其中的代码有点看的不是很深刻,究其原因还是对c语言中的指针理解的不是很好,下面详细的给大家介绍一下指针,如有不当之处,欢迎各位读者指正. 一.指针的概念 C语言里,变 ...