当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R ppr 投影寻踪回归


R语言 ppr 位于 stats 包(package)。

说明

拟合投影寻踪回归模型。

用法

ppr(x, ...)

## S3 method for class 'formula'
ppr(formula, data, weights, subset, na.action,
    contrasts = NULL, ..., model = FALSE)

## Default S3 method:
ppr(x, y, weights = rep(1, n),
    ww = rep(1, q), nterms, max.terms = nterms, optlevel = 2,
    sm.method = c("supsmu", "spline", "gcvspline"),
    bass = 0, span = 0, df = 5, gcvpen = 1, trace = FALSE, ...)

参数

formula

指定一个或多个数字响应变量和解释变量的公式。

x

解释变量的数字矩阵。行代表观察值,列代表变量。不接受缺失值。

y

响应变量的数字矩阵。行代表观察值,列代表变量。不接受缺失值。

nterms

最终模型中包含的项数。

data

一个数据帧(或类似的:参见 model.frame ),优先从中获取 formula 中指定的变量。

weights

每种情况的权重向量w_i

ww

每个响应的权重向量,因此拟合标准是 w_i ww_j (y_ij - fit_ij)^2 的案例 i 和响应 j 的总和除以 w_i 的总和。

subset

指定训练样本中使用的情况的索引向量。 (注意:如果给出,则必须命名该参数。)

na.action

一个函数,用于指定找到 NA 时要采取的操作。默认操作由 getOption("na.action") 给出。 (注意:如果给出,则必须命名该参数。)

contrasts

对任何因子解释变量进行编码时要使用的对比。

max.terms

构建模型时可选择的最大项数。

optlevel

0 到 3 之间的整数,决定 SMART 程序中优化例程的彻底性。请参阅“详细信息”部分。

sm.method

用于平滑岭函数的方法。默认是使用 Friedman 的超级平滑器 supsmu 。替代方案是使用 smooth.spline 底层的平滑样条代码,或者为每个脊函数指定(等效)自由度,或者允许 GCV 选择平滑度。

可以缩写。

bass

超平滑的低音音调控制与自动跨度选择一起使用(参见supsmu);值的范围是 0 到 10,值越大,平滑度越高。

span

超级平滑的跨度控制(参见supsmu)。默认值 0 会导致通过本地交叉验证自动选择跨度。 span 也可以采用 (0, 1] 中的值。

df

如果 sm.method"spline" 通过请求的等效自由度指定每个脊项的平滑度。

gcvpen

如果sm.method"gcvspline",这是在GCV 选择中使用的每个自由度的惩罚。

trace

逻辑指示每个样条拟合是否应产生诊断输出(关于 lambdadf ),以及 SUPSMU 拟合其步骤。

...

要传递给其他方法或从其他方法传递的参数。

model

合乎逻辑的。如果为 true,则返回模型框架。

细节

基本方法由 Friedman (1984) 给出,本质上与 S-PLUS 的 ppreg 使用的代码相同。该代码对所使用的编译器极其敏感。

该算法首先将 max.terms 岭项一次相加;如果它无法找到一个可以产生足够差异的术语来添加,它将使用更少的内容。然后,它会在每一步中删除最不重要的术语,直到留下 nterms 术语。

优化级别(参数 optlevel )的不同之处在于在此过程中模型重新拟合的彻底程度。在 0 级,现有的山脊项不会进行改装。在级别 1,投影方向不会重新拟合,但岭函数和回归系数会重新拟合。 2 级和 3 级重新调整了所有术语,并且对于一个响应来说是等效的;第 3 级更仔细地重新平衡每个步骤中每个回归量的贡献,因此不太可能收敛到平方和标准的鞍点。

包含以下组件的列表,其中许多组件供方法函数使用。

call

匹配的调用

p

解释变量的数量(任何编码后)

q

响应变量的数量

mu

参数nterms

ml

参数max.terms

gof

所选模型的总体残差(加权)平方和

gofn

相对于项数的总体残差(加权)平方和,最多 max.terms 。小于 nterms 时将无效(且为零)。

df

参数df

edf

如果sm.method"spline""gcvspline",则使用每个脊项的等效自由度数。

xnames

解释变量的名称

ynames

响应变量的名称

alpha

投影方向矩阵,每个脊项有一列

beta

适用于岭项的每个响应的系数矩阵:行是响应,列是岭项

yb

每个响应的加权平均值

ys

使用的总体比例因子:在内部将响应除以 ys 以获得单位总加权平方和。

fitted.values

拟合值,作为矩阵 if q > 1

residuals

残差,作为矩阵 if q > 1

smod

内部工作数组,其中包括在训练设定点评估的岭函数。

model

(仅当 model = TRUE )模型框架。

例子

require(graphics)

# Note: your numerical values may differ
attach(rock)
area1 <- area/10000; peri1 <- peri/10000
rock.ppr <- ppr(log(perm) ~ area1 + peri1 + shape,
                data = rock, nterms = 2, max.terms = 5)
rock.ppr
# Call:
# ppr.formula(formula = log(perm) ~ area1 + peri1 + shape, data = rock,
#     nterms = 2, max.terms = 5)
#
# Goodness of fit:
#  2 terms  3 terms  4 terms  5 terms
# 8.737806 5.289517 4.745799 4.490378

summary(rock.ppr)
# .....  (same as above)
# .....
#
# Projection direction vectors ('alpha'):
#       term 1      term 2
# area1  0.34357179  0.37071027
# peri1 -0.93781471 -0.61923542
# shape  0.04961846  0.69218595
#
# Coefficients of ridge terms:
#    term 1    term 2
# 1.6079271 0.5460971

par(mfrow = c(3,2))   # maybe: , pty = "s")
plot(rock.ppr, main = "ppr(log(perm)~ ., nterms=2, max.terms=5)")
plot(update(rock.ppr, bass = 5), main = "update(..., bass = 5)")
plot(update(rock.ppr, sm.method = "gcv", gcvpen = 2),
     main = "update(..., sm.method=\"gcv\", gcvpen=2)")
cbind(perm = rock$perm, prediction = round(exp(predict(rock.ppr)), 1))
detach()

来源

Friedman (1984):由 B. D. Ripley 转换为双精度并添加平滑样条接口,最初用于 MASS 包。

参考

Friedman, J. H. and Stuetzle, W. (1981). Projection pursuit regression. Journal of the American Statistical Association, 76, 817-823. doi:10.2307/2287576.

Friedman, J. H. (1984). SMART User's Guide. Laboratory for Computational Statistics, Stanford University Technical Report No. 1.

Venables, W. N. and Ripley, B. D. (2002). Modern Applied Statistics with S. Springer.

也可以看看

plot.ppr , supsmu , smooth.spline

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Projection Pursuit Regression。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。