zoukankan      html  css  js  c++  java
  • MATLAB remove outliers.

    Answer by Richard Willey on 9 Jan 2012
    
    

    Hi Michael

    MATLAB doesn't provide a specific function to remove outliers. In general you have a couple different options to deal with outliers.

    1. You can create an index that flags potential outliers and either delete them from your data set or substitute more plausible values

    2. You can use robust techniques like robust regression which are less sensitive to the presence of outliers.

    Your choice of strategies will depend a lot on your knowledge about the data set. For example, if you have a lot of data points that are coded with a value like -9999 these are probably error codes of some kind rather than actual numeric information.

    I'm including some simple example code which shows a standard technique to detect outliers.


    =====================
    % Create a vector of X values clear all clc hold off
    X = 1:100;
    X = X';
    
    % Create a noise vector
    noise = randn(100,1);
    
    % Create a second noise value where sigma is much larger
    noise2 = 10*randn(100,1);
    
    % Substitute noise2 for noise1 at obs# (11, 31, 51, 71, 91)
    % Many of these points will have an undue influence on the model 
    
    noise(11:20:91) = noise2(11:20:91);
    
    % Specify Y = F(X)
    Y = 3*X + 2 + noise;
    
    % Cook's Distance for a given data point measures the extent to 
    % which a regression model would change if this data point 
    % were excluded from the regression. Cook's Distance is 
    % sometimes used to suggest whether a given data point might be an outlier.
    
    % Use regstats to calculate Cook's Distance
    stats = regstats(Y,X,'linear');
    
    % if Cook's Distance > n/4 is a typical treshold that is used to suggest
    % the presence of an outlier
    potential_outlier = stats.cookd > 4/length(X);
    
    % Display the index of potential outliers and graph the results
    X(potential_outlier)
    scatter(X,Y, 'b.')
    hold on
    scatter(X(potential_outlier),Y(potential_outlier), 'r.')
  • 相关阅读:
    mac md5/base64 终端处理 及文件处理js
    ag(Silver Searcher)查找文件
    js压缩之uglify-js
    iReport Designer在mac下打不开
    mac新建批处理文件,双击启动.sh文件
    将本地文件夹添加到Git仓库
    vue2.X + HTML5 plus 拍照和调用设备相册 另附 图片转base64和压缩图片方法
    Vue3-js 学习笔记
    Vue2.x 常用功能和方法
    typescript 编译报错 不能用于索引类型
  • 原文地址:https://www.cnblogs.com/gisalameda/p/6041714.html
Copyright © 2011-2022 走看看