MINI MINI MANI MO
%
% Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
%
\name{ore.glm}
\alias{ore.glm}
\alias{ore.glm.control}
\alias{summary.ore.glm}
\alias{print.summary.ore.glm}
\alias{predict.ore.glm}
\alias{residuals.ore.glm}
\alias{vcov.ore.glm}
\concept{regression}
\title{
Oracle R Enterprise 通用线性模型
}
\description{
用于在 \code{ore.frame} 上拟合和使用通用线性模型的
函数。
}
\usage{
### Fitting function
ore.glm(formula, data, weights, family = gaussian(), start = NULL,
control = list(...), contrasts = NULL, xlev = NULL,
ylev = NULL, yprob = NULL, ...)
### Fit control function
ore.glm.control(devlre = 8, maxit = 25, linesearch = FALSE,
trace = getOption("ore.trace", FALSE), ...)
### Specific methods for ore.glm objects
\S3method{summary}{ore.glm}(object, dispersion = NULL, correlation = FALSE,
symbolic.cor = FALSE, ...)
\S3method{vcov}{ore.glm}(object, ...)
\S3method{predict}{ore.glm}(object, newdata = NULL, type = c("link", "response"),
se.fit = FALSE, dispersion = NULL, na.action = na.pass, supplemental.cols = NULL,
...)
\S3method{residuals}{ore.glm}(object, type = c("deviance", "pearson", "working", "response", "partial"),
...)
### Inherited methods for ore.glm objects
#coef(object, ...)
#coefficients(object, ...)
#deviance(object, ...)
#effects(object, ...)
#extractAIC(fit, scale, k = 2, ...)
#family(object, ...)
#fitted(object, ...)
#fitted.values(object, ...)
#formula(x, ...)
#logLik(object, ...)
#model.frame(formula, ...)
#nobs(object, ...)
#weights(object, ...)
}
\arguments{
\item{formula}{
一个表示要拟合的模型的
\code{\link[stats]{formula}} 对象。
}
\item{data}{
一个用于指定模型数据的 \code{ore.frame}
对象。
}
\item{weights}{
指定模型中分析权重的
可选 \code{ore.number} 对象。
}
\item{ supplemental.cols }{
来自 \code{newdata} 数据集要包括在预测结果中的
附加列。
}
\item{family}{
一个用于指定通用线性模型系列详细信息的
\code{\link[stats]{family}} 对象。这与 \\pkg{stats} 程序包中
\code{\link[stats]{glm}} 函数使用的系列对象具有
相同的类型, 该对象包括
\\pkg{MASS} 程序包中的 \code{\link[MASS]{negative.binomial}} 函数
以及 \\pkg{statmod} 程序包中的 \code{\link[statmod]{tweedie}}
函数。
}
\item{start}{
一个用于指定线性预测器中
初始系数估算的可选 \code{\link[base]{numeric}} 向量。
}
\item{control}{
可选 \code{\link[base]{list}} 对象包含
由 \code{ore.glm.control} 函数解释的拟合控制参数的
列表。
}
\item{contrasts}{
要提供给 \code{\link[base]{list}} 的
\code{contrasts.arg} 参数的可选指定
\code{\link[stats]{model.matrix}}。
}
\item{xlev}{
用于为每个
\code{\link[base]{list}} 变量指定 \code{\link[base]{character}} 的
\code{\link[base]{levels}} 向量的
可选指定 \code{\link[OREbase:ore.factor-class]{ore.factor}}。
}
\item{ylev}{
一个可选 \code{\link[base]{character}} 向量, 用于
指定 \code{\link[stats]{binomial}} 通用线性模型中的
响应变量级别。
}
\item{yprob}{
一个介于 0 和 1 之间的可选数值, 指定
\code{y != ylev[1]} 通用线性模型中
\code{\link[stats]{binomial}} 的整体概率。
}
\item{devlre}{
一个用于指定残值偏差收敛标准的
最小对数相对误差的正数值,
\eqn{-log10(|dev - dev_{old}|/|dev|) \\ge devlre}。
}
\item{maxit}{
一个用于指定 Fisher 计分迭代的最大数量的
正整数值。
}
\item{linesearch}{
一个用于指示是否应在每次 Fisher 计分迭代后
使用线段搜索的逻辑值。如果为 \code{FALSE},
则将在前两次迭代后使用线段搜索,
任何后续迭代将导致残值偏差
增加。
}
\item{trace}{
控制在每次 Fisher 计分迭代时生成的
输出的控制参数;
值为 \code{FALSE} 或 \code{0} 指示无输出,
值为 \code{TRUE} 或 \code{1} 指示输出每次迭代的
残值偏差, 值为
\code{2} 指示输出每次迭代的残值偏差
和运行时故障。默认值由
全局选项 \code{ore.trace} 控制。
}
\item{object, newdata}{
一个 \code{ore.glm} 对象。
}
\item{dispersion, correlation, symbolic.cor}{
未实施参数。
}
\item{type}{
一个用于指定要生成的预测类型或
残值的字符串。
}
\item{se.fit}{
一个用于指示是否为预测返回标准误差的
逻辑值。
}
\item{na.action}{
处理 \code{NA} 值的方式,
\code{na.omit} 或 \code{na.pass}。
}
\item{\dots}{
附加参数。
}
}
\details{
\code{ore.glm} 函数使用 Fisher 计分迭代再加权最小二乘法
(IRLS) 算法拟合通用线性模型。
与传统二等分步骤以防止选择
不佳的系数估算不同, 使用线段搜索
对从当前系数估算开始的每次迭代
选择新系数估算, 并使用以下公式经过
Fisher 计分建议的估算:
\eqn{(1 - \\alpha) * old + \\alpha * suggested}, 其中 \eqn{\\alpha}
在 \eqn{[0, 2]} 中。
每次迭代最多包括三个嵌入式 R 映射/减少
操作: IRLS 操作和最多两个线段搜索操作。
IRLS 映射/减少操作位于基于
\code{model.matrix} 或 \code{sparse.model.matrix} 函数调用的叉积矩阵上,
具体取决于模型矩阵的基础稀疏性。
在算法收敛或达到最大迭代
次数时, 将使用最终的嵌入式 R 映射/减少操作
来生成完整的模型级别统计信息集。
\code{\link[OREbase:ore.options]{"ore.parallel"}} 使用 \code{ore.glm} 全局选项来
确定要在 Oracle R Enterprise 服务器中
使用的首选并行度。
}
\value{
对于 \code{ore.glm}, 返回 \code{ore.glm} 对象。
对于 \code{summary.ore.glm}, 返回 \code{summary.ore.glm} 对象。
注: 生成有关 \code{data} 对象的元信息
需要参数 \code{ore.glm} 引用的培训数据。
}
\references{
\href{http://www.oracle.com/technetwork/database/database-technologies/r/r-enterprise/documentation/index.html}{Oracle R Enterprise}
}
\author{
Oracle \email{oracle-r-enterprise@oracle.com}
}
\seealso{
\link[OREstats]{model.matrix,formula-method} (\pkg{OREstats} package),
\code{\link{ore.lm}},
\code{\link[stats]{glm}},
\code{\link[stats]{family}},
\code{\link[OREbase:ore.options]{ore.parallel}}
}
\examples{
\dontshow{
if (!interactive())
ore.connect(user = Sys.getenv("ORE_USERNAME", "rquser"),
sid = Sys.getenv("ORACLE_SID"),
host = Sys.getenv("HOST"),
password = Sys.getenv("ORE_PASSWORD", "rquser"),
port = if (.Platform$OS.type == "windows")
Sys.getenv("ORACLE_PORT")
else
Sys.getenv("TCPPORT"),
all = TRUE)
}
# Load libraries for examples
library(OREstats)
library(rpart) # kyphosis and solder data sets
# Logistic regression
KYPHOSIS <- ore.push(kyphosis)
kyphFit1 <- ore.glm(Kyphosis ~ ., data = KYPHOSIS, family = binomial())
kyphFit2 <- glm(Kyphosis ~ ., data = kyphosis, family = binomial())
summary(kyphFit1)
summary(kyphFit2)
# Poisson regression
SOLDER <- ore.push(solder)
solFit1 <- ore.glm(skips ~ ., data = SOLDER, family = poisson())
solFit2 <- glm(skips ~ ., data = solder, family = poisson())
summary(solFit1)
summary(solFit2)
# Negative binomial regression
solFit3 <- ore.glm(skips ~ ., data = SOLDER, family = MASS::negative.binomial(10))
solFit4 <- glm(skips ~ ., data = solder, family = MASS::negative.binomial(10))
print(summary(solFit3))
print(summary(solFit4))
# Tweedie regression
solFit5 <- ore.glm(skips ~ ., data = SOLDER, family = statmod::tweedie(1.5))
solFit6 <- glm(skips ~ ., data = solder, family = statmod::tweedie(1.5))
print(summary(solFit5))
print(summary(solFit6))
}
\keyword{regression}
OHA YOOOO