楼主: xingzhaoh
6301 9

[问答] 求高手指点R语言做完非线性分析后如何计算附件中的公式值 [推广有奖]

副教授

21%

还不是VIP/贵宾

-

威望
0
论坛币
3407 个
通用积分
13.9254
学术水平
5 点
热心指数
6 点
信用等级
3 点
经验
601 点
帖子
427
精华
0
在线时间
703 小时
注册时间
2011-9-14
最后登录
2023-11-17

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在R中
nls.sol<-nls(SKIN~a*DBH^b*H^c,data=rd,start=list(a=0.01,b=2,c=0.1))
summary(nls.sol)
得到结果:
Formula: SKIN ~ a * DBH^b * H^c
Parameters:
Estimate Std. Error t value Pr(>|t|)
a 0.01019 0.00345 2.953 0.00468 **
b 1.29619 0.13664 9.486 5.14e-13 ***
c 1.08877 0.18952 5.745 4.60e-07 ***
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.063 on 53 degrees of freedom
Number of iterations to convergence: 6
Achieved convergence tolerance: 1.535e-06

请问由结果如何计算附件中的公式值



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:高手指点 求高手 R语言 非线性 Convergence 附件 standard error Error start

公式.docx

20.73 KB

回帖推荐

wooson 发表于8楼  查看完整内容

y

wooson 发表于2楼  查看完整内容

