zoukankan      html  css  js  c++  java
  • MATLAB 机场价格数据预处理和分析

    出租车价格数据为浦东机场

    拟合机场价格变化曲线

    1. 最小二乘法
    2. 回归系数的判断(函数编写练习)
    3. 机场价格:白天和夜间加权

    数据预处理

    1. importdata函数的使用,data属性和textdata属性
    2. figure 和 hold on的使用

    运行结果:
    曲线通过拟合,相关系数为
    1.0000 0.8853
    0.8853 1.0000

    曲线通过拟合,相关系数为
    1.0000 0.9990
    0.9990 1.0000

    白天和夜间估计值:
    180.2105 229.5223
    187.0075 239.9225
    166.6165 208.7218
    166.6165 208.7218
    142.8271 172.3210
    170.0150 213.9219
    207.3985 271.1232
    187.0075 239.9225
    180.2105 229.5223
    173.4135 219.1220
    180.2105 229.5223
    173.4135 219.1220
    187.0075 239.9225
    149.6241 182.7212
    173.4135 219.1220
    187.0075 239.9225
    187.0075 239.9225
    220.9925 291.9237

    平均路程:47.611km
    白天费用(RMB/km):3.40RMB
    夜间费用(RMB/km):5.20RMB
    全天(RMB/km):3.85RMB
    全天183.25RMB

    %%数据预处理,绘制散点图
    fid=importdata('4.txt',',',1)
    disp(fid.textdata);disp(fid.data);
    A=fid.data;
    X=A(:,1);%机场里程数
    disp('机场里程:');disp(X)
    Y_1=A(:,2);%白天参考费用
    disp('白天费用:');disp(Y_1');
    Y_2=A(:,3);
    disp('夜间费用:');disp(Y_2');
    % ax1=subplot(1,2,1)
    figure
    h1=scatter(X,Y_1,'r');
    % ax2=subplot(1,2,2)
    hold on
    h2=scatter(X,Y_2,'b');
    hold on
    title('费用随路程变化');
    legend('白天','夜间')
    %% 画出拟合曲线
    clc;
    [y1,delta1]=polyfit(X,Y_1,1);
    judge(corrcoef(X,Y_1));
    y1_value=polyval(y1,X);
    plot(X,y1_value);
    hold on
    
    [y2,delta2]=polyfit(X,Y_2,1);
    judge(corrcoef(X,Y_2));
    y2_value=polyval(y2,X);
    disp('白天和夜间估计值:');disp([y1_value,y2_value]);
    plot(X,y2_value);
    legend('白天拟合曲线','夜间拟合曲线');
    
    %%机场到其他地方车费
    % clc;
    [row,line]=size(X);
    avg_km=sum(X)/row;fprintf('平均路程:%0.3fkm
    ',avg_km);
    avg_d=y1(1);fprintf('白天费用(RMB/km):%0.2fRMB
    ',avg_d);
    avg_s=y2(1);fprintf('夜间费用(RMB/km):%0.2fRMB
    ',avg_s);
    avg_p=([avg_d,avg_s]*[0.75 0.25]');
    fprintf('全天(RMB/km):%0.2fRMB
    ',avg_p);
    fprintf('全天%0.2fRMB
    ',avg_p*avg_km);
    %% 市区内
    
    function bool=judge(r)
    %判断相关系数
    if r>0.8
        bool=1;
        disp('曲线通过拟合,相关系数为');disp(r);
    else 
        bool=0;
        disp('曲线拟合效果不好,相关系数为');disp(r);
    end
    end
    
    
    追风少年
  • 相关阅读:
    并行 并发 概念
    为什么C++编译器不能支持对模板的分离式编译_刘未鹏
    并发编程的15 条建议
    VS2005 C++ str.Format 编译错误
    PPT 去除排练计时
    VS2005中 depends.exe 在哪里
    《A wavelet tour of signal processing》前言摘录
    Windows Forms 2.0 Programming 读书笔记Hello, Windows Forms
    VS2005 宽字符 unicode字符集和多字节字符集
    Windows Forms 2.0 Programming 读书笔记Hello, Windows Forms(2)
  • 原文地址:https://www.cnblogs.com/lzycodinglife/p/12586283.html
Copyright © 2011-2022 走看看