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