How to fix my code to detect and remove properly outliers





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I am trying to detect and remove outliers from a dataset (1372 rows, 4 columns).



I wrote some code about finding them but I am not sure if this is the best way. Although I tried to remove them but instead of being removed the number 32 is replacing them. I can not understand why.



% Find outliers
meanValue = mean(data_banknote_authentication(:,1:4));
absoluteDeviation = abs(data_banknote_authentication(:,1:4) - meanValue);
mad = median(absoluteDeviation);
sensitivityFactor = 3 % I am not sure if this is correct
thresholdValue = sensitivityFactor * mad;
outlierIndexes = abs(absoluteDeviation) > thresholdValue
outliers = data_banknote_authentication(:,1:4)(outlierIndexes);
nonOutliers = data_banknote_authentication(:,1:4)(~outlierIndexes);

% Remove outliers
for i=1:1372
for k=1:4
if (outlierIndexes(i,k) == 1)
data_banknote_authentication(i,k) = ' ';
%data_banknote_authentication(i,k) = " ";
endif
endfor
endfor


I want to delete the outliers but the actual result is that in their position there is now the number 32. How can I remove them from the dataset?










share|improve this question























  • you are putting a space so ASCII=32 . Try with = as null , but remember that will resize the data_banknote_authentication dimensions

    – matzeri
    Jan 3 at 14:02











  • I tried this data_banknote_authentication(i,k) = ; but it gives me this error: a null assignment can only have one non-colon index

    – Jane
    Jan 3 at 15:48











  • do you need to cancel all the 4 data of a row or not ?

    – matzeri
    Jan 4 at 10:06


















0















I am trying to detect and remove outliers from a dataset (1372 rows, 4 columns).



I wrote some code about finding them but I am not sure if this is the best way. Although I tried to remove them but instead of being removed the number 32 is replacing them. I can not understand why.



% Find outliers
meanValue = mean(data_banknote_authentication(:,1:4));
absoluteDeviation = abs(data_banknote_authentication(:,1:4) - meanValue);
mad = median(absoluteDeviation);
sensitivityFactor = 3 % I am not sure if this is correct
thresholdValue = sensitivityFactor * mad;
outlierIndexes = abs(absoluteDeviation) > thresholdValue
outliers = data_banknote_authentication(:,1:4)(outlierIndexes);
nonOutliers = data_banknote_authentication(:,1:4)(~outlierIndexes);

% Remove outliers
for i=1:1372
for k=1:4
if (outlierIndexes(i,k) == 1)
data_banknote_authentication(i,k) = ' ';
%data_banknote_authentication(i,k) = " ";
endif
endfor
endfor


I want to delete the outliers but the actual result is that in their position there is now the number 32. How can I remove them from the dataset?










share|improve this question























  • you are putting a space so ASCII=32 . Try with = as null , but remember that will resize the data_banknote_authentication dimensions

    – matzeri
    Jan 3 at 14:02











  • I tried this data_banknote_authentication(i,k) = ; but it gives me this error: a null assignment can only have one non-colon index

    – Jane
    Jan 3 at 15:48











  • do you need to cancel all the 4 data of a row or not ?

    – matzeri
    Jan 4 at 10:06














0












0








0








I am trying to detect and remove outliers from a dataset (1372 rows, 4 columns).



I wrote some code about finding them but I am not sure if this is the best way. Although I tried to remove them but instead of being removed the number 32 is replacing them. I can not understand why.



% Find outliers
meanValue = mean(data_banknote_authentication(:,1:4));
absoluteDeviation = abs(data_banknote_authentication(:,1:4) - meanValue);
mad = median(absoluteDeviation);
sensitivityFactor = 3 % I am not sure if this is correct
thresholdValue = sensitivityFactor * mad;
outlierIndexes = abs(absoluteDeviation) > thresholdValue
outliers = data_banknote_authentication(:,1:4)(outlierIndexes);
nonOutliers = data_banknote_authentication(:,1:4)(~outlierIndexes);

% Remove outliers
for i=1:1372
for k=1:4
if (outlierIndexes(i,k) == 1)
data_banknote_authentication(i,k) = ' ';
%data_banknote_authentication(i,k) = " ";
endif
endfor
endfor


I want to delete the outliers but the actual result is that in their position there is now the number 32. How can I remove them from the dataset?










share|improve this question














I am trying to detect and remove outliers from a dataset (1372 rows, 4 columns).



I wrote some code about finding them but I am not sure if this is the best way. Although I tried to remove them but instead of being removed the number 32 is replacing them. I can not understand why.



% Find outliers
meanValue = mean(data_banknote_authentication(:,1:4));
absoluteDeviation = abs(data_banknote_authentication(:,1:4) - meanValue);
mad = median(absoluteDeviation);
sensitivityFactor = 3 % I am not sure if this is correct
thresholdValue = sensitivityFactor * mad;
outlierIndexes = abs(absoluteDeviation) > thresholdValue
outliers = data_banknote_authentication(:,1:4)(outlierIndexes);
nonOutliers = data_banknote_authentication(:,1:4)(~outlierIndexes);

% Remove outliers
for i=1:1372
for k=1:4
if (outlierIndexes(i,k) == 1)
data_banknote_authentication(i,k) = ' ';
%data_banknote_authentication(i,k) = " ";
endif
endfor
endfor


I want to delete the outliers but the actual result is that in their position there is now the number 32. How can I remove them from the dataset?







octave outliers pattern-recognition






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 3 at 12:12









JaneJane

256




256













  • you are putting a space so ASCII=32 . Try with = as null , but remember that will resize the data_banknote_authentication dimensions

    – matzeri
    Jan 3 at 14:02











  • I tried this data_banknote_authentication(i,k) = ; but it gives me this error: a null assignment can only have one non-colon index

    – Jane
    Jan 3 at 15:48











  • do you need to cancel all the 4 data of a row or not ?

    – matzeri
    Jan 4 at 10:06



















  • you are putting a space so ASCII=32 . Try with = as null , but remember that will resize the data_banknote_authentication dimensions

    – matzeri
    Jan 3 at 14:02











  • I tried this data_banknote_authentication(i,k) = ; but it gives me this error: a null assignment can only have one non-colon index

    – Jane
    Jan 3 at 15:48











  • do you need to cancel all the 4 data of a row or not ?

    – matzeri
    Jan 4 at 10:06

















you are putting a space so ASCII=32 . Try with = as null , but remember that will resize the data_banknote_authentication dimensions

– matzeri
Jan 3 at 14:02





you are putting a space so ASCII=32 . Try with = as null , but remember that will resize the data_banknote_authentication dimensions

– matzeri
Jan 3 at 14:02













I tried this data_banknote_authentication(i,k) = ; but it gives me this error: a null assignment can only have one non-colon index

– Jane
Jan 3 at 15:48





I tried this data_banknote_authentication(i,k) = ; but it gives me this error: a null assignment can only have one non-colon index

– Jane
Jan 3 at 15:48













do you need to cancel all the 4 data of a row or not ?

– matzeri
Jan 4 at 10:06





do you need to cancel all the 4 data of a row or not ?

– matzeri
Jan 4 at 10:06












0






active

oldest

votes












Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54022063%2fhow-to-fix-my-code-to-detect-and-remove-properly-outliers%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54022063%2fhow-to-fix-my-code-to-detect-and-remove-properly-outliers%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

MongoDB - Not Authorized To Execute Command

How to fix TextFormField cause rebuild widget in Flutter

in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith