Statistic Helper 开发自查帮助文档(五):Sliced inverse regression
本次仅介绍一个内容,SIR,SIR的基本原理有点像非参里的naive density估计,是使用x的附近观察值给定回归值。我们使用在dr包中的dr()来实现。
首先产生模拟数据
# Simulate data
set.seed(10)
n <- 100
p <- 5
epsilon <- rnorm(n)
X <- matrix(rnorm(n*p), n, p)
beta <- c(1,1,1,1,0)
y <- X%*%beta + epsilo
# SIR
library(dr)
H <- 10
fit <- dr(formula =y~ X, nslices = H, method = "sir")
summary(fit)
进一步处理
egv <- fit$evalues # extract eigenvalues
evec <- fit$evectors # extract eigenvectors
round(egv,3)
卡方检验
# chi square test
Kval <- 0:3 # values of K to test
statistic <- matrix(0, length(Kval), 5) # matrix for storing statistics and p-values
for (i in 1:length(Kval)){
K <- Kval[i] # value of K
statistic[i,1] <- K + C