我们实际上试图在R中重现模型的结果,该模型已在SAS中编码。该模型如下所示:ln(持续时间)= X'B + S * e,其中X是10个独立变量的矩阵,B是系数向量,S是尺度参数,e是误差项。
我们使用的数据集is here
在那里你也可以找到SAS代码。
第一次尝试看起来如下:
Dur <- survreg(Surv(Duration, Censor==0) ~ Acq_Expense + Acq_Expense_SQ + Ret_Expense + Ret_Expense_SQ + Crossbuy + Frequency + Frequency_SQ + Industry + Revenue + Employees, dist='weibull', data = daten [daten$Acquisition==1, ])
summary(Dur)
但是这个模型中的系数不正确。在following picture上,您可以看到左侧的R输出和右侧的正确SAS输出:
我们检测到平方项(Acq_Expense_SQ,Ret_Expense_SQ)存在问题,因为当我们排除这些项时,所有其他估计值都更接近正确的值。因此,我们试图将平方项缩减0.001倍。
Acq_Expense_SQ2 <- data.frame(0.001*daten$Acq_Expense_SQ)
colnames(Acq_Expense_SQ2) <- c("Acq_Expense_SQ2")
daten["Acq_Expense_SQ2"] <- Acq_Expense_SQ2
date3 <- subset(daten, daten$Acquisition==1)
Ret_Expense_SQ2 <- data.frame(0.001*daten$Ret_Expense_SQ)
colnames(Ret_Expense_SQ2) <- c("Ret_Expense_SQ2")
daten["Ret_Expense_SQ2"] <- Ret_Expense_SQ2
date3 <- subset(daten, daten$Acquisition==1)
Dur <- survreg(Surv(Duration, Censor == 0, type = 'right') ~ Acq_Expense + Acq_Expense_SQ2 + Ret_Expense + Ret_Expense_SQ2 + Crossbuy + Frequency + Frequency_SQ + Industry + Revenue + Employees, dist='weibull', scale = 0, data = date3)
summary(Dur)
现在,系数更接近正确系数,但我不知道为什么。 这个问题有可能的解释吗? 或者您是否看到我们的代码存在其他问题?