Learn R Programming

mgc (version 2.0.2)

mgc.sims.cubic: Cubic Simulation

Description

A function for Generating a cubic simulation.

Usage

mgc.sims.cubic(
  n,
  d,
  eps = 80,
  ind = FALSE,
  a = -1,
  b = 1,
  c.coef = c(-12, 48, 128),
  s = 1/3
)

Arguments

n

the number of samples for the simulation.

d

the number of dimensions for the simulation setting.

eps

the noise level for the simulation. Defaults to 80.

ind

whether to sample x and y independently. Defaults to FALSE.

a

the lower limit for the range of the data matrix. Defaults to -1.

b

the upper limit for the range of the data matrix. Defaults to 1.

c.coef

the coefficients for the cubic function, where the first value is the first order coefficient, the second value the quadratic coefficient, and the third the cubic coefficient. Defaults to c(-12, 48, 128).

s

the scaling for the center of the cubic. Defaults to 1/3.

Value

a list containing the following:

X

[n, d] the data matrix with n samples in d dimensions.

Y

[n] the response array.

Details

Given: \(w_i = \frac{1}{i}\) is a weight-vector that scales with the dimensionality. Simulates \(n\) points from \(Linear(X, Y) \in \mathbf{R}^d \times \mathbf{R}\), where: $$X \sim {U}(a, b)^d$$ $$Y = c_3\left(w^TX - s\right)^3 + c_2\left(w^TX - s\right)^2 + c_1\left(w^TX - s\right) + \kappa \epsilon$$ and \(\kappa = 1\textrm{ if }d = 1, \textrm{ and 0 otherwise}\) controls the noise for higher dimensions.

Examples

Run this code
# NOT RUN {
library(mgc)
result  <- mgc.sims.cubic(n=100, d=10)  # simulate 100 samples in 10 dimensions
X <- result$X; Y <- result$Y
# }

Run the code above in your browser using DataLab