ols残差_python数据关系型图表散点图系列残差分析图
參差分析圖(線性回歸、二次回歸)
殘差分析(residual analysis)回歸方程擬合的數(shù)值和實(shí)際數(shù)值的差值就是殘差;殘差分析是通過殘差所提供的信息,分析出數(shù)據(jù)的可靠性、周期性或其他干擾;用于分析模型的假定正確與否的方法;殘差:指觀測值與預(yù)測值(擬合值)之間的差,即實(shí)際觀測值與回歸估算值的差;
繪制殘差圖
通常使用顏色漸變及氣泡面積大小,通過視覺暗示對應(yīng)殘差的絕對值大小,用于實(shí)際數(shù)據(jù)點(diǎn)的表示;
擬合數(shù)據(jù)點(diǎn)則用小空心圓圈表示,并放置在灰色的擬合曲線上;
用直線連接實(shí)際數(shù)據(jù)點(diǎn)和擬合數(shù)據(jù)點(diǎn);
殘差的絕對值越大,顏色越紅、氣泡也越大,連接直線越長,可以很清晰地觀察數(shù)據(jù)的擬合效果;
殘差分析圖繪制方法
先根據(jù)擬合曲線計算預(yù)測值和殘差;
再使用實(shí)際值與預(yù)測值繪制散點(diǎn)圖;
最后使用殘差作為實(shí)際值的誤差線長度,添加誤差線;
實(shí)現(xiàn)實(shí)際值與預(yù)測值的連接;
將實(shí)際值的氣泡面積大小與顏色映射到對應(yīng)點(diǎn)的殘差數(shù)值;
Statsmodels包的sm.OLS()函數(shù)可以實(shí)現(xiàn)線性或多項(xiàng)式回歸擬合方程的求解,依據(jù)方程,可以求取預(yù)測值;
繪制線性回歸
import pandas as pd
import numpy as np
from plotnine import *
import statsmodels.api as sm
df=pd.read_csv('d:\python\out\ResidualAnalysisD.csv')
#線性回歸
results = sm.OLS(df.y2, df.x).fit()
df['predicted']=results.predict() # 保存預(yù)測值
df['residuals']=df.predicted-df.y2 #保存殘差(有正有負(fù))
df['Abs_Residuals']=np.abs(df.residuals) #保存殘差的絕對值
#mydata包含x、y2、predicted、residuals、Abs_Residuals 共5列數(shù)值
base_Residuals=(ggplot(df, aes(x = 'x', y = 'y2')) +
geom_point(aes(fill ='Abs_Residuals', size = 'Abs_Residuals'),shape='o',colour="black") +
# 使用實(shí)際值繪制氣泡圖,并將氣泡的顏色和面積映射到殘差的絕對值A(chǔ)bs_Residuals
geom_line(aes(y = 'predicted'), color = "lightgrey") + #添加空心圓圈的預(yù)測值
geom_point(aes(y = 'predicted'), shape = 'o') + #添加空心圓圈的預(yù)測值
geom_segment(aes(xend = 'x', yend = 'predicted'), alpha = .2) +#添加實(shí)際值和預(yù)測值的連接線...
scale_fill_gradientn(colors = ["black", "red"]) + #填充顏色映射到red單色漸變系
guides(fill = guide_legend(title="Rresidual"),
size = guide_legend(title="Rresidual"))+
theme(
axis_title=element_text(size=18,face="plain",color="black"),
axis_text = element_text(size=16,face="plain",color="black"),
aspect_ratio =1.1,
figure_size = (5, 5),
dpi = 100)
)
print(base_Residuals)
繪制二次回歸
import pandas as pd
import numpy as np
from plotnine import *
import statsmodels.api as sm
df=pd.read_csv('d:\python\out\ResidualAnalysisD.csv')
#二次回歸
X = np.column_stack((df.x, df.x**2))
#使用 sm.add_constant() 在 array 上加入一列常項(xiàng) 1。
X = sm.add_constant(X)
results = sm.OLS(df.y5, X).fit()
df['predicted']=results.predict() # 保存預(yù)測值
df['residuals']=df.predicted-df.y5 #保存殘差(有正有負(fù))
df['Abs_Residuals']=np.abs(df.residuals) #保存殘差的絕對值
#mydata包含x、y2、predicted、residuals、Abs_Residuals 共5列數(shù)值
base_Residuals1=(ggplot(df, aes(x = 'x', y = 'y5')) +
geom_point(aes(fill ='Abs_Residuals', size = 'Abs_Residuals'),shape='o',colour="black") +
# 使用實(shí)際值繪制氣泡圖,并將氣泡的顏色和面積映射到殘差的絕對值A(chǔ)bs_Residuals
geom_line(aes(y = 'predicted'), color = "lightgrey") + #添加空心圓圈的預(yù)測值
geom_point(aes(y = 'predicted'), shape = 'o') + #添加空心圓圈的預(yù)測值
geom_segment(aes(xend = 'x', yend = 'predicted'), alpha = .2) +#添加實(shí)際值和預(yù)測值的連接線...
scale_fill_gradientn(colors = ["black", "red"]) + #填充顏色映射到red單色漸變系
guides(fill = guide_legend(title="Rresidual"),
size = guide_legend(title="Rresidual"))+
theme(
axis_title=element_text(size=18,face="plain",color="black"),
axis_text = element_text(size=16,face="plain",color="black"),
aspect_ratio =1.1,
figure_size = (5, 5),
dpi = 100)
)
print(base_Residuals1)
總結(jié)
以上是生活随笔為你收集整理的ols残差_python数据关系型图表散点图系列残差分析图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hpm128无法共享打印_打印机共享后不
- 下一篇: python 获取 特定日期 6个月前的