Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve prior names #122

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 21 additions & 21 deletions docs/src/api/bayesian_regression.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,101 +8,101 @@ BayesianRegression

### Linear Regression with User Specific Gaussian Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::LinearRegression, prior::Prior_Gauss, alpha_prior_mean::Float64, alpha_prior_sd::Float64, beta_prior_mean::Vector{Float64}, beta_prior_sd::Vector{Float64}, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::LinearRegression, prior::Gauss, alpha_prior_mean::Float64, alpha_prior_sd::Float64, beta_prior_mean::Vector{Float64}, beta_prior_sd::Vector{Float64}, sim_size::Int64 = 1000)
```

### Linear Regression with Ridge Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::LinearRegression, prior::Prior_Ridge, h::Float64 = 0.01, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::LinearRegression, prior::Ridge, h::Float64 = 0.01, sim_size::Int64 = 1000)
```

### Linear Regression with Laplace Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::LinearRegression, prior::Prior_Laplace, h::Float64 = 0.01, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::LinearRegression, prior::Laplace, h::Float64 = 0.01, sim_size::Int64 = 1000)
```
### Linear Regression with Cauchy Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::LinearRegression, prior::Prior_Cauchy, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::LinearRegression, prior::Cauchy, sim_size::Int64 = 1000)
```
### Linear Regression with T-distributed Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::LinearRegression, prior::Prior_TDist, h::Float64 = 2.0, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::LinearRegression, prior::TDist, h::Float64 = 2.0, sim_size::Int64 = 1000)
```
### Linear Regression with Horse Shoe Prior
```@docs
fit(formula::FormulaTerm,data::DataFrame,modelClass::LinearRegression,prior::Prior_HorseShoe,sim_size::Int64 = 1000)
fit(formula::FormulaTerm,data::DataFrame,modelClass::LinearRegression,prior::HorseShoe,sim_size::Int64 = 1000)
```

## Logistic Regression

### Logistic Regression with Ridge Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::LogisticRegression, Link::CRRaoLink, prior::Prior_Ridge, h::Float64 = 0.1, level::Float64 = 0.95, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::LogisticRegression, Link::CRRaoLink, prior::Ridge, h::Float64 = 0.1, level::Float64 = 0.95, sim_size::Int64 = 1000)
```
### Logistic Regression with Laplace Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::LogisticRegression, Link::CRRaoLink, prior::Prior_Laplace, h::Float64 = 0.1, level::Float64 = 0.95, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::LogisticRegression, Link::CRRaoLink, prior::Laplace, h::Float64 = 0.1, level::Float64 = 0.95, sim_size::Int64 = 1000)
```
### Logistic Regression with Cauchy Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::LogisticRegression, Link::CRRaoLink, prior::Prior_Cauchy, h::Float64 = 0.1, level::Float64 = 0.95, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::LogisticRegression, Link::CRRaoLink, prior::Cauchy, h::Float64 = 0.1, level::Float64 = 0.95, sim_size::Int64 = 1000)
```
### Logistic Regression with T-Distributed Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::LogisticRegression, Link::CRRaoLink, prior::Prior_TDist, h::Float64 = 1.0, level::Float64 = 0.95, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::LogisticRegression, Link::CRRaoLink, prior::TDist, h::Float64 = 1.0, level::Float64 = 0.95, sim_size::Int64 = 1000)
```

### Logistic Regression with Horse Shoe Prior
```@docs
fit(formula::FormulaTerm,data::DataFrame,modelClass::LogisticRegression,Link::CRRaoLink,prior::Prior_HorseShoe,level::Float64 = 0.95,sim_size::Int64 = 1000)
fit(formula::FormulaTerm,data::DataFrame,modelClass::LogisticRegression,Link::CRRaoLink,prior::HorseShoe,level::Float64 = 0.95,sim_size::Int64 = 1000)
```

## Negative Binomial Regression

### Negative Binomial Regression with Ridge Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::NegBinomRegression, prior::Prior_Ridge, h::Float64 = 0.1, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::NegBinomRegression, prior::Ridge, h::Float64 = 0.1, sim_size::Int64 = 1000)
```

### Negative Binomial Regression with Laplace Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::NegBinomRegression, prior::Prior_Laplace, h::Float64 = 0.01, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::NegBinomRegression, prior::Laplace, h::Float64 = 0.01, sim_size::Int64 = 1000)
```
### Negative Binomial Regression with Cauchy Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::NegBinomRegression, prior::Prior_Cauchy, h::Float64 = 1.0, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::NegBinomRegression, prior::Cauchy, h::Float64 = 1.0, sim_size::Int64 = 1000)
```

### Negative Binomial Regression with T-Distributed Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::NegBinomRegression, prior::Prior_TDist, h::Float64 = 1.0, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::NegBinomRegression, prior::TDist, h::Float64 = 1.0, sim_size::Int64 = 1000)
```

### Negative Binomial Regression with HorseShoe Prior
```@docs
fit(formula::FormulaTerm,data::DataFrame,modelClass::NegBinomRegression,prior::Prior_HorseShoe,sim_size::Int64 = 1000)
fit(formula::FormulaTerm,data::DataFrame,modelClass::NegBinomRegression,prior::HorseShoe,sim_size::Int64 = 1000)
```

## Poisson Regression

### Poisson Regression with Ridge Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::PoissonRegression, prior::Prior_Ridge, h::Float64 = 0.1, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::PoissonRegression, prior::Ridge, h::Float64 = 0.1, sim_size::Int64 = 1000)
```
### Poisson Regression with Laplace Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::PoissonRegression, prior::Prior_Laplace, h::Float64 = 0.1, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::PoissonRegression, prior::Laplace, h::Float64 = 0.1, sim_size::Int64 = 1000)
```
### Poisson Regression with Cauchy Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::PoissonRegression, prior::Prior_Cauchy, h::Float64 = 1.0, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::PoissonRegression, prior::Cauchy, h::Float64 = 1.0, sim_size::Int64 = 1000)
```
### Poisson Regression with T-Distributed Prior
```@docs
fit(formula::FormulaTerm, data::DataFrame, modelClass::PoissonRegression, prior::Prior_TDist, h::Float64 = 2.0, sim_size::Int64 = 1000)
fit(formula::FormulaTerm, data::DataFrame, modelClass::PoissonRegression, prior::TDist, h::Float64 = 2.0, sim_size::Int64 = 1000)
```

### Poisson Regression with Horse Shoe Prior
```@docs
fit(formula::FormulaTerm,data::DataFrame,modelClass::PoissonRegression,prior::Prior_HorseShoe,sim_size::Int64 = 1000)
fit(formula::FormulaTerm,data::DataFrame,modelClass::PoissonRegression,prior::HorseShoe,sim_size::Int64 = 1000)
```
24 changes: 12 additions & 12 deletions docs/src/api/interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ It should be noted that not all model classes support every type of signature. T
- [`Cauchit`](@ref)

5. CRRao also supports Bayesian models, and the priors to be can be specified while calling `fit`. Currently CRRao supports six different kinds of priors, and the type of the `prior` parameter must be one of the following.
- [`Prior_Gauss`](@ref)
- [`Prior_Ridge`](@ref)
- [`Prior_Laplace`](@ref)
- [`Prior_Cauchy`](@ref)
- [`Prior_TDist`](@ref)
- [`Prior_HorseShoe`](@ref)
- [`Gauss`](@ref)
- [`Ridge`](@ref)
- [`Laplace`](@ref)
- [`Cauchy`](@ref)
- [`TDist`](@ref)
- [`HorseShoe`](@ref)


## Model Classes and Data Models
Expand All @@ -59,12 +59,12 @@ Cauchit
## Prior Distributions

```@docs
Prior_Gauss
Prior_Ridge
Prior_Laplace
Prior_Cauchy
Prior_TDist
Prior_HorseShoe
Gauss
Ridge
Laplace
Cauchy
TDist
HorseShoe
```

## Setting Random Number Generators
Expand Down
4 changes: 2 additions & 2 deletions docs/src/man/guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ To understand more about these functions and in general how frequentist models w

## Tutorial: Bayesian Logistic Regression

