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) #回归学生化残差-响应变量散点图
R WLS矫正方差非齐《回归分析与线性统计模型》page115的更多相关文章
- R语言 方差稳定化变换与线性变换 《回归分析与线性统计模型》page96
> rm(list = ls()) > A=read.csv("data96.csv") > A Y N 1 11 0.0950 2 7 0.1920 3 7 0 ...
- R语言 线性回归分析实例 《回归分析与线性统计模型》page72
y,X1,X2,X3 分别表示第 t 年各项税收收入(亿元),某国生产总值GDP(亿元),财政支出(亿元)和商品零售价格指数(%). (1) 建立线性模型: ① 自己编写函数: > librar ...
- R 《回归分析与线性统计模型》page93.6
rm(list = ls()) #数据处理 library(openxlsx) library(car) library(lmtest) data = read.xlsx("xiti4.xl ...
- R 《回归分析与线性统计模型》page121,4.4
rm(list = ls()) A = read.xlsx("xiti_4.xlsx",sheet = 4) names(A) = c("ord"," ...
- R 《回归分析与线性统计模型》page120,4.3
#P120习题4.3 rm(list = ls()) A = read.xlsx("xiti_4.xlsx",sheet = 3) names(A) = c("ord&q ...
- R 《回归分析与线性统计模型》page119,4.2
rm(list = ls()) library(openxlsx) library(MASS) data = read.xlsx("xiti_4.xlsx",sheet = 2) ...
- R 《回归分析与线性统计模型》page164 单变量、多变量多项式模型
--多项式回归模型 --单变量多项式模型 --多变量多项式模型 rm(list = ls()) library(openxlsx) library(leaps) #单变量多项式模型# data = r ...
- R 《回归分析与线性统计模型》page141,5.2
rm(list = ls()) library(car) library(MASS) library(openxlsx) A = read.xlsx("data141.xlsx") ...
- R 《回归分析与线性统计模型》page140,5.1
rm(list = ls()) library(car) library(MASS) library(openxlsx) A = read.xlsx("data140.xlsx") ...
随机推荐
- 人物 - 安迪·葛洛夫,Andrew Stephen Grove,Andy Grove
安德鲁·史蒂芬·格罗夫英语:Andrew Stephen Grove,昵称安迪·格罗夫(Andy Grove) 1. 前Intel的CEO 2. 1985 年将英特尔带入计算机处理器市场,帮助Inte ...
- 第九届蓝桥杯B组决赛 调手表(完全背包)
问题描述 M78 星云的一个小时有 n 分钟. 大家都知道,手表只有一个按钮可以把当前的数加一.在调分钟的时候,如果当前显示的数是 0 ,那么按一下按钮就会变成 1,再按一次变成 2 .如果当前的数是 ...
- CentOS7虚拟机优化
CentOS7: 将网卡配置重点关注的地方为: [root@master ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=st ...
- 如何往gitlab/github上游贡献代码
Git 是一个开源的分布式版本控制系统,它能够记录每一次改动. 一些概念 仓库:git 中以仓库为单位:每个项目对应一个仓库,如 /eayuntest/Rally./eayuntest/stack 是 ...
- CSP-J2019 纪念品
Description: Solution: 第一天买入,第二天卖出,在干些别的,再把第二天刚卖出的再买回来,就相当于是啥也没干.也就是说手中的物品本身要算在手中的钱中.这也就是为什么 dp 的状态可 ...
- 用华为C8813调试LogCat不显示日志问题解决方法
我用华为C8813调试代码时,Eclipse不输出LogCat日志,用其他Android Pad是正常输出的.找了几种解决方法都不行,最后发现如下的方法,问题解决! 华为Android手机打开Lo ...
- JS垂直落体回弹原理
/* *JS垂直落体回弹原理 */ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- 分段控制器UISegmentedControl的使用、同一个控制器中实现多个View的切换、addChildViewController等方法的使用
本文先讲解简单的分段控制器UISegmentedControl的使用,然后具体讲解它最常使用的场景:同一个控制器中实现多个View的切换. 文章构思: 1.先直接讲解一张UI效果图的四种实现方式. 2 ...
- Acwing897 最长公共子序列
题目大意:求两个字符串的最长公共子序列的长度. 分析:这是一个典型的dp入门题,LCS. 代码: #include<bits/stdc++.h> using namespace std; ...
- 【JS 常用操作】
正则表达式 <script> var str = "(08:30-10:00)"; var patt = /^[(][0-9]{2}:[0-9]{2}-[0-9]{2} ...