lm参数估计

时间:2019-01-03 15:56:23

标签: r parameters lm

错误变量长度不同

我对此错误感到困惑,我不知道该怎么办。

n1<-20
m1<-0
sd1<-1
y<-rnorm(n1,m1, sd1)
x<-rnorm(n1,m1, sd1)
e<-rnorm(n1,m1, sd1)
b0<-0
b1<-1

modelfit1<-lm(y~ b0 + b1*x + e)
Error in model.frame.default(formula = y ~ b0 + b1 * x + e:
variable lengths differ (found for 'b0')

编辑: 我正在研究n = 20,参数b0 = 0和b = 1为true且独立和误差均值均值为0和sd = 1的情况。 这可能吗?

非常感谢!

2 个答案:

答案 0 :(得分:2)

我可能是错的,但是我相信您想模拟一个结果,然后估计它的参数。如果是这样,您宁愿执行以下操作:

n1 <- 20
m1 <- 0
sd1<- 1
b0 <- 0
b1 <- 1

x <- rnorm(n1,m1, sd1)
e <- rnorm(n1,m1, sd1)


y <- b0 + b1*x + e
summary(lm(y~x))

Call:
lm(formula = y ~ x)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.66052 -0.40203  0.05659  0.44115  1.38798 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -0.3078     0.1951  -1.578    0.132    
x             1.1774     0.2292   5.137  6.9e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.852 on 18 degrees of freedom
Multiple R-squared:  0.5945,    Adjusted R-squared:  0.572 
F-statistic: 26.39 on 1 and 18 DF,  p-value: 6.903e-05

如果要多次执行此操作,请考虑以下事项:

repetitions <- 5
betas <- t(sapply(1:repetitions, function(i){
  y <- b0 + b1*x + rnorm(n1,m1, sd1)
  coefficients(lm(y~x))
  }))
betas
     (Intercept)         x
[1,]  0.21989182 0.8185690
[2,] -0.12820726 0.7289041
[3,] -0.27596844 0.9794432
[4,]  0.06145306 1.0575050
[5,] -0.31429950 0.9984262

现在,您可以查看估计的beta的平均值:

colMeans(betas)
(Intercept)           x 
-0.08742606  0.91656951 

和方差-协方差矩阵:

var(betas)
             (Intercept)            x
(Intercept)  0.051323041 -0.007976803
x           -0.007976803  0.018834711

答案 1 :(得分:1)

我建议您将所有内容都放在Dir中,并按照以下方式处理:

data.frame

现在一切正常:

set.seed(2)
m1<-0
sd1<-1
y<-rnorm(n1,m1, sd1)
x<-rnorm(n1,m1, sd1)
b0<-0
b1<-1

d <- data.frame(y,b0,b1,x,e=rnorm(20,0,1))
head(d)
#             y b0 b1            x          e
# 1 -0.89691455  0  1  2.090819205 -0.3835862
# 2  0.18484918  0  1 -1.199925820 -1.9591032
# 3  1.58784533  0  1  1.589638200 -0.8417051
# 4 -1.13037567  0  1  1.954651642  1.9035475
# 5 -0.08025176  0  1  0.004937777  0.6224939
# 6  0.13242028  0  1 -2.451706388  1.9909204