R语言最优化模型怎么做

Python025

R语言最优化模型怎么做,第1张

参考代码:

dat <- read.table("clipboard",header = T)

dat

lm.d<- lm(y~x1+x2+x3+x4+x5,data = dat)

summary(lm.d)

lm.d2 <- step(lm.d) #逐步回归法,挑选变量子集

summary(lm.d2)

newd <- data.frame(x1=12135,x2=28679,x3=19978,x4=502,x5=24950)

predict(lm.d,newd,interval = "prediction")#预测值

predict(lm.d,newd,interval = "prediction",scale = T) #预测均值

编译:Dayueban

责编:王采荷

数据集不算大,所以我们可以采用中括号的方式,直接选择你想要保留的行和列,比如我想保留 region=2 的行,然后与其对应的 Minor.Population 和 Education.Expenditures ,那我我就可以这样:

!!!敲黑板

需要注意的是,如果数据集比较小,采用上述两种方法还可以,但是如果是长百上千行和列,如果用这样的方法去取子集的话则会事倍功半 ,那么接下来我们可能需要更加便捷和高效的方法:

那么这里的 subset 函数是什么意思呢,首先 subset 函数包括三个选项:subset(x, subset, select, ...),其中x表示原始数据集,第二个参数表示截取满足你要求的行,第三个参数表示你要保留的列,怎么样,是不是更简单一些,操作性更强呢?

总的来说,物种方法各有特点,无论哪种,有助于你的数据取子集和快速的数据分析即可。

https://www.r-bloggers.com/5-ways-to-subset-a-data-frame-in-r/

一般地, TOPSIS综合评价法 主要包含两个步骤:计算权重和计算相对接近度。如需详细了解 TOPSIS综合评价法 的原理和方法,请自行百度,网上有许多非常详尽的原理说明和案例讲解。

根据熵权法确定各个指标的权重;计算各指标信息熵,指标的信息熵越小,则该指标表达信息的不确定性小,在综合评价中对决策的帮助更大,即应该有较大的权重。熵权法是一种客观的赋予权重的方法,它通过各个指标所提供的信息不确定性来确定各指标的权重

根据权重加权规范化指标属性矩阵后,确定正理想方案Amax和负理想方案 Amin,计算各备选方案与Amax 、Amin的距离,以评估与正负理想方案的接近程度,根据相对接近度确定优先次序。其中计算距离一般使用欧式距离。

按照惯例,导入需要使用的包 data.table 、 plyr 。然后载入使用的数据,我们简单看一下案例数据情况。

其中的字段target即为目标字段,我们需要对其含有的8个方案(A~H)进行综合评价排序,选择其中的最优方案。该数据集中的指标均为正向指标。正向指标表示指标的数值越高越好,负向指标则表示指标的数值越低越好,这决定了该指标在进行权重计算时的处理方式。

计算权重的第一步是计算各个指标的熵值,由于我们用到的指标均是正向指标,所以选择自定义函数 entropy_positive 即可。如果指标既存在正向指标又存在负向指标,则可分开进行计算。自定义函数情况如下:

调用函数并完成权重的计算,x1~x8的权重依次为:11.10%、6.61%、28.19%、7.08%、11.88%、8.11%、11.94%、15.09%,计算过程如下:

在将指标向量规范化后,利用熵值法得到的权重计算得到加权标准化矩阵,然后提取正理想方案和负理想方案并计算出各个方案距离正负理想方案的距离,最终根据计算得到距离比值进行排序。具体计算过程如下:

至此,我们就完成了用 TOPSIS综合评价法 进行多对象多指标的最优对象选择,输出的结果如下,显然在这八个方案中,方案A为最优方案。