我有一个简单的数据集:
x <- c(1.053848,1.054189,1.054529)
y <- c(0.0137554979,0.0006841939,0.0007282808)
让抛物线符合y
ypoly <- lm(y ~ x + I(x^2))
我想在公式中得到常量 a :
y = ax^2 + bx + c
所以我输入summary(ypoly)$coefficients[3, 1]
并收到此错误:
Error in summary(ypoly)$coefficients[3, 1] : subscript out of bounds
因为
Coefficients:
(Intercept) x I(x^2)
25.17 -19.13 NA
Check this fitting output on Wolfram Alpha
问题出在哪里?
答案 0 :(得分:0)
如果你看一下这个线性回归的设计矩阵,R会告诉你它是计算奇异的,这意味着它没有逆。 OLS的封闭表单表达式是 ,但您无法计算此数据的倒数。你可以看到这个,
x <- c(1.053848,1.054189,1.054529)
y <- c(0.0137554979,0.0006841939,0.0007282808)
x2 <- x^2
design <- matrix(c(rep(1, 3), x, x2), ncol = 3)
solve(t(design)%*%design)
我假设您的问题是x值和x ^ 2值的接近程度。要解决此问题,您可以改为运行它。
ypoly <- lm(y ~ poly(x, 2))
我希望这有帮助!