最近,我正在读《深入浅出数据分析》这本书。
上期跟大家分享的书中主题是「」。
今天,我来聊聊「合理误差」,谈谈如何减小误差,写出更强算法。
01 加薪计算器的结果准确性1、预测有失精准并不稀奇,重要的是要懂得如何控制误差及如何尽量降低误差,从而提高预测可信度。
2、在「」中,你创建了一个线性回归算法,这个工具能根据人们要求的加薪幅度预测他们的实际加薪幅度。许多客户都在使用这个加薪算法,但是结果总是喜忧参半,有的人很满意,而有的人大为恼火。
3、客户组成:
除非有一大帮子人都记不住他们提过什么,否则最后一种结果对你用处不大。
4、记住,回归方程预测的是人们平均得到的结果。显然,并不是每个人都能和平均值一样。
5、要求加薪25%的家伙不在模型范围内。用回归方程预测数据范围以外的数值称为外插法。小心外插法!
6、外插法与内插法有所不同,内插法对数据范围内的点进行预测,这正是回归法的本来目的。内插法很准确,但使用外插法就得小心了。毕竟低劣的预测比不作预测更糟糕。
7、如果打算使用外插法,就需要指定附加假设条件,明确表示不考虑数据集外发生的情况。
02 对数据范围以外的情况进行预测1、千万要对模型假设保持戒心。观察他人的模型时,一定要想一想他们的假设有何道理,以及他们是否忘记了某种假设。不合适的假设会使模型完全失效,甚至具有危险的欺骗性。
2、修改算法,加上注释:这个公式只在加薪要求x介于0%到22%之间时有效。
3、经过改进的新回归公式很少再让客户走进未知统计地带。
03 什么原因造成了偏离预测结果的现象呢1、有些人得到的加薪比模型预测的多,有的人得到的加薪比模型预测的少。
2、机会误差=实际结果与模型预测结果之间的偏差。在统计学中,机会误差又称为残差,对残差的分析是优秀的统计模型的核心。
3、尽管你可能永远无法恰当地解释每个偏离模型的残差的原因,但必须小心观察散点图上的残差。如果你能正确地解释残差,就能更好地理解手头的数据以及模型的用途。
4、指出误差并不意味着你的分析是错误的,只能说明你对预测的真实程度无所隐瞒。你的客户越是理解你的预测,越是能根据预测作出正确的决策。
5、指出预测范围(比如6%-8%)比单单指出一个数字(7%)有用得多(并且可靠得多)。
04 定量地指定误差1、你需要一个统计值,通过它体现出典型的点(或称为观察结果)相对于回归线的平均偏移量。
2、有了回归线的机会误差(或者称为均方根误差),就能告诉我们实际结果与典型预测结果之间可能有多大差距。
3、根据要求值预测实际值的均方根误差为5%,那么,典型的观察结果与回归方程预测出来的值可能偏离5%。
05 用R软件计算均方根误差
1、在中,你在R中创建了线性模型对象。
下载地址:
https://resources.oreilly.com/examples/9780596153946/-/blob/master/hfda_ch10_employees.csv
如果还没有在R中创建myLm对象,请输入以下函数:
data=read.csv("C:/Users/admin/Downloads/hfda_ch10_employees.csv")
myLm<-lm(received[negotiated==TRUE]~requested[negotiated==TRUE],data)
2、用R计算均方根误差
R的内部使用下面这个公式计算均方根误差:
输入下面的指令,看一看R对模型的汇总
summary(myLm)
均方根误差将会出现在输出结果中,但也可以输入下面这个指令查看均方根误差
summary(myLm)$sigma
均方根误差为2.298
3、更新算法:大部分(但并非全部)加薪结果都会落在高于或低于预测结果2.3%的范围内。
06 如何减小误差1、针对散点图上的每个取值区间,用颜色涂出误差所在的区间。
2、我们的数据里包含两类人,比如保守派(加薪幅度在10%以内)和激进派(加薪幅度大于10%),我们应该有两种模型,把数据拆开,分析结果。
3、分割的根本目的是管理误差。将数据分拆为几个组成为分割。如果为几个分组分别创建预测模型比单独使用一个模型更能减小误差,则应进行分割。
4、在单独使用一个模型时,要求加薪10%(或以下)的人的估计误差太高,而要求加薪10%以上的人的估计误差则太低。
5、将数据分割为两个分组后,统计结果更敏感,更能体现各个分区内的情况,从而有助于管理误差。
6、把要求加薪10%以下和要求加薪10%以上的人员数据分开,两条回归线很可能具有不同的外观,也就是两个独立的模型。
7、相比原来的模型,分区模型能更好地处理误差。保守派和激进派的新模型与数据都重合得更好,回归线的斜率更靠谱。保守派的均方根误差更低,激进派的均方根误差更高。
07 优秀的回归分析兼具解释功能和预测功能1、将加薪分析图形分为两个分区既能让分析结果与数据更吻合,又能避免出现有太多解释或太多预测的极端情况,如此一来,你的模型就是有用模型。
2、更多解释功能意味着你对数据了如指掌,但无法作出任何预测。更多预测功能意味着你的预测是正确的,但不够精确,无法发挥作用。
3、你的分析应该介于具有完全解释功能和具有完全预测功能之间,具体位于这两个极限位置之间的哪个位置取决于你——分析师的最佳判断。
08 用R软件实现新模型1、创建模型,通过系数调整加薪预测算法。
2、输入下面的指令行,创建与两个分区相对应的新的线性模型对象。
myLmBig<-lm(received[negotiated==TRUE & requested>10]~requested[negotiated==TRUE & requested>10],data)
myLmSmall<-lm(received[negotiated==TRUE & requested<=10]~requested[negotiated==TRUE & requested<=10],data)
3、使用下面这些summary函数查看两个线性模型对象的汇总结果,解释这些指令,说说每条指令完成的工作。
summary(myLmSmall)$coefficients
summary(myLmSmall)$sigma
summary(myLmBig)$coefficients
summary(myLmBig)$sigma
4、保守派的截距为0.7933468,斜率为0.9424946,均方根误差为1.374526;激进派的截距为7.813403,斜率为0.302609,均方根误差为4.544424。
09 写出你的更强算法1、如果要求加薪低于10%,则使用以下公式:
y=0.8 0.9x
你得到的加薪将会是预测加薪的 /-1.4%。
2、如果要求加薪等于或高于10%,则使用以下公式:
y=7.8 0.3x
你得到的加薪将会是预测加薪的 /-4.5%。
3、以上算法仅在加薪要求不超过22%时有效。
4、一写出了不同模型;二提出了适用的加薪范围,同时避免外插法;三考虑了均方根误差。太完美了!
5、新算法确实开始奏效,人人都为此激动不已。大家自己决定是冒高风险,还是降低要求。求安稳的人心想事成,而不惧风险的人也能理解他们为什么会有这种结果。
END
其他比较受欢迎的内容,希望对你有帮助:
看完点个赞,以后分享更多。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved