我没有找到答案就进行了搜索和搜索,虽然我觉得我想要R做的并不是那么难......我很抱歉拼写错误,我'我不是母语;)
我有一些(x,y) - 数据点都在0和1之间,例如(0,0),(0.2,0.05),(0.4,0.15),(0.6,0.3),(0.8,0.6),(1,1)。
我希望R计算回归函数(使用最小二乘法)y = a x ^ 3 + b x ^ 2 + c * x以适应区间[0中的那些数据点1]。 (所以我希望它是3阶多项式,但是d = 0因为它应该总是抛出点(0,0),这可以通过在lm-formula中添加-1来轻松强制。)< / p>
另外,我希望c为1-a-b,因为我需要f(1)= 1.
# regression model: y = ax^3 + bx^2 + cx = ax^3 + bx^2 + (1-a-b)x
output <- lm(I(yValues) ~ I(xValues^3) + I(xValues^2) + I(xValues) -1)
# coefficients:
d1 <- summary(output)$coefficients[1]
d2 <- summary(output)$coefficients[2]
d3 <- summary(output)$coefficients[3]
做我想要的,但是,当然,没有强制条件c = 1-a-b。我没有发现任何以我想要的方式定义回归模型的可能性。
我知道Maple可以做到这一点,例如同
reg1 := x --> LeastSquares(xValues, yValues, x, curve = c*x^3+d*x^2+(1-c-d)*x)
,
但是如何将这样的条件定义为R?
我将不胜感激任何有用的答案! 非常感谢你!