R语言:规划求解优化ROI
今天看到一篇文章介绍如何用excel建模对ROI 进行规划求解。
蓝鲸的网站分析笔记
- 成本 Cost
- 每次点击费用 CPC
- 点击量 $$clickRate = \frac{cost}{CPC}$$
- 转化率 conversionRatio
- 购买量 $$Purchaseamount = \frac{Cost*conversionRatio}{CPC}$$
- 客单价 perCustomerTransaction
- 利润率 rateofProfit
- 利润 $$profit = Purchaseamount * perCustomerTransaction * rateofProfit$$
- 投资回报率 $$ ROI = \frac{profit}{Cost}$$
涉及 多元非线性规划分析求解 ,R 中提供了Rdonlp2()包。
library(Rdonlp2)
p<-c(7,0.01,1000) # 迭代初始值
par.l=c(7,0,0);par.u=c(Inf,0.04,Inf) #自变量定义域约束
fn=function(x){
0.18*x[2]*x[3]/x[1]
} #目标函数
nlcon=function(x){
0.18*x[2]*x[3]/x[1]
}
nlin.l=1.2;nlin.u=1.2 #构成非线性约束
ret<-donlp2(p,fn,par.u=par.u, par.l=par.l,
nlin=list(nlcon), nlin.u=nlin.u, nlin.l=nlin.l)
ret
运行后的结果如下
ret
$par #DONLP2 的返回值 和Excel求解值相同
[1] 7.000 0.040 1166.667
$gradf #梯度
[1] -0.171428571 30.000000000 0.001028571
$u # vector of lagrange multipliers for constraints 约束拉格朗日乘子的矢量
[1] 5.551115e-17 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
[7] 1.000000e+00 0.000000e+00
$w #vector of penalty term 惩罚因子向量
[1] 1.0 1.0 1.0 1.0 1.0 1.0 2.2 1.0
$step.nr # total number of iterations 迭代次数
[1] 2
$fx # the value of objective function fn 目标函数fn的结果
[1] 1.2
$scf # scaling of fn 尺度
[1] 1
$psi # psi the weighted penalty term
[1] 0.3771429
$upsi #
[1] 0.1714286
$del.k.1
[1] 0.001
$b2n0
[1] 0
$b2n
[1] 1.509644e-14
$nr
[1] 3
$sing
[1] -1
$umin
[1] 0
$not.used
[1] 0
$cond.r
[1] 17672.02
$cond.h
[1] 2.001279
$scf0
[1] 1
$xnorm
[1] 1000.025
$dnorm
[1] 166.6667
$phase
[1] 0
$c.k
[1] 1
$wmax
[1] 2.2
$sig.k
[1] 1
$cfincr
[1] 2
$dirder
[1] -0.2057143
$dscal
[1] 1
$cosphi
[1] 1e-05
$violis
[1] 0
$hesstype
[1] 0
$modbfgs
[1] 0
$modnr
[1] 0
$qpterm
[1] 0
$tauqp
[1] 0
$infeas
[1] 0
$nr.update
[,1] [,2] [,3]
[1,] 1.000008 -0.005714053 -1.142493e-07
[2,] 0.000000 1.414665735 1.964581e-05
[3,] 0.000000 0.000000000 1.000000e+00
$message
[1] "KT-conditions satisfied, no further correction computed"
$runtime
[1] 0.002
R语言:规划求解优化ROI的更多相关文章
- R语言 批量规划求解
昨天读到一个项目,是关于优化求解的. 约束条件如下: 公司里有很多客户,客户之所以不继续用我们的产品了,是因为他账户余额是负的,所以,为了重新赢回这些客户,公司决定发放优惠券cover掉客户账户的负余 ...
- R语言:用简单的文本处理方法优化我们的读书体验
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 前言 延续之前的用R语言读琅琊榜小说,继续讲一下利用R语言做一些简单的文本处理.分词的事情.其实 ...
- 简单线性回归问题的优化(SGD)R语言
本编博客继续分享简单的机器学习的R语言实现. 今天是关于简单的线性回归方程问题的优化问题 常用方法,我们会考虑随机梯度递降,好处是,我们不需要遍历数据集中的所有元素,这样可以大幅度的减少运算量. 具体 ...
- R语言教程规划
本文发表在博客园, http://www.cnblogs.com/stackworm/ 尽管进展中出现了意想不到的事情,期间中断1个多月,但我仍然会坚持下去. 首先,这份教程适合所有对R语言有兴趣且希 ...
- 如何在R语言中使用Logistic回归模型
在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...
- R语言解读一元线性回归模型
转载自:http://blog.fens.me/r-linear-regression/ 前言 在我们的日常生活中,存在大量的具有相关性的事件,比如大气压和海拔高度,海拔越高大气压强越小:人的身高和体 ...
- 主成分分析(PCA)原理及R语言实现
原理: 主成分分析 - stanford 主成分分析法 - 智库 主成分分析(Principal Component Analysis)原理 主成分分析及R语言案例 - 文库 主成分分析法的原理应用及 ...
- 统计计算与R语言的资料汇总(截止2016年12月)
本文在Creative Commons许可证下发布. 在fedora Linux上断断续续使用R语言过了9年后,发现R语言在国内用的人逐渐多了起来.由于工作原因,直到今年暑假一个赴京工作的机会与一位统 ...
- 数据分析与R语言
数据结构 创建向量和矩阵 函数c(), length(), mode(), rbind(), cbind() 求平均值,和,连乘,最值,方差,标准差 函数mean(), sum(), min(), m ...
随机推荐
- J2EE基础之EJB
J2EE基础之EJB 1.什么是EJB? EJB(Enterprise Java Beans),是JavaEE中的商业应用组件技术,是JavaEE三大组件(Servlet,JSP,EJB) ...
- 基于Fast Bilateral Filtering 算法的 High-Dynamic Range(HDR) 图像显示技术。
一.引言 本人初次接触HDR方面的知识,有描述不正确的地方烦请见谅. 为方便文章描述,引用部分百度中的文章对HDR图像进行简单的描述. 高动态范围图像(High-Dynamic Range,简称HDR ...
- 【读书笔记《Bootstrap 实战》】2.作品展示站点
假设我们已经想好了要给自己的作品弄一个在线站点.一如既往,时间紧迫.我们需要快一点,但作品展示效果又必须专业.当然,站点还得是响应式的,能够在各种设备上正常浏览,因为这是我们向目标客户推销时的卖点.这 ...
- flush和reflush
/** * jpa 中的reflush 同 hibernate 中 Session 的 refresh 方法. * * reflush 会强制发送sql查询(select)语句,使缓存中的数据和数据库 ...
- [No000067]Js中获取当前页面的滚动条纵坐标位置scrollTop
三种方法任选其一: var sTop = document.body.scrollTop+document.documentElement.scrollTop; var sTop = document ...
- 原生js实现jquery库中部分事件的功能(jquery库封装二)
继续昨天的封装,今天的部分继昨天选择器之后实现了css样式的获取和添加,attr的获取和添加和一部分事件的封装:只是我自己的理解,不妥之处欢迎大家在评论中提出,相互学习,共同提高 /** * Crea ...
- 字符加密Cipher(bzoj 1031)
Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法 :把需要加密的信息排成一圈,显然,它们有很多种不同的读法.例如下图,可以读作 ...
- 通过COOKIE欺骗登录网站后台
1.今天闲着没事看了看关于XSS(跨站脚本攻击)和CSRF(跨站请求伪造)的知识,xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语 ...
- 如何破解.net软件
.net sdk中有不少很强大的工具,可以轻易完成对.net程序的破解,只要你懂得一点IL语言就行.现在以一个 M 软件为例,介绍整个破解过程. 第零步:用反编译工具分析软件的可执行文件,制订破解逻辑 ...
- STM32端口复用和映射
STM32的功能引脚重映射和复用功能STM32中有很多内置外设的输入输出引脚都具有重映射(remap)的功能,本文对一些在使用引脚重映射时所遇到的有关问题加以说明.我们知道每个内置外设都有若干个输入输 ...