用局部加权回归观察二位变量的关系,且用MSE来检验回归
来源:互联网 发布:追风软件怎么用 编辑:程序博客网 时间:2024/05/22 10:49
首先有一个二维的变量
> setwd("e:/gh")> ll <- read.table("ll.txt",header=T)> setwd("e:/gh")> ll <- read.table("ll.txt",header=T)> head(ll) water.urban water.rural1 92 802 70 403 79 604 100 905 82 446 90 78
> plot(ll, pch = 20, col = rgb(0, 0, 0, 0.5))
做lowess回归
par(las = 1, mar = c(4, 4, 0.1, 0.1))plot(ll, pch = 20, col = rgb(0, 0, 0, 0.5))for (i in seq(0.01, 1, length = 50)) { lines(lowess(sort(ll$water.urban), sort(ll$water.rural), f = i), col = gray(i), lwd = 1.5) }
做线性回归
par(las = 1, mar = c(4, 4, 0.1, 0.1), mgp = c(2.5,1, 0))plot(ll, pch = 20, col = rgb(0, 0, 0, 0.5))abline(lm(ll$water.rural~ ll$water.urban), lwd = 2, col = "red")
验证lowess的稳定性
set.seed(711)par(las = 1, mar = c(4, 4, 0.1, 0.1), mgp = c(2.5,1, 0))plot(ll, pch = 20, col = rgb(0, 0, 0, 0.5))for (i in 1:200) { idx = sample(nrow(ll), 100, TRUE) lines(lowess(sort(ll$water.urban[idx]), sort(ll$water.rural[idx])), col = rgb(0,0, 0, 0.05), lwd = 1.5) }
在比例越少的点越稀疏
验证两种回归的优劣,我们用MSE
model1 <- lm(water.rural ~ water.urban, ll) model2 <- loess(water.rural ~ water.urban, ll) predictedY1 <- predict(model1, ll) rmse <- function(error) { sqrt(mean(error^2)) } error1 <- model1$residuals # same as data$Y - predictedY rmse(error1)
</pre><p></p><p>[1] 16.70011</p><p></p><pre name="code" class="plain"><pre name="code" class="plain"> predictedY2 <- predict(model2,ll) error2 <- ll$water.rural - predictedY2 rmse(error2)
[1] 14.65294
可以得到loess回归比lm回归效果好
参考:
用局部加权回归散点平滑法观察二维变量之间的关系
0 0
- 用局部加权回归观察二位变量的关系,且用MSE来检验回归
- matlab 局部加权回归
- 详解局部加权回归
- 局部加权回归
- 局部加权线性回归
- 局部加权回归
- 局部加权回归
- 局部加权回归
- 局部加权回归
- 局部加权线性回归
- 局部加权回归
- 局部加权回归
- 局部加权回归
- 局部加权回归
- 局部加权线性回归
- 局部加权回归
- 局部加权线性回归
- 局部加权线性回归
- 内部类知识点整合
- Android获取drawable下所有资源文件id
- 病毒木马查杀实战第003篇:熊猫烧香之行为分析
- 扯1
- hdu1431素数回文
- 用局部加权回归观察二位变量的关系,且用MSE来检验回归
- C/C++中##符号的使用
- 多态学习续 抽象类和接口
- 基于套接字实现本地进程间的通信
- 第十一周上机实践项目——存钱
- 第四章 思维导图
- 第十周上机项目6 贪财的富翁
- 加快了世界的疯了快解放路口附近了款式大方
- 十一月学习计划