R语言入门——验证多元回归的参数估计的无偏性

Posted 统计学小王子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言入门——验证多元回归的参数估计的无偏性相关的知识,希望对你有一定的参考价值。

目录

引言

多元回归最小二乘估计具有无偏性,本文使用R语言产生随机数对其进行验证。

正文

因为代码思路比较简单,下面直接贴代码:

# 生成数据的函数
getData <- function(n = 200, p = 3, Beta = rep(1, p))
  library(MASS)
  x <- mvrnorm(n, rep(0, p), diag(rep(1, p)))
  names(x) <- paste0('x', 1:p)
  y <- x %*% Beta + rnorm(n, 0, 0.5)
  Data <- data.frame(y = y, x)
  Data

head(getData())

# 模拟回归100次数
N <- 100  # 模拟次数
n <- 200  # 数据观测数目
p <- 3  # 数据维度
Beta <- rep(1, p)
Betas <- c()
for(i in 1:N)
  Data <- getData(n = n, p = p, Beta = Beta)
  Betas <- rbind(Betas, coef(lm(y ~ ., data = Data)))

apply(Betas, 2, mean)  # 参数的均值
apply(Betas, 2, sd)  # 参数的标准差

运行结果及其分析

> # 生成数据的函数
> getData <- function(n = 200, p = 3, Beta = rep(1, p))
+   library(MASS)
+   x <- mvrnorm(n, rep(0, p), diag(rep(1, p)))
+   names(x) <- paste0('x', 1:p)
+   y <- x %*% Beta + rnorm(n, 0, 0.5)
+   Data <- data.frame(y = y, x)
+   Data
+ 
> head(getData())
           y          X1          X2         X3
1  0.7932604  0.48820965 -0.01480737 -0.3723186
2 -0.9680377  0.14235156 -1.99860809  0.7086567
3  0.3621666  0.06698623  1.61645079 -1.3548245
4 -0.9179620 -0.23171607 -0.67800670 -0.8005901
5 -1.9953379 -0.13448550 -1.66061661 -0.5242462
6 -2.4101698 -0.71158736 -1.01674407 -0.2235694
> 
> # 模拟回归100次数
> N <- 100  # 模拟次数
> n <- 200  # 数据观测数目
> p <- 3  # 数据维度
> Beta <- rep(1, p)
> Betas <- c()
> for(i in 1:N)
+   Data <- getData(n = n, p = p, Beta = Beta)
+   Betas <- rbind(Betas, coef(lm(y ~ ., data = Data)))
+ 
> apply(Betas, 2, mean)  # 参数的均值
 (Intercept)           X1           X2           X3 
-0.005987145  0.999723174  0.999818314  1.000606621 
> apply(Betas, 2, sd)  # 参数的标准差
(Intercept)          X1          X2          X3 
 0.03155636  0.03464782  0.03645126  0.03499957 
> 

可以看出100次模拟的均值和真实值比较接近。

总结

希望可以帮助大家提高R水平。
水平有限发现错误还望及时评论区指正,您的意见和批评是我不断前进的动力。

以上是关于R语言入门——验证多元回归的参数估计的无偏性的主要内容,如果未能解决你的问题,请参考以下文章

R语言入门——验证多元回归的参数估计的无偏性

R语言入门——CV岭参数的选择

R语言入门——CV岭参数的选择

R语言入门——CV岭参数的选择

R语言入门——CV岭参数的选择

R语言构建多元线性回归模型