我正在尝试拟合具有近50 个变量的非线性模型(因为存在年份固定效应)。问题是我有太多的变量,我无法像这样写下完整的公式
nl_exp = as.formula(y ~ t1*year.matrix[,1] + t2*year.matrix[,2]
+... +t45*year.matirx[,45] + g*(x^d))
nl_model = gnls(nl_exp, start=list(t=0.5, g=0.01, d=0.1))
其中y
是二元响应变量,year.matirx
是 45 列(表示 45 个不同年份)的矩阵,x
是自变量。需要估计的参数是t1, t2, ..., t45, g, d
。
我有很好的起始值t1, ..., t45, g, d
。但我不想为这个非线性回归写一个长公式。
我知道如果模型是线性的,表达式可以简化为
l_model = lm(y ~ factor(year) + ...)
- 我尝试
factor(year)
了gnls
功能,但它不起作用。 另外我也试过
nl_exp2 = as.formula(y ~ t*year.matrix + g*(x^d))
nl_model2 = gnls(nl_exp2, start=list(t=rep(0.2, 45), g=0.01, d=0.1))
它还向我返回错误消息。
那么,有什么简单的方法可以写下非线性公式和初始值R
吗?