itdr is a system for estimating a basis of the
central and central mean subspaces or selecting sufficient dimension
reduction variables in regression using integral transformation methods.
This vignette
demonstrate the usage of functions within the
itdr package across various datasets, including
automobile
, recumbent
,pdb
,
prostate
, and raman
.
The itdr R package can be installed in three ways:
From the Comprehensive R Archive Network (CRAN): Utilize the
install.packages()
function in R. Then, import the
itdr
package into the working session using the
library()
function. That is,
From the binary source package: Use the
intall.package()
function in R. Then, import the
itdr package into the working session using the
library()
function. That is,
install_github()
function in R
devtools
package as follows.This section provides an overview of the functions within the
itdr package that utilize the Fourier transformation
method to estimate sufficient dimension reduction (SDR) subspaces in
regression. Specifically, we focus on the Fourier transformation method.
However, by passing the argument method="CM"
to the
itdr()
function, the convolution transformation method can
be employed.
Before estimating the SDR subspaces, it is essential to determine the
dimension (d) of the SDR subspace and tuning parameters
sw2
, and st2
. Section 2.1 demonstrates the
estimation of dimension (d) is demonstrated. The estimation of the
tuning parameter sw2
for both the central subspace (CS) and
the central mean subspace (CMS), is explained in Section 2.2.1.
Moreover, Section 2.2.2 outlines the estimation of st2
for
the central subspace (CS). Finally, The practical application of the
itdr() function for estimating the central subspace is provided in
Section 2.3.
A bootstrap estimation procedure is employed to estimate the unknown
dimension (d) of sufficient dimension reduction subspaces, as detailed
in Zhu and Zeng (2006). The d.boots()
function can be used
to implement this estimation. To estimate the dimension (d)
of the central subspace of the automobile
dataset, with
response variable \(y\), and predictor
variables \(x\) as specified in Zhu and
Zeng (2006), the following arguments are passed to the
d.boots()
function: space="pdf"
to estimate
the CS, xdensity="normal"
for assuming normal density for
the predictors, and method="FM"
for utilizing the Fourier
transformation method.
library(itdr)
data(automobile)
automobile.na <- na.omit(automobile)
# prepare response and predictor variables
auto_y <- log(automobile.na[, 26])
auto_xx <- automobile.na[, c(10, 11, 12, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25)]
auto_x <- scale(auto_xx) # Standardize the predictors
# call to the d.boots() function with required #arguments
d_est <- d.boots(auto_y, auto_x,
var_plot = TRUE, space = "pdf",
xdensity = "normal", method = "FM"
)
#>
|
| | 0%
|
|===== | 8%
|
|=========== | 15%
|
|================ | 23%
|
|====================== | 31%
|
|=========================== | 38%
|
|================================ | 46%
|
|====================================== | 54%
|
|=========================================== | 62%
|
|================================================ | 69%
|
|====================================================== | 77%
|
|=========================================================== | 85%
|
|================================================================= | 92%
|
|======================================================================| 100%
Here, the estimate of the dimension of the central subspace for ‘automobile’ data is 2, i.e., d_hat=2.
In the process of estimating SDR subspaces using the Fourier method,
two crucial parameters need to be determined: sw2
and
st2
. The sw2
. While sw2
is
required for both the central mean (CMS) and the central subspace (CS),
st2
is only necessary for the central subspace. The code in
Section 2.2.1 demonstrates the use of function wx()
to
estimate the tuning parameter sw2
, while Section 2.2.2
elaborates on using the wy()
function to estimate the
tuning parameter st2
.
sw2
To estimate the tuning parameter sw2
, the
wx()
function is utilized with the subspace option set to
either space="pdf"
for the CS and space="mean"
for the CMS. Other parameters remain fixed during the estimation
process. The following R code chunk demonstrates the estimation of
sw2
for the central subspace.
auto_d <- 2 # The estimated value from Section 2.1
candidate_list<-seq(0.05, 1, by = 0.01)
auto_sw2 <- hyperPara(auto_y, auto_x, auto_d, range = candidate_list,xdensity = "normal", B = 500, space = "pdf", method = "FM", hyper = "wx")
#>
|
| | 0%
|
|= | 1%
|
|= | 2%
|
|== | 3%
|
|=== | 4%
|
|==== | 5%
|
|==== | 6%
|
|===== | 7%
|
|====== | 8%
|
|======= | 9%
|
|======= | 10%
|
|======== | 11%
|
|========= | 12%
|
|========= | 14%
|
|========== | 15%
|
|=========== | 16%
|
|============ | 17%
|
|============ | 18%
|
|============= | 19%
|
|============== | 20%
|
|=============== | 21%
|
|=============== | 22%
|
|================ | 23%
|
|================= | 24%
|
|================== | 25%
|
|================== | 26%
|
|=================== | 27%
|
|==================== | 28%
|
|==================== | 29%
|
|===================== | 30%
|
|====================== | 31%
|
|======================= | 32%
|
|======================= | 33%
|
|======================== | 34%
|
|========================= | 35%
|
|========================== | 36%
|
|========================== | 38%
|
|=========================== | 39%
|
|============================ | 40%
|
|============================ | 41%
|
|============================= | 42%
|
|============================== | 43%
|
|=============================== | 44%
|
|=============================== | 45%
|
|================================ | 46%
|
|================================= | 47%
|
|================================== | 48%
|
|================================== | 49%
|
|=================================== | 50%
|
|==================================== | 51%
|
|==================================== | 52%
|
|===================================== | 53%
|
|====================================== | 54%
|
|======================================= | 55%
|
|======================================= | 56%
|
|======================================== | 57%
|
|========================================= | 58%
|
|========================================== | 59%
|
|========================================== | 60%
|
|=========================================== | 61%
|
|============================================ | 62%
|
|============================================ | 64%
|
|============================================= | 65%
|
|============================================== | 66%
|
|=============================================== | 67%
|
|=============================================== | 68%
|
|================================================ | 69%
|
|================================================= | 70%
|
|================================================== | 71%
|
|================================================== | 72%
|
|=================================================== | 73%
|
|==================================================== | 74%
|
|==================================================== | 75%
|
|===================================================== | 76%
|
|====================================================== | 77%
|
|======================================================= | 78%
|
|======================================================= | 79%
|
|======================================================== | 80%
|
|========================================================= | 81%
|
|========================================================== | 82%
|
|========================================================== | 83%
|
|=========================================================== | 84%
|
|============================================================ | 85%
|
|============================================================= | 86%
|
|============================================================= | 88%
|
|============================================================== | 89%
|
|=============================================================== | 90%
|
|=============================================================== | 91%
|
|================================================================ | 92%
|
|================================================================= | 93%
|
|================================================================== | 94%
|
|================================================================== | 95%
|
|=================================================================== | 96%
|
|==================================================================== | 97%
|
|===================================================================== | 98%
|
|===================================================================== | 99%
|
|======================================================================| 100%
auto_sw2$wx.hat # we get the estimator for sw2 as 0.09
#> [1] 0.05
st2
The estimate of the tuning parameter st2
, the
wy()
function is employed. Other parameters are fixed
during the estimation. Notice that, there is no need to specify the
space
, because the tuning parameter st2
exclusively required for the central subspace (CS).
auto_d <- 2 # Estimated value from Section 2.1
auto_st2 <- hyperPara(auto_y, auto_x, auto_d, wx = 0.1, range = seq(0.1, 1, by = 0.1), xdensity = "normal", method = "FM", hyper = "wy")
#>
|
| | 0%
|
|======= | 10%
|
|============== | 20%
|
|===================== | 30%
|
|============================ | 40%
|
|=================================== | 50%
|
|========================================== | 60%
|
|================================================= | 70%
|
|======================================================== | 80%
|
|=============================================================== | 90%
|
|======================================================================| 100%
auto_st2$wy.hat # we get the estimator for st2=0.9
#> [1] 0.8
h
) of the Gaussian
kernel density functionWhen the distribution function of the predictor variables is unknown,
Gaussian kernel density estimation is utilized to approximate the
density function of the predictor variables. In such cases, the
bandwidth parameter needs to be estimated, especially when
xdensity="kernel"
is specified. The wh()
function uses the bootstrap estimator to estimate the bandwidth of the
Gaussian kernel density estimation.
h_hat <- hyperPara(auto_y, auto_x, auto_d, wx = 5, wy = 0.1, range = seq(0.1, 2, by = .1), space = "pdf", method = "FM", hyper = "wh")
#>
|
| | 0%
|
|==== | 5%
|
|======= | 10%
|
|========== | 15%
|
|============== | 20%
|
|================== | 25%
|
|===================== | 30%
|
|======================== | 35%
|
|============================ | 40%
|
|================================ | 45%
|
|=================================== | 50%
|
|====================================== | 55%
|
|========================================== | 60%
|
|============================================== | 65%
|
|================================================= | 70%
|
|==================================================== | 75%
|
|======================================================== | 80%
|
|============================================================ | 85%
|
|=============================================================== | 90%
|
|================================================================== | 95%
|
|======================================================================| 100%
# Bandwidth estimator for Gaussian kernel density estimation for central subspace
h_hat$h.hat # we have the estimator as h_hat=0.1
#> [1] 0.2
Ensure proper parameterization and selection of options for accurate estimation.
Having outlined the estimation procedure for tuning parameters in the
Fourier method in Sections 2.1-2.2, we are now prepared to estimate the
SDR subspaces. Zhu and Zeng (2006) utilized the Fourier method to
facilitate the estimation of the SDR subspaces when the predictors
follow a multivariate normal distribution. However, when the predictor
variables follow an elliptical distribution or, more generally, when the
distribution of the predictors is unknown, the predictors’ distribution
function is approximated using Gaussian kernel density estimation (Zeng
and Zhu, 2010). The itdr()
function is employed to estimate
the SDR subspaces under the FM
method as follows. Since the
default setting of the itdr()
function has
method="FM"
, it is optional to specify the method as
“FM”.
library(itdr)
data(automobile)
head(automobile)
#> symboling normalized make fuelType aspiration #doors bodyStyle
#> 1 3 NA alfa-romero gas std two convertible
#> 2 3 NA alfa-romero gas std two convertible
#> 3 1 NA alfa-romero gas std two hatchback
#> 4 2 164 audi gas std four sedan
#> 5 2 164 audi gas std four sedan
#> 6 2 NA audi gas std two sedan
#> driveWheel engineLoc wheelBase length width height curbWeight engineType
#> 1 rwd front 88.6 168.8 64.1 48.8 2548 dohc
#> 2 rwd front 88.6 168.8 64.1 48.8 2548 dohc
#> 3 rwd front 94.5 171.2 65.5 52.4 2823 ohcv
#> 4 fwd front 99.8 176.6 66.2 54.3 2337 ohc
#> 5 4wd front 99.4 176.6 66.4 54.3 2824 ohc
#> 6 fwd front 99.8 177.3 66.3 53.1 2507 ohc
#> #Cylinder engineSize fuelSys bore stroke compession norsepower peak_rpm
#> 1 four 130 mpfi 3.47 2.68 9.0 111 5000
#> 2 four 130 mpfi 3.47 2.68 9.0 111 5000
#> 3 six 152 mpfi 2.68 3.47 9.0 154 5000
#> 4 four 109 mpfi 3.19 3.40 10.0 102 5500
#> 5 five 136 mpfi 3.19 3.40 8.0 115 5500
#> 6 five 136 mpfi 3.19 3.40 8.5 110 5500
#> city_rpm highwayMPG price
#> 1 21 27 13495
#> 2 21 27 16500
#> 3 19 26 16500
#> 4 24 30 13950
#> 5 18 22 17450
#> 6 19 25 15250
df <- cbind(automobile[, c(26, 10, 11, 12, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25)])
dff <- as.matrix(df)
automobi <- dff[complete.cases(dff), ]
d <- 2
# Estimated value from Section 2.1
wx <- .14 # Estimated value from Section 2.2.1
wy <- .9 # Estimated value from Section 2.2.2
wh <- 1.5 # Estimated value from Section 2.2.3
p <- 13 # Estimated value from Section 2.3
y <- automobi[, 1]
x <- automobi[, c(2:14)]
xt <- scale(x)
# Distribution of the predictors is a normal distribution
fit.F_CMS <- itdr(y, xt, d, wx, wy, wh, space = "pdf", xdensity = "normal", method = "FM")
round(fit.F_CMS$eta_hat, 2)
#> [,1] [,2]
#> [1,] -0.10 0.33
#> [2,] 0.26 -0.19
#> [3,] 0.07 -0.02
#> [4,] -0.01 -0.13
#> [5,] -0.57 0.28
#> [6,] 0.22 -0.37
#> [7,] -0.04 -0.11
#> [8,] 0.16 0.23
#> [9,] -0.20 -0.15
#> [10,] -0.31 0.18
#> [11,] -0.08 -0.26
#> [12,] -0.49 0.50
#> [13,] 0.36 -0.43
# Distribution of the predictors is a unknown (using kernel method)
fit.F_CMS <- itdr(y, xt, d, wx, wy, wh, space = "pdf", xdensity = "kernel", method = "FM")
round(fit.F_CMS$eta_hat, 2)
#> [,1] [,2]
#> [1,] 0.09 -0.04
#> [2,] 0.01 0.07
#> [3,] -0.01 0.02
#> [4,] 0.01 0.00
#> [5,] -0.19 -0.10
#> [6,] 0.26 0.89
#> [7,] 0.06 -0.32
#> [8,] -0.14 -0.18
#> [9,] -0.89 0.03
#> [10,] -0.07 -0.02
#> [11,] 0.15 0.04
#> [12,] 0.19 0.20
#> [13,] -0.12 -0.10
In this section, we demonstrate the functions within the itdr package related to the Fourier transformation approach on inverse dimension reduction. Section 4.1 illustrates the use of function to estimate the dimension of the central subspace using the Fourier transformation approach on inverse dimension reduction, while Section 4.2 outlines the estimation process for the CS itself.
The estimation of the dimension of the CS can be achieved using the
d.test()
function which provides outputs of three different
p-values for three different test statistics: the Weighted Chi-square
test statistic (Weng and Yin, 2018), the Scaled test statistic (Bentler
and Xie, 2000), and the Adjusted test statistic (Bentler and Xie, 2000).
Suppose m
is the candidate dimension of the CS to be tested
(H_0: d=m)
, then the following R code demonstrates testing
a candidate value m
(<p) for dimension of the CS of the
planning database (PDB).
library(itdr)
data(pdb)
colnames(pdb) <- NULL
p <- 15
# select predictor vecotr (y) and response variables (X) according to Weng and Weng and Yin, (2018).
df <- pdb[, c(79, 73, 77, 103, 112, 115, 124, 130, 132, 145, 149, 151, 153, 155, 167, 169)]
dff <- as.matrix(df)
# remove the NA rows
planingdb <- dff[complete.cases(dff), ]
y <- planingdb[, 1] # n-dimensionl response vector
x <- planingdb[, c(2:(p + 1))] # raw desing matrix
x <- x + 0.5
# desing matrix after tranformations
xt <- cbind(
x[, 1]^(.33), x[, 2]^(.33), x[, 3]^(.57), x[, 4]^(.33), x[, 5]^(.4),
x[, 6]^(.5), x[, 7]^(.33), x[, 8]^(.16), x[, 9]^(.27), x[, 10]^(.5),
x[, 11]^(.5), x[, 12]^(.33), x[, 13]^(.06), x[, 14]^(.15), x[, 15]^(.1)
)
m <- 1
W <- sapply(50, rnorm)
# run the hypothsis tests
d.test(y, x, m)
#> Hypothesis Tests for selecting sufficient dimension (d)
#> Null: d=m vs Alternative: d>m
#>
#> Test W.Ch.Sq Scaled Adjusted
#> p-value 0.9402 1 0.8940887
After selecting the dimension of the CS as described in Section 4.1,
then, an estimator for the CS can be obtained using the
itdr()
function. The following R chunk illustrates the use
of the itdr()
function to estimate the CS for planning
database (PDB).
library(itdr)
data(pdb)
colnames(pdb) <- NULL
p <- 15
# select predictor vecotr (y) and response variables (X) according to Weng and Weng and Yin, (2018).
df <- pdb[, c(79, 73, 77, 103, 112, 115, 124, 130, 132, 145, 149, 151, 153, 155, 167, 169)]
dff <- as.matrix(df)
# remove the NA rows
planingdb <- dff[complete.cases(dff), ]
y <- planingdb[, 1] # n-dimensionl response vector
x <- planingdb[, c(2:(p + 1))] # raw desing matrix
x <- x + 0.5
# desing matrix after tranformations give in Weng and Yin, (2018).
xt <- cbind(
x[, 1]^(.33), x[, 2]^(.33), x[, 3]^(.57), x[, 4]^(.33), x[, 5]^(.4),
x[, 6]^(.5), x[, 7]^(.33), x[, 8]^(.16), x[, 9]^(.27), x[, 10]^(.5),
x[, 11]^(.5), x[, 12]^(.33), x[, 13]^(.06), x[, 14]^(.15), x[, 15]^(.1)
)
d <- 1 # estimated dimension of the CS from Section 4.1
invFM.fit <- itdr(y, x, d, m = 50, method = "invFM", x.scale = FALSE) # estimated basis
betahat <- invFM.fit$eta_hat
plot(y ~ xt %*% betahat,
xlab = "First reduced predictor",
ylab = "Health insurance coverage"
)
Ensure accurate specification of inputs and follow methodological guidelines for reliable estimation.
In this section, we describe the mitdr()
function within
the itdr package, designed to estimates the sufficient
dimension reduction subspaces in multivariate regression using five
different approaches proposed by Weng and Yin (2022). Below is an
example showing the estimation of sufficient dimension reduction
subspace using FT-DRIRE
approach for prostate
dataset (Stamey et al. 1989).
library(itdr)
data(prostate)
X <- as.matrix(prostate[, 1:8])
Y <- matrix(prostate[, 9], ncol = 1)
fit.ftire <- mitdr(X, Y, d = 2, m = 10, method = "FT-IRE")
betahat <- fit.ftire$Beta_hat
betahat
#> [,1] [,2]
#> [1,] -0.643969773 -0.090157354
#> [2,] -0.619511855 -0.255375233
#> [3,] 0.014352745 -0.009681973
#> [4,] -0.136341586 -0.078471708
#> [5,] -0.327797541 0.911485848
#> [6,] 0.165756437 0.043752020
#> [7,] -0.218516733 -0.296112877
#> [8,] -0.006080828 0.000257746
newx <- X %*% betahat
plot(Y ~ newx[, 1],
xlab = "First reduced predictor",
ylab = paste0(expression(log), "(antigen)", sep = "")
)
In this section, we introduce the mitdr()
function
within the itdr package, designed for selecting the
sufficient variables in multivariate regression using Fourier
transformation method (Weng, 2022). The following R chunk demonstrates
the sufficient variable selection for the prostate
dataset
within the itdr package. In this function, we set
lambda=0.5
. However, if lambda is not specified, the cross
validation method is utilized to determine the optimal
labmda
value.
data(raman)
Y <- as.matrix(raman[, c(1100)]) ## percentage of total fat content
X <- as.matrix(raman[c(2:501)]) ## first 500 wavelength variables
out <- mitdr(X, Y, d = 1, m = 30, method = "admmft", lambda = 0.5, sparse.cov = TRUE, x.scale = TRUE)
estbeta <- out$Beta_hat
estbeta
#> [,1]
#> [1,] 0.000000e+00
#> [2,] 0.000000e+00
#> [3,] 0.000000e+00
#> [4,] 0.000000e+00
#> [5,] 0.000000e+00
#> [6,] 0.000000e+00
#> [7,] 0.000000e+00
#> [8,] 0.000000e+00
#> [9,] 0.000000e+00
#> [10,] 0.000000e+00
#> [11,] 0.000000e+00
#> [12,] 0.000000e+00
#> [13,] 0.000000e+00
#> [14,] 0.000000e+00
#> [15,] 0.000000e+00
#> [16,] 0.000000e+00
#> [17,] 0.000000e+00
#> [18,] 0.000000e+00
#> [19,] 0.000000e+00
#> [20,] 0.000000e+00
#> [21,] 0.000000e+00
#> [22,] 0.000000e+00
#> [23,] 0.000000e+00
#> [24,] 0.000000e+00
#> [25,] 0.000000e+00
#> [26,] 0.000000e+00
#> [27,] 0.000000e+00
#> [28,] 0.000000e+00
#> [29,] 0.000000e+00
#> [30,] 0.000000e+00
#> [31,] 0.000000e+00
#> [32,] 0.000000e+00
#> [33,] 0.000000e+00
#> [34,] 0.000000e+00
#> [35,] 0.000000e+00
#> [36,] 0.000000e+00
#> [37,] 0.000000e+00
#> [38,] 0.000000e+00
#> [39,] 0.000000e+00
#> [40,] 0.000000e+00
#> [41,] 0.000000e+00
#> [42,] 0.000000e+00
#> [43,] 0.000000e+00
#> [44,] 0.000000e+00
#> [45,] 0.000000e+00
#> [46,] 0.000000e+00
#> [47,] 0.000000e+00
#> [48,] 0.000000e+00
#> [49,] 0.000000e+00
#> [50,] 0.000000e+00
#> [51,] 0.000000e+00
#> [52,] 0.000000e+00
#> [53,] 0.000000e+00
#> [54,] 0.000000e+00
#> [55,] 0.000000e+00
#> [56,] 0.000000e+00
#> [57,] 0.000000e+00
#> [58,] 0.000000e+00
#> [59,] 0.000000e+00
#> [60,] 0.000000e+00
#> [61,] 0.000000e+00
#> [62,] 0.000000e+00
#> [63,] 0.000000e+00
#> [64,] 0.000000e+00
#> [65,] 0.000000e+00
#> [66,] 0.000000e+00
#> [67,] 0.000000e+00
#> [68,] 0.000000e+00
#> [69,] 0.000000e+00
#> [70,] 0.000000e+00
#> [71,] 0.000000e+00
#> [72,] 0.000000e+00
#> [73,] 0.000000e+00
#> [74,] 0.000000e+00
#> [75,] 0.000000e+00
#> [76,] 0.000000e+00
#> [77,] 0.000000e+00
#> [78,] 0.000000e+00
#> [79,] 0.000000e+00
#> [80,] 0.000000e+00
#> [81,] 0.000000e+00
#> [82,] 0.000000e+00
#> [83,] 0.000000e+00
#> [84,] 0.000000e+00
#> [85,] 0.000000e+00
#> [86,] 0.000000e+00
#> [87,] 0.000000e+00
#> [88,] 0.000000e+00
#> [89,] 0.000000e+00
#> [90,] 0.000000e+00
#> [91,] 0.000000e+00
#> [92,] 0.000000e+00
#> [93,] 0.000000e+00
#> [94,] 0.000000e+00
#> [95,] 0.000000e+00
#> [96,] 0.000000e+00
#> [97,] 0.000000e+00
#> [98,] 0.000000e+00
#> [99,] 0.000000e+00
#> [100,] 0.000000e+00
#> [101,] 0.000000e+00
#> [102,] 0.000000e+00
#> [103,] 0.000000e+00
#> [104,] 0.000000e+00
#> [105,] 0.000000e+00
#> [106,] 0.000000e+00
#> [107,] 0.000000e+00
#> [108,] 0.000000e+00
#> [109,] 0.000000e+00
#> [110,] 0.000000e+00
#> [111,] 0.000000e+00
#> [112,] 0.000000e+00
#> [113,] 0.000000e+00
#> [114,] 0.000000e+00
#> [115,] 0.000000e+00
#> [116,] 0.000000e+00
#> [117,] 0.000000e+00
#> [118,] 0.000000e+00
#> [119,] 0.000000e+00
#> [120,] 0.000000e+00
#> [121,] 0.000000e+00
#> [122,] 0.000000e+00
#> [123,] 0.000000e+00
#> [124,] 0.000000e+00
#> [125,] 0.000000e+00
#> [126,] 0.000000e+00
#> [127,] 0.000000e+00
#> [128,] 0.000000e+00
#> [129,] 0.000000e+00
#> [130,] 0.000000e+00
#> [131,] 0.000000e+00
#> [132,] 0.000000e+00
#> [133,] 0.000000e+00
#> [134,] 0.000000e+00
#> [135,] 0.000000e+00
#> [136,] 0.000000e+00
#> [137,] 0.000000e+00
#> [138,] 0.000000e+00
#> [139,] 0.000000e+00
#> [140,] 0.000000e+00
#> [141,] 0.000000e+00
#> [142,] 0.000000e+00
#> [143,] 0.000000e+00
#> [144,] 0.000000e+00
#> [145,] 0.000000e+00
#> [146,] 0.000000e+00
#> [147,] 0.000000e+00
#> [148,] 0.000000e+00
#> [149,] 0.000000e+00
#> [150,] 0.000000e+00
#> [151,] 0.000000e+00
#> [152,] 0.000000e+00
#> [153,] 0.000000e+00
#> [154,] 0.000000e+00
#> [155,] 0.000000e+00
#> [156,] 0.000000e+00
#> [157,] 0.000000e+00
#> [158,] 0.000000e+00
#> [159,] 0.000000e+00
#> [160,] 0.000000e+00
#> [161,] 0.000000e+00
#> [162,] 0.000000e+00
#> [163,] 0.000000e+00
#> [164,] 0.000000e+00
#> [165,] 0.000000e+00
#> [166,] 0.000000e+00
#> [167,] 0.000000e+00
#> [168,] 0.000000e+00
#> [169,] 0.000000e+00
#> [170,] 0.000000e+00
#> [171,] 0.000000e+00
#> [172,] 8.094899e-02
#> [173,] 9.340679e-02
#> [174,] 8.702066e-02
#> [175,] 3.624656e-02
#> [176,] 2.303719e-03
#> [177,] 0.000000e+00
#> [178,] 0.000000e+00
#> [179,] 0.000000e+00
#> [180,] 0.000000e+00
#> [181,] 0.000000e+00
#> [182,] 0.000000e+00
#> [183,] 0.000000e+00
#> [184,] 0.000000e+00
#> [185,] 0.000000e+00
#> [186,] 0.000000e+00
#> [187,] 0.000000e+00
#> [188,] 0.000000e+00
#> [189,] 0.000000e+00
#> [190,] 0.000000e+00
#> [191,] 0.000000e+00
#> [192,] 0.000000e+00
#> [193,] 0.000000e+00
#> [194,] 0.000000e+00
#> [195,] 0.000000e+00
#> [196,] 0.000000e+00
#> [197,] 0.000000e+00
#> [198,] 0.000000e+00
#> [199,] 0.000000e+00
#> [200,] 0.000000e+00
#> [201,] 2.896689e-02
#> [202,] 0.000000e+00
#> [203,] 0.000000e+00
#> [204,] 0.000000e+00
#> [205,] 0.000000e+00
#> [206,] 0.000000e+00
#> [207,] 0.000000e+00
#> [208,] 0.000000e+00
#> [209,] 0.000000e+00
#> [210,] 0.000000e+00
#> [211,] 3.842068e-03
#> [212,] 2.242065e-02
#> [213,] 3.894770e-02
#> [214,] 4.131642e-02
#> [215,] 3.363109e-02
#> [216,] 1.691766e-02
#> [217,] 8.527541e-05
#> [218,] 0.000000e+00
#> [219,] 0.000000e+00
#> [220,] 0.000000e+00
#> [221,] 0.000000e+00
#> [222,] 0.000000e+00
#> [223,] 0.000000e+00
#> [224,] 0.000000e+00
#> [225,] 0.000000e+00
#> [226,] 0.000000e+00
#> [227,] 0.000000e+00
#> [228,] 0.000000e+00
#> [229,] 0.000000e+00
#> [230,] 0.000000e+00
#> [231,] 0.000000e+00
#> [232,] 0.000000e+00
#> [233,] 0.000000e+00
#> [234,] 0.000000e+00
#> [235,] 0.000000e+00
#> [236,] 0.000000e+00
#> [237,] 0.000000e+00
#> [238,] 0.000000e+00
#> [239,] 0.000000e+00
#> [240,] 0.000000e+00
#> [241,] 0.000000e+00
#> [242,] 0.000000e+00
#> [243,] 0.000000e+00
#> [244,] 0.000000e+00
#> [245,] 0.000000e+00
#> [246,] 0.000000e+00
#> [247,] 0.000000e+00
#> [248,] 0.000000e+00
#> [249,] 0.000000e+00
#> [250,] 0.000000e+00
#> [251,] 0.000000e+00
#> [252,] 0.000000e+00
#> [253,] 0.000000e+00
#> [254,] 0.000000e+00
#> [255,] 0.000000e+00
#> [256,] 0.000000e+00
#> [257,] 0.000000e+00
#> [258,] 0.000000e+00
#> [259,] 0.000000e+00
#> [260,] 0.000000e+00
#> [261,] 0.000000e+00
#> [262,] 0.000000e+00
#> [263,] 0.000000e+00
#> [264,] 0.000000e+00
#> [265,] 0.000000e+00
#> [266,] 0.000000e+00
#> [267,] 0.000000e+00
#> [268,] 0.000000e+00
#> [269,] 0.000000e+00
#> [270,] 0.000000e+00
#> [271,] 0.000000e+00
#> [272,] 0.000000e+00
#> [273,] 0.000000e+00
#> [274,] 0.000000e+00
#> [275,] 0.000000e+00
#> [276,] 0.000000e+00
#> [277,] 0.000000e+00
#> [278,] 0.000000e+00
#> [279,] 0.000000e+00
#> [280,] 0.000000e+00
#> [281,] 0.000000e+00
#> [282,] 0.000000e+00
#> [283,] 0.000000e+00
#> [284,] 0.000000e+00
#> [285,] 0.000000e+00
#> [286,] 0.000000e+00
#> [287,] -9.188155e-03
#> [288,] -5.656722e-02
#> [289,] 0.000000e+00
#> [290,] 0.000000e+00
#> [291,] 0.000000e+00
#> [292,] 0.000000e+00
#> [293,] -4.426014e-03
#> [294,] -3.468028e-02
#> [295,] -1.357250e-01
#> [296,] -2.666228e-01
#> [297,] -1.938313e-01
#> [298,] -3.065940e-02
#> [299,] 0.000000e+00
#> [300,] 0.000000e+00
#> [301,] 0.000000e+00
#> [302,] 0.000000e+00
#> [303,] -3.090996e-02
#> [304,] 0.000000e+00
#> [305,] 0.000000e+00
#> [306,] 0.000000e+00
#> [307,] 0.000000e+00
#> [308,] 0.000000e+00
#> [309,] 0.000000e+00
#> [310,] 0.000000e+00
#> [311,] 0.000000e+00
#> [312,] 0.000000e+00
#> [313,] 0.000000e+00
#> [314,] 0.000000e+00
#> [315,] 0.000000e+00
#> [316,] 0.000000e+00
#> [317,] 0.000000e+00
#> [318,] 0.000000e+00
#> [319,] 0.000000e+00
#> [320,] 0.000000e+00
#> [321,] 0.000000e+00
#> [322,] 0.000000e+00
#> [323,] 0.000000e+00
#> [324,] 0.000000e+00
#> [325,] 0.000000e+00
#> [326,] 0.000000e+00
#> [327,] 0.000000e+00
#> [328,] 0.000000e+00
#> [329,] 0.000000e+00
#> [330,] 0.000000e+00
#> [331,] 0.000000e+00
#> [332,] 0.000000e+00
#> [333,] 0.000000e+00
#> [334,] 0.000000e+00
#> [335,] 0.000000e+00
#> [336,] 0.000000e+00
#> [337,] 0.000000e+00
#> [338,] 0.000000e+00
#> [339,] 0.000000e+00
#> [340,] 0.000000e+00
#> [341,] 0.000000e+00
#> [342,] 0.000000e+00
#> [343,] 0.000000e+00
#> [344,] 0.000000e+00
#> [345,] 0.000000e+00
#> [346,] 0.000000e+00
#> [347,] 0.000000e+00
#> [348,] 0.000000e+00
#> [349,] 0.000000e+00
#> [350,] 0.000000e+00
#> [351,] 0.000000e+00
#> [352,] 0.000000e+00
#> [353,] 0.000000e+00
#> [354,] 0.000000e+00
#> [355,] 0.000000e+00
#> [356,] 0.000000e+00
#> [357,] 0.000000e+00
#> [358,] 0.000000e+00
#> [359,] 0.000000e+00
#> [360,] 0.000000e+00
#> [361,] 0.000000e+00
#> [362,] 0.000000e+00
#> [363,] 0.000000e+00
#> [364,] 0.000000e+00
#> [365,] 0.000000e+00
#> [366,] 0.000000e+00
#> [367,] 0.000000e+00
#> [368,] 0.000000e+00
#> [369,] 0.000000e+00
#> [370,] 0.000000e+00
#> [371,] 0.000000e+00
#> [372,] 0.000000e+00
#> [373,] 0.000000e+00
#> [374,] 0.000000e+00
#> [375,] 0.000000e+00
#> [376,] 0.000000e+00
#> [377,] 0.000000e+00
#> [378,] 0.000000e+00
#> [379,] 0.000000e+00
#> [380,] 0.000000e+00
#> [381,] 0.000000e+00
#> [382,] 0.000000e+00
#> [383,] 0.000000e+00
#> [384,] 4.441353e-03
#> [385,] 6.879104e-02
#> [386,] 0.000000e+00
#> [387,] 0.000000e+00
#> [388,] 0.000000e+00
#> [389,] 0.000000e+00
#> [390,] 0.000000e+00
#> [391,] 0.000000e+00
#> [392,] 0.000000e+00
#> [393,] 3.187450e-02
#> [394,] 2.095483e-02
#> [395,] 3.254466e-02
#> [396,] 6.376723e-02
#> [397,] 1.028400e-01
#> [398,] 0.000000e+00
#> [399,] 0.000000e+00
#> [400,] 0.000000e+00
#> [401,] 2.293092e-01
#> [402,] 5.338155e-01
#> [403,] 8.015938e-01
#> [404,] 8.599921e-01
#> [405,] 9.197933e-01
#> [406,] 8.724288e-01
#> [407,] 8.244904e-01
#> [408,] 7.406288e-01
#> [409,] 6.172213e-01
#> [410,] 3.784696e-01
#> [411,] 1.243440e-01
#> [412,] 0.000000e+00
#> [413,] 0.000000e+00
#> [414,] 9.353183e-02
#> [415,] 1.193982e-02
#> [416,] 0.000000e+00
#> [417,] 0.000000e+00
#> [418,] 0.000000e+00
#> [419,] 0.000000e+00
#> [420,] 0.000000e+00
#> [421,] 0.000000e+00
#> [422,] 0.000000e+00
#> [423,] 0.000000e+00
#> [424,] 0.000000e+00
#> [425,] 0.000000e+00
#> [426,] 0.000000e+00
#> [427,] 0.000000e+00
#> [428,] 0.000000e+00
#> [429,] 0.000000e+00
#> [430,] 0.000000e+00
#> [431,] 0.000000e+00
#> [432,] 0.000000e+00
#> [433,] 0.000000e+00
#> [434,] 0.000000e+00
#> [435,] 0.000000e+00
#> [436,] 0.000000e+00
#> [437,] 0.000000e+00
#> [438,] 0.000000e+00
#> [439,] 0.000000e+00
#> [440,] 0.000000e+00
#> [441,] 2.993085e-02
#> [442,] 0.000000e+00
#> [443,] 0.000000e+00
#> [444,] 0.000000e+00
#> [445,] 0.000000e+00
#> [446,] 9.025034e-02
#> [447,] 1.085285e-01
#> [448,] 0.000000e+00
#> [449,] 0.000000e+00
#> [450,] 0.000000e+00
#> [451,] 1.070827e-01
#> [452,] 2.945133e-03
#> [453,] 0.000000e+00
#> [454,] 0.000000e+00
#> [455,] 0.000000e+00
#> [456,] 0.000000e+00
#> [457,] 0.000000e+00
#> [458,] 0.000000e+00
#> [459,] 0.000000e+00
#> [460,] 0.000000e+00
#> [461,] 0.000000e+00
#> [462,] 0.000000e+00
#> [463,] 0.000000e+00
#> [464,] 0.000000e+00
#> [465,] 0.000000e+00
#> [466,] 0.000000e+00
#> [467,] 0.000000e+00
#> [468,] 0.000000e+00
#> [469,] 0.000000e+00
#> [470,] 0.000000e+00
#> [471,] 0.000000e+00
#> [472,] 0.000000e+00
#> [473,] 0.000000e+00
#> [474,] 0.000000e+00
#> [475,] 0.000000e+00
#> [476,] 0.000000e+00
#> [477,] 0.000000e+00
#> [478,] 0.000000e+00
#> [479,] 0.000000e+00
#> [480,] 0.000000e+00
#> [481,] 0.000000e+00
#> [482,] 0.000000e+00
#> [483,] 0.000000e+00
#> [484,] 0.000000e+00
#> [485,] 0.000000e+00
#> [486,] 0.000000e+00
#> [487,] 0.000000e+00
#> [488,] 0.000000e+00
#> [489,] 0.000000e+00
#> [490,] 0.000000e+00
#> [491,] 0.000000e+00
#> [492,] 0.000000e+00
#> [493,] 0.000000e+00
#> [494,] 0.000000e+00
#> [495,] 0.000000e+00
#> [496,] 0.000000e+00
#> [497,] 0.000000e+00
#> [498,] 0.000000e+00
#> [499,] 0.000000e+00
#> [500,] 0.000000e+00
plot(Y ~ X %*% estbeta,
xlab = "First reduced predictor",
ylab = "Percentage of total fat"
)
The codes for the Fourier transformation and the convolution transformation methods have been adapted from the codes provided by Zhu and Zeng (2006). Moreover, the methods for handling elliptically contoured distributed variables and kernel density estimation are essentially modifications of the programs originally provided by Zeng and Zhu (2010). Furthermore, the code for Fourier transforms approach for the inverse dimension reduction method has been adapted from the code provided by Weng and Yin (2018).
Bentler, P.M., and Xie, J. (2000). Corrections to Test Statistics in Principal Hessian Directions. Statistics and Probability Letters. 47, 381-389.
Cook R. D., and Li, B., (2002). Dimension Reduction for Conditional Mean in Regression. The Annals of Statitics, 30, 455-474.
Stamey, T. A., Kabalin, J. N., McNeal, J. E., Johnstone, I. M., Freiha, F., Redwine, E. A. et al. (1989). Prostate specific antigen in the diagnosis and treatment of adenocarcinoma of the prostate. II. Radical prostatectomy treated patients. The Journal of Urology, 141, 1076-1083.
Weng, J.(2022). Fourier transform sparse inverse regression estimators for sufficient variable selection, Computational Statistics & Data Analysis, 168,107380.
Weng, J., & Yin, X. (2022). A minimum discrepancy approach with fourier transform in sufficient dimension reduction. Stat. Sin., 32.
Weng J. and Yin X. (2018). Fourier Transform Approach for Inverse Dimension Reduction Method. Journal of Nonparametric Statistics. 30, 4, 1029-0311.
Zeng P. and Zhu Y. (2010). An Integral Transform Method for Estimating the Central Mean and Central Subspaces. Journal of Multivariate Analysis. 101, 271–290.
Zhu Y. and Zeng P. (2006). Fourier Methods for Estimating the Central Subspace and Central Mean Subspace in Regression. Journal of the American Statistical Association. 101, 1638–1651.