联合估计来自两个NLS回归的参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了联合估计来自两个NLS回归的参数相关的知识,希望对你有一定的参考价值。
首先,如果我不以最佳方式撰写这篇文章,我是新来的董事会,请原谅。
除此之外,我试图在连续产品/服务代的最佳进入时间上运行一些模型。模型定义如下:Models,其中F(t)是:F(t),S1是第一代产品的累计销售额,S2是第二代产品的累计销售额,Tau2是第二代产品的引入时间代。 M1,M2,q_g和p_q是需要估计的参数。
在关于该主题的文献中,假设q_g和p_g在产品世代中是相同的,这意味着q_g和p_g在S1和S2的模型中应该是相同的。这是我遇到麻烦的地方。
到目前为止,我已经能够使用nls为每一代单独估算q_g和p_g。请看下面:
S1.cum.func <- nls(S1.cum ~ M1.cum *
((1-exp(-(P.cum+Q.cum)*T))/((Q.cum/P.cum)*exp(-(P.cum+Q.cum)*T)+1)) #F1
* ifelse(T2>0,(1-((1-exp(-(P.cum+Q.cum)*T2))/((Q.cum/P.cum)*exp(-(P.cum+Q.cum)*T2)+1))),One.vec)
,start=c(list(M1.cum=sum(S1.cum),P.cum=0.001,Q.cum=0.5))) #Start values
S2.cum.func <- nls(S2.cum.new ~ (M2.cum + M1.cum*
((1-exp(-(P.cum2+Q.cum2)*T.new))/((Q.cum2/P.cum2)*exp(-(P.cum2+Q.cum2)*T.new)+1))) #F1(t)
*((1-exp(-(P.cum2+Q.cum2)*T2.new))/((Q.cum2/P.cum2)*exp(-(P.cum2+Q.cum2)*T2.new)+1)) #F2(t-Tau2)
,start=c(list(M2.cum=1223000,P.cum2=0.001,Q.cum2=0.5)))
我的问题是 - 有没有办法同时在S1和S2上运行回归,以便q_g和p_q的一组估计参数将尽可能多地描述两个因变量?
非常感谢你。
答案
这是一个例子,我们分别运行fo1
和fo2
,然后使用单独的a1
和a2
以及常见的b
组合它们。下次请提供包含所有输入的完整示例,以便可以使用复制和粘贴来重现它。
set.seed(123)
# Separate nls runs
x1 <- 1:10
y1 <- 1 + 2 * x1 + rnorm(10)
fo1 <- y1 ~ a1 + b1 * x1
nls(fo1, start = list(a1 = 0, b1 = 0))
x2 <- 11:20
y2 <- 4 * 2 * x2 * rnorm(10)
fo2 <- y2 ~ a2 + b2 * x2
nls(fo2, start = list(a2 = 0, b2 = 0))
# combined nls run with different a's and common b
y12 <- c(y1, y2)
fo12 <- y12 ~ c(a1 + b * x1, a2 + b * x2)
nls(fo12, start = list(a1 = 0, a2 = 0, b = 0))
以上是关于联合估计来自两个NLS回归的参数的主要内容,如果未能解决你的问题,请参考以下文章