R 在给定输入约束的情况下,最大化GLM模型的DV

R 在给定输入约束的情况下,最大化GLM模型的DV,r,optimization,glm,R,Optimization,Glm,我有上个月我的客户群的一些购买数据,包括每个客户的一行数据、人口统计分数、两种不同类型的营销治疗,以及结果是否是购买 set.seed(124) df <- data.frame( demographic=rnorm(100), treatment1=sample(0:10, 100, replace=TRUE), treatment2=sample(0:10, 100, replace=TRUE), purchase=rep(c(0,1),50)) 和一个简单的logit模型 >

我有上个月我的客户群的一些购买数据,包括每个客户的一行数据、人口统计分数、两种不同类型的营销治疗,以及结果是否是购买

set.seed(124)
df <- data.frame(
demographic=rnorm(100),
treatment1=sample(0:10, 100, replace=TRUE),
treatment2=sample(0:10, 100, replace=TRUE),
purchase=rep(c(0,1),50))
和一个简单的logit模型

> fit <- glm(purchase ~ ., data = df, family = "binomial")
> summary(fit)

Call:
glm(formula = purchase ~ ., family = "binomial", data = df)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-1.60111  -1.14960   0.01679   1.14923   1.66246  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.75708    0.48349  -1.566    0.117
demographic  0.34709    0.23978   1.447    0.148
treatment1   0.04108    0.06600   0.622    0.534
treatment2   0.10746    0.06975   1.541    0.123

这假设两种治疗的成本相等,因此我的治疗总数不得超过1012。如何生成一个newdf,使predict.glm()给出的正转换计数最大化?这将包括相同的客户,因此每行的人口统计分数应保持不变。

您在下一个月的观察次数和人口统计特征是否相同?是的,假设相同的客户群/行,问题将更新。
> fit <- glm(purchase ~ ., data = df, family = "binomial")
> summary(fit)

Call:
glm(formula = purchase ~ ., family = "binomial", data = df)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-1.60111  -1.14960   0.01679   1.14923   1.66246  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.75708    0.48349  -1.566    0.117
demographic  0.34709    0.23978   1.447    0.148
treatment1   0.04108    0.06600   0.622    0.534
treatment2   0.10746    0.06975   1.541    0.123
> sum(df$treatment1) + sum(df$treatment2)
[1] 1012