fitvalue = fitted(nls.sol) R2 = 1-sum((rd$SKIN-fitvalue)^2)/sum((rd$SKIN-mean(rd$SKIN))^2) TRE = sum((rd$SKIN-fitvalue)/sum(fitvalue)*100 其它的照算就是
沙发
wooson 发表于 2012-4-11 18:10:42 |只看作者 |坛友微信交流群
fitvalue = fitted(nls.sol)
R2 = 1-sum((rd$SKIN-fitvalue)^2)/sum((rd$SKIN-mean(rd$SKIN))^2)
TRE = sum((rd$SKIN-fitvalue)/sum(fitvalue)*100
其它的照算就是
已有 1 人评分论坛币 热心指数 收起 理由
qoiqpwqr + 20 + 1 热心帮助其他会员

总评分: 论坛币 + 20  热心指数 + 1   查看全部评分

使用道具

藤椅
tmdxyz 发表于 2012-4-12 07:57:11 |只看作者 |坛友微信交流群
值得学习,mark

使用道具

板凳
xingzhaoh 发表于 2012-4-12 10:49:46 |只看作者 |坛友微信交流群
wooson 发表于 2012-4-11 18:10
fitvalue = fitted(nls.sol)
R2 = 1-sum((rd$SKIN-fitvalue)^2)/sum((rd$SKIN-mean(rd$SKIN))^2)
TRE = s ...
非常感谢,带绝对值和根号的怎么计算呀,怎么样表示绝对值和根号

使用道具

报纸
xingzhaoh 发表于 2012-4-12 11:05:45 |只看作者 |坛友微信交流群
wooson 发表于 2012-4-11 18:10
fitvalue = fitted(nls.sol)
R2 = 1-sum((rd$SKIN-fitvalue)^2)/sum((rd$SKIN-mean(rd$SKIN))^2)
TRE = s ...
再请问如何计算带绝对值和根号的公式,就是绝对值和根号如何用R语言表示

使用道具

地板
wooson 发表于 2012-4-12 15:12:21 |只看作者 |坛友微信交流群
xingzhaoh 发表于 2012-4-12 11:05
再请问如何计算带绝对值和根号的公式,就是绝对值和根号如何用R语言表示
绝对值 abs()
开方 sqrt()   或者  ^0.5

使用道具

7
xingzhaoh 发表于 2012-4-12 15:19:46 |只看作者 |坛友微信交流群
wooson 发表于 2012-4-12 15:12
绝对值 abs()
开方 sqrt()   或者  ^0.5
fitvalue = fitted(nls.sol)
R2 = 1-sum((rd$SKIN-fitvalue)^2)/sum((rd$SKIN-mean(rd$SKIN))^2)
ME=sum(rd$SKIN-fitvalue)/ length(rd$SKIN)
MAE= sum(abs(rd$SKIN-fitvalue))/ length(rd$SKIN)
TRE= sum(rd$SKIN-fitvalue)/sum(fitvalue)*100
MSE= sum((rd$SKIN-fitvalue)/ fitvalue)/ length(rd$SKIN) *100
MPSE= sum(abs(rd$SKIN-fitvalue)/ fitvalue)/ length(rd$SKIN) *100
请问怎么样能把这些公式整合fuction{},这样不用一个一个的求了
而且function函数中可以改变rd$SKIN这个变量,在另外nls.sol<-nls(STEM~a*DBH^b,data=rd,start=list(a=0.01,b=2)),nls.sol<-nls(TOTAL~a*DBH^b,data=rd,start=list(a=0.01,b=2))中的可以rd$STEM, rd$TOTAL 等等不做修改,不知这样表达的是否清楚,谢谢你的帮助

使用道具

8
wooson 发表于 2012-4-12 15:56:07 |只看作者 |坛友微信交流群
  1. CalFun <- function(y, yhat){
  2. R2 = 1-sum((y-yhat)^2)/sum((y-mean(y))^2)
  3. ME = sum(y-yhat)/ length(y)
  4. MAE = sum(abs(y-yhat))/ length(y)
  5. TRE = sum(y-yhat)/sum(yhat)*100
  6. MSE = sum((y-yhat)/ yhat)/ length(y) *100
  7. MPSE = sum(abs(y-yhat)/ yhat)/ length(y) *100
  8. result = data.frame(R2 = R2, ME = ME, MAE = MAE, TRE = TRE, MSE = MSE, MPSE=MPSE)
  9. return(round(result, 5))
  10. }
复制代码
y <- rd$SKIN
yhat <- fitted(nls.sol)

(resul <- CalFun(y, yhat))

使用道具

9
xingzhaoh 发表于 2012-4-12 16:16:14 |只看作者 |坛友微信交流群
wooson 发表于 2012-4-12 15:56
y
高手呀,今天太感谢你了

使用道具

10
xingzhaoh 发表于 2012-4-15 12:30:00 |只看作者 |坛友微信交流群
wooson 发表于 2012-4-12 15:56
y
你好,我用的是联立方程组:
如下
library( systemfit )
STEM.formula<-STEM~ a1*DBH^b1/( a1*DBH^b1+ a2*DBH^b2+
             a3*DBH^b3+ a4*DBH^b4+ a5*DBH^b5)* (a0*DBH^b0)
SKIN.formula<-SKIN~ a2*DBH^b2/( a1*DBH^b1+ a2*DBH^b2+
             a3*DBH^b3+ a4*DBH^b4+ a5*DBH^b5)* (a0*DBH^b0)
LEAF.formula<-LEAF~ a3*DBH^b3/( a1*DBH^b1+ a2*DBH^b2+
             a3*DBH^b3+ a4*DBH^b4+ a5*DBH^b5)* (a0*DBH^b0)
BRANCH.formula<-BRANCH~ a4*DBH^b4/( a1*DBH^b1+ a2*DBH^b2+
             a3*DBH^b3+ a4*DBH^b4+ a5*DBH^b5)* (a0*DBH^b0)
UNDER.formula<-UNDER~ a5*DBH^b5/( a1*DBH^b1+ a2*DBH^b2+
             a3*DBH^b3+ a4*DBH^b4+ a5*DBH^b5)* (a0*DBH^b0)
TOTAL.formula<-UNDER~ (a0*DBH^b0)^2/( a1*DBH^b1+ a2*DBH^b2+
             a3*DBH^b3+ a4*DBH^b4+ a5*DBH^b5)
labels <- list( " STEM.formula ", " SKIN.formula ", " LEAF.formula ", " BRANCH.formula ",
" UNDER.formula ",  " TOTAL.formula ")
inst <- ~ DBH+STEM+SKIN+LEAF+BRANCH+UNDERL+TOTAL
start.values <- c(a0=0.1,b0=2.3,a1=0.06,b1=2.4,a2=0.03,b2=1.8,a3=0.02,b3=1.7,
a4=0.05,b4=1.8,a5=0.01,b5=2.4)
model<-list(STEM.formula,SKIN.formula,LEAF.formula,BRANCH.formula,UNDER.formula, TOTAL.formula)
model.ols <- nlsystemfit( "OLS", model, start.values, data=rd, eqnlabels=labels )

用你给的方程求出
y <- rd$LEAF
hat <- fitted(LEAF.formula)
ErYuan (y, yhat)
R.Squred SEE TRE MSE MPE MPSE
  1               0   NaN   0    0     0
您能帮我找找原因吗?非常感谢


使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 17:04