数据预处理之缺失值的拟合法#matlab

1.拟合法处理缺失值

1.1插值法介绍

       拟合也叫曲线逼近,也可以用于处理缺失值。通过利用其他变量建立模型,预测缺失变量的值。不同于插值法,拟合法并不要求曲线一定通过数据点,只要求拟合的曲线能合理地反映数据的基本趋势。或者说,插值法只想求出值,而拟合法更关注函数关系,并且可以用于预测。

        此外,拟合法可以用来补充数据范围之外的数据,例如只收集了小明1-12小时的每个小时的体温,拟合法不仅可以补充空白值,还可以拟合出1-12小时的每隔0.5小时的值,也可以给出第13.5(超过12)的值。而作者对第三种作用的理解的是该作用与预测模型相类似,因此,拟合法也有预测的功能。        

        拟合法适用于缺失值较多,或者缺失值与其他变量之间存在一定关系的情况。然而,如果其他变量与缺失变量无关,那么拟合得到的结果将毫无意义。

        一般拟合方法有两种,一种是多项式拟合,还有一种是给定函数拟合。作者认为给定函数拟合可以理解为:已知Y=F(X),求解当X=N时,F(N)=?在数学建模中,F(X)这个函数可能复杂,也可能简单,但只要记住此种类型下的拟合逻辑就行。多项式拟合更有普遍性。

1.2多项式拟合标准代码

polyfit(X,Y,N) %多项式拟合,返回降幂排列的多项式系数。
polyval(P,XI) %计算多项式的值。

        其中,X,Y  是数据点的值;N 是拟合的最高次幂;P 是返回的多项式系数;XI 是要求的点的横坐标。

1.3 多项式拟合案例

假设:原始数据:   x=[1,2,3,4,5,6];y=[1,4,9,14,26,38];

clc
x=[1,2,3,4,5,6];%原始数据
y=[1,4,9,14,26,38];%原始数据
P=polyfit(x,y,3);%3为拟合的最高次幂
xi=0:0.5:8;%以0.5为步长拟合,从0到8
yi=polyval(P,xi);
% 绘制原始数据点和插值结果    
plot(x, y, 'o-', 'DisplayName', '原始数据');  % 使用'DisplayName'来设置图例中的标签  
hold on;  
plot(xi, yi, 'r-.', 'DisplayName', '多项式拟合');  % 添加图例标签  
legend;  % 调用legend函数来显示图例

运行结果如下:

            

1.4给定函数拟合

假设给定的函数如下,t为自变量:

​​​​​​​

拟合代码如下:

clear
x = [0; 0.4; 1.2; 2; 2.8; 3.6; 4.4; 5.2; 6; 7.2; 8; 9.2; 10.4; 11.6; 12.4; 13.6; 14.4; 15];  
y = [1; 0.85; 0.29; -0.27; -0.53; -0.4; -0.12; 0.17; 0.28; 0.15; -0.03; -0.15; -0.071; 0.059; 0.08; 0.032; -0.015; -0.02];  
f = fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'});  
% 使用fit函数创建一个fit对象,其中,独立变量t,待确定的系数{'a','k','w'}  
[cfun, gof] = fit(x, y, f);  % 注意x和y是列向量   
% cfun可以显示拟合函数的信息  
disp(cfun);  
% 创建一个用于绘图的x值范围  
xi = 0:0.1:20;  
% 使用fit对象来计算对应xi的y值  
yi = cfun(xi);   
% 绘制原始数据和拟合曲线  
plot(x, y, 'r-.*', xi, yi, 'b-');  
legend('原始数据', '拟合函数', 'Location', 'Best');  
xlabel('t');  
ylabel('y');  
title('Data Fitting to a*cos(k*t)*exp(w*t)');  
grid on;

运行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值