是否可以在R中打印出模型的数学公式。例如,
library(usl)
data(raytracer)
usl.model <- usl(throughput ~ processors, data = raytracer)
我希望能够看到这个模型的(usl.model)公式。任何想法是否可行?
答案 0 :(得分:1)
它位于模型的call
位置。您可以使用以下方式访问它:
> usl.model@call
usl(formula = throughput ~ processors, data = raytracer)
更紧凑的选项,例如用于显示目的,是:
> print(as.formula(usl.model@call), showEnv=FALSE)
throughput ~ processors
更一般地说,在复杂的对象/列表/等上,str()
是结构上的一个很好的切入点。
> str(usl.model)
Formal class 'USL' [package "usl"] with 15 slots
..@ frame :'data.frame': 11 obs. of 2 variables:
.. ..$ throughput: num [1:11] 20 78 130 170 190 200 210 230 260 280 ...
.. ..$ processors: num [1:11] 1 4 8 12 16 20 24 28 32 48 ...
.. ..- attr(*, "terms")=Classes 'terms', 'formula' length 3 throughput ~ processors
[.../...]
..@ call : language usl(formula = throughput ~ processors, data = raytracer)
..@ regr : chr "processors"
..@ resp : chr "throughput"
您还可以将@
(或$
)添加到对象名称(例如usl.model@
),然后按<tab>
。
答案 1 :(得分:1)
&#39; usl&#39;文件说:
The Universal Scalability Law can be expressed with following
formula. ‘C(N)’ predicts the relative capacity of the system for a
given load ‘N’:
C(N) = N / (1 + sigma * (N - 1) + kappa * N * (N - 1))
我不确定如何解释您的问题,但是它会起作用
来自sigma
和kappa
的{{1}}和summary(usl.model)
系数
把它们插入这个等式中?
更新:对于raytracer
示例,看起来N
代表了C(N)
处理器数量和吞吐量N=raytracer$processors;
attach(as.list(usl.model@coefficients))
F=usl.model@scale.factor
data.frame(raytracer, pred=F* N / (1 + sigma * (N - 1) + kappa * N * (N - 1)))
:
processors throughput pred
1 1 20 20.00000
2 4 78 69.55746
3 8 130 118.48067
4 12 170 154.75037
5 16 190 182.70168
6 20 200 204.89242
7 24 210 222.92923
8 28 230 237.87214
9 32 260 250.44877
10 48 280 285.56580
11 64 310 306.91823
这会产生:
default
我不确定如何计算sigma和kappa。文档
说def lol
transaction do
puts 'Block in method: starting transaction with block with return'
return
puts 'this will not show'
end
end
lol()
transaction do
puts 'block in Kernel: starting transaction with block with return'
return
puts 'this will not show'
end
方法使用&#34;转换成第二个
度多项式&#34; (引用冈瑟),但如果模型框架缺乏
预测值为1然后它似乎回退到优化
系数(比例因子,西格玛和卡帕)最小化总和
平均实际和预测响应变量之间的差异
(上面的最后两列)。