Mean Estimation

rm(list = ls())
#- Generate Example Data
set.seed(42)
dat <- IPD::simdat()

form <- Y - Yhat ~ X1

Y_l <- dat[dat$set == "labeled", all.vars(form)[1]] |> matrix(ncol = 1)

f_l <- dat[dat$set == "labeled", all.vars(form)[2]] |> matrix(ncol = 1)

f_u <- dat[dat$set == "unlabeled", all.vars(form)[2]] |> matrix(ncol = 1)

IPD::popinf_mean(Y_l, f_l, f_u)
## $est
## [1] 12.4554
## 
## $se
## [1] 0.1654749

Linear regression

rm(list = ls())
#- Generate Example Data
set.seed(42)
dat <- IPD::simdat()

form <- Y - Yhat ~ X1

X_l <- model.matrix(form, data = dat[dat$set == "labeled",])

Y_l <- dat[dat$set == "labeled", all.vars(form)[1]] |> matrix(ncol = 1)

f_l <- dat[dat$set == "labeled", all.vars(form)[2]] |> matrix(ncol = 1)

X_u <- model.matrix(form, data = dat[dat$set == "unlabeled",])

f_u <- dat[dat$set == "unlabeled", all.vars(form)[2]] |> matrix(ncol = 1)

IPD::popinf_ols(X_l, Y_l, f_l, X_u, f_u)
## $est
## [1] 11.6936575  0.8064982
## 
## $se
## [1] 0.2190285 0.1519738

Logistic regression

rm(list = ls())
#- Generate Example Data
set.seed(42)
dat <- IPD::simdat()

form <- Y - Yhat ~ X1

X_l <- model.matrix(form, data = dat[dat$set == "labeled",])

Y_l <- dat[dat$set == "labeled", all.vars(form)[1]] |> matrix(ncol = 1)
Y_l <- ifelse(Y_l > quantile(Y_l, 0.75), 1, 0)

f_l <- dat[dat$set == "labeled", all.vars(form)[2]] |> matrix(ncol = 1)
f_l <- ifelse(f_l > quantile(f_l, 0.75), 1, 0)

X_u <- model.matrix(form, data = dat[dat$set == "unlabeled",])

f_u <- dat[dat$set == "unlabeled", all.vars(form)[2]] |> matrix(ncol = 1)
f_u <- ifelse(f_u > quantile(f_u, 0.75), 1, 0)

IPD::popinf_logistic(X_l, Y_l, f_l, X_u, f_u)
## $est
## [1] -1.7615489  0.5975317
## 
## $se
## [1] 0.2187251 0.1412411

Poisson regression

rm(list = ls())
#- Generate Example Data
set.seed(42)
dat <- IPD::simdat()

form <- Y - Yhat ~ X1

X_l <- model.matrix(form, data = dat[dat$set == "labeled",])

Y_l <- dat[dat$set == "labeled", all.vars(form)[1]] |> matrix(ncol = 1)
Y_l <- round(Y_l - min(Y_l))

f_l <- dat[dat$set == "labeled", all.vars(form)[2]] |> matrix(ncol = 1)
f_l <- round(f_l - min(f_l))

X_u <- model.matrix(form, data = dat[dat$set == "unlabeled",])

f_u <- dat[dat$set == "unlabeled", all.vars(form)[2]] |> matrix(ncol = 1)
f_u <- round(f_u - min(f_u))

IPD::popinf_poisson(X_l, Y_l, f_l, X_u, f_u)
## $est
## [1] 2.14598868 0.09371846
## 
## $se
## [1] 0.02586625 0.01665662

Quantile Estimation

rm(list = ls())
#- Generate Example Data
set.seed(42)
dat <- IPD::simdat()

form <- Y - Yhat ~ X1

Y_l <- dat[dat$set == "labeled", all.vars(form)[1]] |> matrix(ncol = 1)

f_l <- dat[dat$set == "labeled", all.vars(form)[2]] |> matrix(ncol = 1)

f_u <- dat[dat$set == "unlabeled", all.vars(form)[2]] |> matrix(ncol = 1)

IPD::popinf_quantile(Y_l, f_l, f_u, q = 0.5)
## $est
## [1] 12.37386
## 
## $se
## [1] 0.2353643