Генерация набора данных для симуляционного исследования - PullRequest
2 голосов
/ 16 мая 2019

Эта фотография из бумаги Шао и Дэна.

enter image description here

Здесь enter image description here и Q из сингулярного разложения X: enter image description here

Я хочу воспроизвести набор данных на основе этих инструкций. Вот код R, который я написал.

sigma = 10
n = 30 # 100 200
p = 100 # 500 2000 # increasing n/p
Sigma = matrix(0.75, p, p); diag(Sigma) = 1
beta = c(1 + 0.1*(1:20), rep(0, p - 20))
epsilon = rnorm(n, 0, sigma)
X = MASS::mvrnorm(n, rep(0, p), Sigma)
y = X%*%beta + epsilon

Q = svd(X)$v
theta = Q%*%t(Q)%*%beta
thetasq.sort = sort(theta^2)
L2.cpp = cumsum(thetasq.sort)/sum(theta^2)

plot(L2.cpp)

Это сюжеты: 1 (Мой сюжет) 2 (из газеты)

enter image description here

В чем причина разницы?

...