我尝试估计低音曲线以分析不同群体的创新扩散。到目前为止,我使用nlsLM()该minpack.lm包来估计曲线的参数/以拟合曲线。我遍历不同的起始值以使用此命令为不同的起始值估计最佳拟合:
Bass.nls <- nlsLM(cumulative_y~ M * (((P + Q)^2/P) * exp(-(P + Q) * time))/(1 + (Q/P) * exp(-(P + Q) * time))^2
, start = list(M=m_start, P= p_start, Q=q_start)
, trace = F
, control = list(maxiter = 100, warnOnly = T) )
Run Code Online (Sandbox Code Playgroud)
由于某些组的数据点很少,因此许多组不会收敛。
Venkatesan 和 Kumar (2002)建议在数据稀缺时使用遗传算法方法进行低音模型估计(另见Venkatesan 等人 2004)。我发现了一些在 R 中实现 GA 的包(如GA, genalg, gafit)。但是,由于我是该领域的新手,我不知道该使用哪个包以及如何使用包中的低音公式。
我正在使用来自调查数据的面板数据集运行逻辑回归,我想纠正面板设计的标准误差。本次调查中包含的权重考虑了抽样概率、小组死亡率和后分层。
如果我正确理解Berger et al 2017,我应该对面板数据使用聚类协方差。但是,我不确定这些命令是否适用于具有调查权重的数据。
我开始通过与估计回归glm,并与校正标准误差coeftest从lmtest包和vcovPL从sandwich包。随后,我使用svydesign和svyglm从survey包中估计了一个加权模型,并以同样的方式再次校正了标准误差。
在这个问题R 的三明治包中,线性模型中的鲁棒标准误差产生奇怪的结果Zeileis 写道,使用svyglm对象可能会产生不正确的结果。但是,我不确定这是否仅适用于复杂的调查权重(包括分层等),或者也适用于基本调查权重,因为它在此处指出,如果不使用分层,则没有太大区别。但是,我不完全理解那里的解释。此外,我想知道Berger et al 2017 中描述的新实现的功能是否允许使用svyglm对象。所以我不知道如果我的设计没有分层,我是否可以将sandwich包中的命令用于类对象svyglm。
这是我使用的代码:
# not weighted
model <- glm(depend_var ~ indep_var1 + indep_var2 ,family=quasibinomial(link='logit'),data=dataset)
m_vcov <- coeftest(model,vcov. = sandwich::vcovPL(x = model, cluster = ~ id_var,order.by = ~ year ,pairwise = T))
# weighted
design.ps <- svydesign(ids=~1, weights=~wgt, …Run Code Online (Sandbox Code Playgroud)