reg_1d: Isotonic and Unimodal Regression on 1D input.

Description Usage Arguments Details Value Error Messages Author(s) References Examples

View source: R/RcppExports.R

Description

Isotonic and unimodal regression on weighted or unweighted 1D input with L1, L2 and Linf metric and other options.

Usage

1
    reg_1d(y_vec, w_vec, metric, unimodal = FALSE, decreasing = FALSE)

Arguments

y_vec

The vector of input data that we use to regression. It must be the same size as the w_vec argument.

w_vec

The vector of the weight of the input data. The default value is 1 for every entry. It must be the same size as y_vec. It's only avaliable for L1 and L2.

metric

This is an integer input, metric = 1 stands for using L1 metric, metric = 2 stands for using L2 metric, metric = 3 stands for using Linf metric.

unimodal

This is a boolean input, unimodal = false or 0 stands for isotonic regression and unimodal = true or 1 stands for unimodal regression

decreasing

This is a boolean input, decreasing = false or 0 stands for increasing model and decreasing = true or 1 stands for decreasing model.

Details

See the paper about unimodal regression via prefix isotonic regression in the reference.

Value

A vector of the regression result which has the same size of y_vec.

Error Messages

Author(s)

Zhipeng Xu, Chenkai Sun, Aman Karunakaran, Quentin Stout xzhipeng@umich.edu https://github.com/xzp1995/UniIsoRegression

References

Quentin F.Stout; Unimodal Regression via Prefix Isotonic Regression Computational Statistics and Data Analysis 53 (2008), pp. 289-297; Spouge, J., Wan, H. & Wilbur, W. Journal of Optimization Theory and Applications (2003) 117: 585-605 doi.org/10.1023/A:1023901806339

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
    library(UniIsoRegression)

    #===1d monotonic===
    y=c(1,3,6,7,-1)
    weight=c(1,3,4,9,10)

    #l_1 metric decreasing
    temp=UniIsoRegression::reg_1d(y, weight, metric = 1, decreasing = TRUE)
    print(temp)

    #l_2 metric unimodel
    temp=UniIsoRegression::reg_1d(y, weight, metric = 2, unimodal = TRUE)
    print(temp)

    #l_infinity metric increasing
    temp=UniIsoRegression::reg_1d(y, weight, metric = 3)
    print(temp)

UniIsoRegression documentation built on May 1, 2019, 7:05 p.m.