Next, let's see an example of doing bayesian statistical inference with CRRao. In this example, we will perform bayesian logistic regression on the `turnout` dataset from R's [Zelig](https://zeligproject.org/). Further, we will use the [`Logit`](@ref) link function with a Ridge prior ([`Prior_Ridge`](@ref)).
Next, let's see an example of doing bayesian statistical inference with CRRao. In this example, we will perform bayesian logistic regression on the `turnout` dataset from R's [Zelig](https://zeligproject.org/). Further, we will use the [`Logit`](@ref) link function with a Ridge prior ([`Ridge`](@ref)).

With this example, we'll also showcase how to use random number generators to get reproducible results. For this, we will use the [StableRNGs](https://github.com/JuliaRandom/StableRNGs.jl) package (although any random number generator can be used). So, first we import the required modules.

Expand Down Expand Up @@ -90,5 +90,5 @@ turnout = dataset("Zelig", "turnout")
And finally, we do the inference using our proposed model.

```@repl bayesian_logistic_regression
model = fit(@formula(Vote ~ Age + Race + Income + Educate), turnout, LogisticRegression(), Logit(), Prior_Ridge())
model = fit(@formula(Vote ~ Age + Race + Income + Educate), turnout, LogisticRegression(), Logit(), Ridge())
```
28 changes: 15 additions & 13 deletions src/CRRao.jl
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,11 @@ Type representing Residual Bootstrap.
"""
struct Boot_Residual end

abstract type Prior end

"""
```julia
Prior_Gauss
Gauss
```
Type representing the Gaussian Prior. Users have specific
prior mean and standard deviation, for ``\\alpha`` and ``\\beta``
Expand Down Expand Up @@ -133,11 +135,11 @@ y_i \\sim N(\\mu_i,\\sigma),
+ ``\\mathbf{E}(y_i)=g(\\mu_i)``, and
+ ``Var(y_i)=\\sigma^2``.
"""
struct Prior_Gauss end
struct Gauss <: Prior end

"""
```julia
Prior_Ridge
Ridge
```
Type representing the Ridge Prior.

Expand Down Expand Up @@ -167,11 +169,11 @@ y_i \\sim D(\\mu_i,\\sigma),
+ ``\\mathbf{E}(y_i)=g(\\mu_i)``, and
+ ``Var(y_i)=\\sigma^2``.
"""
struct Prior_Ridge end
struct Ridge <: Prior end

"""
```julia
Prior_Laplace
Laplace
```
Type representing the Laplace Prior.

Expand Down Expand Up @@ -200,11 +202,11 @@ y_i \\sim D(\\mu_i,\\sigma),
+ ``\\mathbf{E}(y_i)=g(\\mu_i)``, and
+ ``Var(y_i)=\\sigma^2``.
"""
struct Prior_Laplace end
struct Laplace <: Prior end

"""
```julia
Prior_Cauchy
Cauchy
```
Type representing the Cauchy Prior.

Expand All @@ -231,11 +233,11 @@ y_i \\sim D(\\mu_i,\\sigma),
+ ``\\mathbf{E}(y_i)=g(\\mu_i)``, and
+ ``Var(y_i)=\\sigma^2``.
"""
struct Prior_Cauchy end
struct Cauchy <: Prior end

"""
```julia
Prior_TDist
TDist
```
Type representing the T-Distributed Prior.

Expand Down Expand Up @@ -266,12 +268,12 @@ y_i \\sim D(\\mu_i,\\sigma),
+ ``Var(y_i)=\\sigma^2``.
+ The ``t(v)`` is ``t`` distribution with ``v`` degrees of freedom.
"""
struct Prior_TDist end
struct TDist <: Prior end


"""
```julia
Prior_HorseShoe
HorseShoe
```
Type representing the HorseShoe Prior.

Expand Down Expand Up @@ -305,7 +307,7 @@ y_i \\sim D(\\mu_i,\\sigma), i=1,2,\\cdots,n
+ ``Var(y_i)=\\sigma^2``, and
+ ``\\beta``=(``\\beta_1,\\beta_2,\\cdots,\\beta_p``)
"""
struct Prior_HorseShoe end
struct HorseShoe <: Prior end

"""
```julia
Expand Down Expand Up @@ -393,7 +395,7 @@ end
Cauchit() = Cauchit(Cauchit_Link)

export LinearRegression, LogisticRegression, PoissonRegression, NegBinomRegression, Boot_Residual
export Prior_Ridge, Prior_Laplace, Prior_Cauchy, Prior_TDist, Prior_HorseShoe, Prior_Gauss
export Ridge, Laplace, Cauchy, TDist, HorseShoe, Gauss
export CRRaoLink, Logit, Probit, Cloglog, Cauchit, fit
export coef, coeftable, r2, adjr2, loglikelihood, aic, bic, sigma, predict, residuals, cooksdistance, BPTest, pvalue
export FrequentistRegression, BayesianRegression
Expand Down
Loading