本篇文章是PH525x series课程中Linear models and randomness的练习章节,下面是我自己做的答案,emmmmm,不保证对。
Q1:
g = 9.8
h0 = 56.67
v0 = 0
n = 25
tt = seq(0,3.4,len=n)
y = h0 + v0 *tt - 0.5* g*tt^2 + rnorm(n,sd=1)
在自由落体问题中,圆球距离地面的高度的计算公式为
,假如我们不知道
,
和
的具体值,就需要通过线性回归的方法进行评估:
注意,那么如果在R中通过如下代码计算LSE:
n = 25
tt = seq(0,3.4,len=n)
X <- cbind(1,tt,tt^2)
A <- solve(crossprod(X))%*%t(X)
那么如下哪个选项是的LSE ?
- A) 9.8
- B) A%*% y
- C) -2 * (A %*% y)[3]
- D) A[3,3]
根据公式
可知,该题在计算
时少乘了一个
,通过正确的计算公式会得到3个
值,分别对应着
、
和
,而题目中已给出提示:
,所以应该选择C
Q2:
上述代码使用了rnorm()
函数生成随机误差,这就意味着每重复一次代码,的评估值就会不同。现在要求使用
replicate()
函数重复运行上述代码100,000次,每次均计算的估计值。那么这个估计值的标准误是多少?
首先,一个估计值的标准误其实就是该估计值采样分布的标准差。所以,在R中我们可以:
n = 25
tt = seq(0,3.4,len=n)
X <- cbind(1,tt,tt^2)
calg <- function(X){
Y <- h0 + v0 *tt - 0.5* g*tt^2 + rnorm(n,sd=1)
lse <- solve(crossprod(X))%*%t(X)%*%Y
-2*lse[3]
}
rep <- replicate(100000,calg(X))
head(rep)
#[1] 10.441920 10.126645 9.555041 10.085362 9.385787 9.878968
sd(rep)
#[1] 0.4297456
所以估计值的标准误是0.4297456
Q3:
如果假设父与子身高数据是完整的群体数据,现在我们分别从父亲与儿子群体中随机采50个样,并重复10,000次,那么斜率估计值的标准误是多少?
library(UsingR)
x = father.son$fheight
y = father.son$sheight
n = length(y)
N = 50
coef <- function(dat){
index = sample(n,N)
sampledat = dat[index,]
x = sampledat$fheight
y = sampledat$sheight
lm(y~x)$coef
}
rep <- replicate(10000,coef(father.son))
sd(rep)
#[1] 17.65376
所以答案是17.65376
Q4:
假设,
,那么
和
的协方差定义如下:
那么,下列哪个选项与父与子身高的协方差最接近?
- A)0
- B)-4
- C)4
- D)0.5
library(UsingR)
x = father.son$fheight
y = father.son$sheight
covar <- mean((y-mean(y))*(x-mean(x)))
print(covar)
#[1] 3.869739
所以答案应该选择C
网友评论