R 指数多元回归
所以我有上面的数据集,我要做的是以R 指数多元回归,r,regression,exponential,multivalue,multivariate-testing,R,Regression,Exponential,Multivalue,Multivariate Testing,所以我有上面的数据集,我要做的是以a*x^b的形式执行指数多变量回归。我尝试在r上使用nls函数,但没有成功。有没有人对如何做到这一点有什么建议。基本上,方程的最终形式应该是y=a1*x1^b1+a2*x2^b2+a3*x3^b3+a4*x4^b4+a5*x5^b5。我需要求解a1、b1、a2、b2、a3、b3、a4、b4、a5、b5变量的a1、b1、a2、b2、a3、b3、a4、b4、a5、b5变量 N x1 x2 x3 x4 x5 y 1 8 7.0 -
a*x^b
的形式执行指数多变量回归。我尝试在r上使用nls函数,但没有成功。有没有人对如何做到这一点有什么建议。基本上,方程的最终形式应该是y=a1*x1^b1+a2*x2^b2+a3*x3^b3+a4*x4^b4+a5*x5^b5
。我需要求解a1、b1、a2、b2、a3、b3、a4、b4、a5、b5变量的a1、b1、a2、b2、a3、b3、a4、b4、a5、b5
变量
N x1 x2 x3 x4 x5 y
1 8 7.0 -148 26 0.54 3768
2 12 4.4 -148 28 0.99 2957
3 12 6.6 -130 26 0.58 3772
4 5 3.0 -73 33 0.49 1134
5 7 6.0 -115 42 0.32 2691
6 13 5.8 -53 26 0.52 2613
7 9 6.2 -64 32 0.86 2425
8 7 5.7 -76 43 0.72 2108
9 15 4.0 -84 33 0.63 2639
10 8 5.1 -68 40 0.34 1846
11 10 5.5 -90 30 0.79 2465
12 13 6.0 -51 26 0.24 2696
13 14 4.0 -95 41 0.63 2592
14 14 4.9 -85 39 0.79 2748
15 15 3.2 -100 28 0.61 2656
16 10 6.7 -51 40 0.29 2715
17 15 5.7 -113 26 0.72 3559
18 5 5.1 -135 29 0.51 2341
19 8 6.8 -106 35 0.22 3169
20 13 3.9 -68 37 0.76 2106
21 10 4.9 -129 26 0.93 2646
22 7 4.1 -55 40 0.58 1294
23 7 6.9 -86 38 0.31 2932
24 11 6.7 -85 38 0.44 3214
25 14 4.7 -133 31 0.30 3203
26 9 5.7 -128 25 0.74 2859
27 7 3.1 -111 33 0.61 1709
28 6 4.1 -51 34 0.52 1168
29 9 3.4 -124 27 0.38 2088
30 9 4.0 -118 28 0.29 2146
然后用起始值运行optim
函数
min.RSS_2 <- function(data, par){
with(data, sum((par[1]*x1^par[2] + par[3]*x2^par[4] - y)^2))
}
你可以在图上看到这一点
result$par
$par
[1] 973.4197484 0.4210558 250.6697196 -645.7000012
仅针对x1和x2的参数示例如下
N x1 x2 x3 x4 x5 y
1 8 7.0 -148 26 0.54 3768
2 12 4.4 -148 28 0.99 2957
3 12 6.6 -130 26 0.58 3772
4 5 3.0 -73 33 0.49 1134
5 7 6.0 -115 42 0.32 2691
6 13 5.8 -53 26 0.52 2613
7 9 6.2 -64 32 0.86 2425
8 7 5.7 -76 43 0.72 2108
9 15 4.0 -84 33 0.63 2639
10 8 5.1 -68 40 0.34 1846
11 10 5.5 -90 30 0.79 2465
12 13 6.0 -51 26 0.24 2696
13 14 4.0 -95 41 0.63 2592
14 14 4.9 -85 39 0.79 2748
15 15 3.2 -100 28 0.61 2656
16 10 6.7 -51 40 0.29 2715
17 15 5.7 -113 26 0.72 3559
18 5 5.1 -135 29 0.51 2341
19 8 6.8 -106 35 0.22 3169
20 13 3.9 -68 37 0.76 2106
21 10 4.9 -129 26 0.93 2646
22 7 4.1 -55 40 0.58 1294
23 7 6.9 -86 38 0.31 2932
24 11 6.7 -85 38 0.44 3214
25 14 4.7 -133 31 0.30 3203
26 9 5.7 -128 25 0.74 2859
27 7 3.1 -111 33 0.61 1709
28 6 4.1 -51 34 0.52 1168
29 9 3.4 -124 27 0.38 2088
30 9 4.0 -118 28 0.29 2146
然后用起始值运行optim
函数
min.RSS_2 <- function(data, par){
with(data, sum((par[1]*x1^par[2] + par[3]*x2^par[4] - y)^2))
}
你可以在图上看到这一点
result$par
$par
[1] 973.4197484 0.4210558 250.6697196 -645.7000012
因此,您需要一个带有所有参数的起始值的
nls
,start=c(a1=…,a2=…)
。很难精确地计算方程的起始值,我不知道这个函数是否合适,因为我从未见过有这么多参数的方程sx3有负值,并且不能将负的非整数值提高到幂次方。因此,需要一个nls
和所有参数exstart=c的起始值(a1=…,a2=…)
。可能很难精确地计算方程的起始值,我不知道这个函数是否合适,因为我从未见过有这么多参数的方程sx3有负值,并且不能将负的非整数值提高到幂次方。我如何计算出5的起始值,所以a1*x1^b1+a2*x2^b2等等s和错误以及对函数行为的认识我尝试使用日志查找起始值,但仍然没有成功,我始终得到“评估模型时产生的缺失值或无穷大”这意味着起始值是错误的。正如我所写的,我怀疑你能否找到如此复杂模型的起始值。最好的解决方案是找出因变量的响应,尝试文献中提出的不同函数,然后拟合模型。看看这里的答案是否对你有帮助,ackKnowledge Please我如何计算出5的起始值,因此a1*x1^b1+a2*x2^b2等。我通过尝试和错误以及对函数行为的认识来计算。我尝试使用日志查找起始值,但仍然没有运气,我始终得到“评估模型时产生的缺失值或无穷大”这意味着起始值是错误的。正如我所写的,我怀疑你能否找到如此复杂模型的起始值。最好的解决方案是找出因变量的响应,尝试文献中提出的不同函数,然后拟合模型。看看这里的答案是否对你有帮助,ack谢谢