| Title: | FAB p-Values and Confidence Intervals |
| Version: | 0.1 |
| Description: | Frequentist assisted by Bayes (FAB) p-values and confidence interval construction. See Hoff (2019) <doi:10.48550/arXiv.1907.12589> "Smaller p-values via indirect information", Hoff and Yu (2019) <doi:10.1214/18-EJS1517> "Exact adaptive confidence intervals for linear regression coefficients", and Yu and Hoff (2018) <doi:10.1093/biomet/asy009> "Adaptive multigroup confidence intervals with constant coverage". |
| Date: | 2019-12-27 |
| Author: | Peter Hoff |
| Maintainer: | Peter Hoff <peter.hoff@duke.edu> |
| License: | GPL-3 |
| Imports: | MASS |
| LazyData: | true |
| RoxygenNote: | 6.1.1 |
| NeedsCompilation: | no |
| Packaged: | 2019-12-28 00:37:01 UTC; pdhoff |
| Repository: | CRAN |
| Date/Publication: | 2020-01-09 17:00:06 UTC |
z-optimal FAB t-interval
Description
Computation of a 1-alpha FAB t-interval using z-optimal spending function
Usage
fabtzCI(y, s, dof, alpha = 0.05, psi = list(mu = 0, tau2 = 1e+05,
sigma2 = 1))
Arguments
y |
a numeric scalar, a normally distributed statistic |
s |
a numeric scalar, the standard error of y |
dof |
positive integer, degrees of freedom for s |
alpha |
the type I error rate, so 1-alpha is the coverage rate |
psi |
a list of parameters for the spending function, including
|
Value
a two-dimensional vector of the left and right endpoints of the interval
Author(s)
Peter Hoff
Examples
n<-10
y<-rnorm(n)
fabtzCI(mean(y),sqrt(var(y)/n),n-1)
t.test(y)$conf.int
FAB z-interval
Description
Computation of a 1-alpha FAB z-interval
Usage
fabzCI(y, mu, t2, s2, alpha = 0.05)
Arguments
y |
a numeric scalar |
mu |
a numeric scalar |
t2 |
a positive numeric scalar |
s2 |
a positive numeric scalar |
alpha |
the type I error rate, so 1-alpha is the coverage rate |
Details
A FAB interval is the "frequentist" interval procedure
that is Bayes optimal: It minimizes the prior expected
interval width among all interval procedures with
exact 1-alpha frequentist coverage. This function computes
the FAB z-interval for the mean of a normal population with an
known variance, given a user-specified prior distribution
determined by psi. The prior is that the population mean
is normally distributed.
Referring to the elements of psi
as mu, t2, s2, the prior and population variance are
determined as follows:
mu is the prior expectation of the mean
t2 is the prior variance of the mean
s2 is the population variance
Value
a two-dimensional vector of the left and right endpoints of the interval
Author(s)
Peter Hoff
Examples
y<-0
fabzCI(y,0,10,1)
fabzCI(y,0,1/10,1)
fabzCI(y,2,10,1)
fabzCI(y,0,1/10,1)
FAB inference for generalized linear models
Description
asymptotic FAB p-values and confidence intervals for parameters in generalized linear regression models
Usage
glmFAB(cformula, FABvars, lformula = NULL, alpha = 0.05,
silent = FALSE, ...)
Arguments
cformula |
formua for the control variables |
FABvars |
matrix of regressors for which to make FAB p-values and CIs |
lformula |
formula for the lining model (just specify right-hand side) |
alpha |
error rate for CIs (1-alpha CIs will be constructed) |
silent |
show progress (TRUE) or not (FALSE) |
... |
additional arguments to be passed to |
Value
an object of the class glmFAB which inherits from glm
Author(s)
Peter Hoff
Examples
# n observations, p FAB variables, q=2 control variables
n<-100 ; p<-25
# X is design matrix for params of interest
# beta is vector of true parameter values
# v a variable in the linking model - used to share info across betas
v<-rnorm(p) ; beta<-(2 - 2*v + rnorm(p))/3 ; X<-matrix(rnorm(n*p),n,p)/8
# control coefficients and variables
alpha1<-.5 ; alpha2<- -.5
w1<-rnorm(n)/8
w2<-rnorm(n)/8
# simulate data
lp<-1 + alpha1*w1 + alpha2*w2 + X%*%beta
y<-rpois(n,exp(lp))
# fit model
fit<-glmFAB(y~w1+w2,X,~v,family=poisson)
fit$FABpv
fit$FABci
summary(fit) # look at p-value column
FAB inference for linear models
Description
FAB p-values and confidence intervals for parameters in linear regression models
Usage
lmFAB(cformula, FABvars, lformula = NULL, alpha = 0.05,
rssSplit = TRUE, silent = FALSE)
Arguments
cformula |
formua for the control variables |
FABvars |
matrix of regressors for which to make FAB p-values and CIs |
lformula |
formula for the linking model (just specify right-hand side) |
alpha |
error rate for CIs (1-alpha CIs will be constructed) |
rssSplit |
use some residual degrees of freedom to help fit linking model (TRUE/FALSE) |
silent |
show progress (TRUE) or not (FALSE) |
Value
an object of the class lmFAB which inherits from lm
Author(s)
Peter Hoff
Examples
# n observations, p FAB variables, q=2 control variables
n<-100 ; p<-25
# X is design matrix for params of interest
# beta is vector of true parameter values
# v a variable in the linking model - used to share info across betas
v<-rnorm(p) ; beta<-(2 - 2*v + rnorm(p))/3 ; X<-matrix(rnorm(n*p),n,p)/8
# control coefficients and variables
alpha1<-.5 ; alpha2<- -.5
w1<-rnorm(n)/8
w2<-rnorm(n)/8
# simulate data
lp<-1 + alpha1*w1 + alpha2*w2 + X%*%beta
y<-rnorm(n,lp)
# fit model
fit<-lmFAB(y~w1+w2,X,~v)
fit$FABpv
fit$FABci
summary(fit) # look at p-value column
Marginal MLEs for the Fay-Herriot model
Description
Marginal MLEs for the Fay-Herriot random effects model where the covariance matrix for the sampling model is known to scale.
Usage
mmleFH(y, X, V, ss0 = 0, df0 = 0)
Arguments
y |
direct data following normal model |
X |
linking model predictors |
V |
covariance matrix to scale |
ss0 |
prior sum of squares for estimate of |
df0 |
prior degrees of freedom for estimate of |
Value
a list of parameter estimates including
beta, the estimated regression coefficients
t2, the estimate of
\tau^2s2, the estimate of
\sigma^2
Author(s)
Peter Hoff
Examples
n<-30 ; p<-3
X<-matrix(rnorm(n*p),n,p)
beta<-rnorm(p)
theta<-X%*%beta + rnorm(n)
V<-diag(n)
y<-theta+rnorm(n)
mmleFH(y,X,V)
Marginal MLEs for the Fay-Herriot model with known covariance
Description
Marginal MLEs for the Fay-Herriot random effects model where the covariance matrix for the sampling model is known
Usage
mmleFHP(y, X, Sigma)
Arguments
y |
direct data following normal model |
X |
linking model predictors |
Sigma |
covariance matrix in sampling model |
Value
a list of parameter estimates including
beta, the estimated regression coefficients
t2, the estimate of
\tau^2
Author(s)
Peter Hoff
Examples
n<-30 ; p<-3
X<-matrix(rnorm(n*p),n,p)
beta<-rnorm(p)
theta<-X%*%beta + rnorm(n)
Sigma<-diag(n)
y<-theta+rnorm(n)
mmleFHP(y,X,Sigma)
QR decomposition
Description
QR decomposition for lmFAB objects
Usage
## S3 method for class 'lmFAB'
qr(x, ...)
Arguments
x |
|
... |
see |
Value
qr decomposition for a design matrix
Residual sum of squares split
Description
Split residual sum of squares from normal linear regression
Usage
rssSplit(fit, df0 = max(1, floor(fit$df/10)), seed = -71407)
Arguments
fit |
lm object |
df0 |
degrees of freedom for the smaller of the two residual sums of squares |
seed |
random seed for constructing the basis vectors of the split |
Value
a two-dimensional vector of independent sums of squares
Author(s)
Peter Hoff
Examples
n<-30 ; p<-6 ; sigma2<-1.5
X<-matrix(rnorm(n*p),n,p)
y<-X%*%rnorm(6) + sqrt(sigma2)*rnorm(n)
ss<-rssSplit(lm(y~ -1+X))
df<-as.numeric( substring(names(ss),first=3))
ss/df
Bayes-optimal spending function
Description
Compute Bayes optimal spending function
Usage
sfabz(theta, psi, alpha = 0.05)
Arguments
theta |
value of theta being tested |
psi |
a list of parameters for the spending function, including
|
alpha |
level of test |
Details
This function computes the value of s that minimizes the acceptance probability of a biased level-alpha test for a normal population with known variance, under a specified prior predictive distribution.
Value
a scalar value giving the optimal tail-area probability
Author(s)
Peter Hoff
Examples
thetas<-seq(-1,1,length=100)
s<-NULL
for(theta in thetas){ s<-c(s,sfabz(theta,list(mu=0,tau2=1,sigma2=1)) ) }
plot(thetas,s,type="l")
Summarizing Generalized Linear Model Fits with FAB Inference
Description
summary method for class glmFAB
Usage
## S3 method for class 'glmFAB'
summary(object, dispersion = NULL,
correlation = FALSE, symbolic.cor = FALSE, ...)
Arguments
object |
an object of class |
dispersion |
see |
correlation |
see |
symbolic.cor |
see |
... |
see |
Details
A mod of summary.glm that shows FAB p-values in table
Value
A list of summary statistics of the fitted generalized linear model
Examples
# n observations, p FAB variables, q=2 control variables
n<-100 ; p<-25
# X is design matrix for params of interest
# beta is vector of true parameter values
# v a variable in the linking model - used to share info across betas
v<-rnorm(p) ; beta<-(2 - 2*v + rnorm(p))/3 ; X<-matrix(rnorm(n*p),n,p)/8
# control coefficients and variables
alpha1<-.5 ; alpha2<- -.5
w1<-rnorm(n)/8
w2<-rnorm(n)/8
# simulate data
lp<-1 + alpha1*w1 + alpha2*w2 + X%*%beta
y<-rpois(n,exp(lp))
# fit model
fit<-glmFAB(y~w1+w2,X,~v,family=poisson)
fit$FABpv
fit$FABci
summary(fit) # look at p-value column
Summarizing Linear Model Fits with FAB Inference
Description
summary method for class lmFAB
Usage
## S3 method for class 'lmFAB'
summary(object, correlation = FALSE,
symbolic.cor = FALSE, ...)
Arguments
object |
an object of class |
correlation |
see |
symbolic.cor |
see |
... |
see |
Details
A mod of summary.lm that shows FAB p-values in table
Value
A list of summary statistics of the fitted linear model
Examples
# n observations, p FAB variables, q=2 control variables
n<-100 ; p<-25
# X is design matrix for params of interest
# beta is vector of true parameter values
# v a variable in the linking model - used to share info across betas
v<-rnorm(p) ; beta<-(2 - 2*v + rnorm(p))/3 ; X<-matrix(rnorm(n*p),n,p)/8
# control coefficients and variables
alpha1<-.5 ; alpha2<- -.5
w1<-rnorm(n)/8
w2<-rnorm(n)/8
# simulate data
lp<-1 + alpha1*w1 + alpha2*w2 + X%*%beta
y<-rnorm(n,lp)
# fit model
fit<-lmFAB(y~w1+w2,X,~v)
fit$FABpv
fit$FABci
summary(fit) # look at p-value column