2015-12-02 6 views
0

Мне интересно, есть ли способ для учета outlier в гистограмма участок. Я хочу построить частоты случайной величины, которая очень мала и распределена вокруг нуля. Однако в большинстве случаев я рассматриваю, что у меня также есть выброс, который усложняет ситуацию. Есть ли способ настроить масштаб оси x в R/Matlab, чтобы я мог захватить распределение случайной переменной, которую я рассматриваю, а также показать outlier? Поскольку обычные способы получения графика приводят к такому масштабу, что все значения считаются нулевыми, и я хочу показать, как они распределены вокруг нуля. Поэтому в идеале я хотел бы, чтобы шкалы вокруг нуля учитывали очень малые числа, а затем после промежутка (который необязательно должен быть пропорционален фактическому расстоянию от нуля), чтобы указать значение выброса. И я не хочу удалять выброс из образца.Как объяснить выбросы в гистограмме? - R/Matlab

Возможно ли это в R/Matlab? Любые другие предложения приветствуются.

Редактировать: Проблема заключается не в определении выбросов и использовании другого цвета для них. Проблема заключается в настройке весов по оси X, поэтому я могу наблюдать распределение переменной, а также иметь выброс, включенный в график.

+0

Альтернативой использования гистограммы бункеров также для выбросов: вы можете указать выбросы от черчения каждый как отдельный маркер на рисунке. Это может сработать, если не слишком много выбросов. – mikkola

+0

@SamDickson Проблема, описанная в вопросе, который вы мне указали, отличается от моего. Решение Андера Бигури - это то, что я искал. Мне нужно лишь немного изменить его, как описано в моем другом комментарии. – Masher

ответ

2

Следующий код выполнит эту работу, но вам нужно изменить Xticklabels осей, чтобы они отображали реальное значение выбросов.

A=rand(1000,1)*0.1; 
A(1:10)=10; 


% modify the data for plotting pourposes. Get the outliers closer 
expected_maximum_value=1; % You can compute this useg 3*sigma maybe? 
distance_to_outliers=0.5; 
outlier_mean=mean(A(A>expected_maximum_value)); 
A(A>expected_maximum_value)=A(A>expected_maximum_value)-outlier_mean+distance_to_outliers; 

% plot 
h=histogram(A,'BinWidth',0.01) 

%% trick the X axis 
ax=gca; 
ax.XTickLabel{end-1}=[ax.XTickLabel{end-1} '//']; 
ax.XTickLabel{end}=['//' num2str(outlier_mean)]; 

enter image description here

+0

Спасибо за ваш ответ! После некоторых проб и ошибок я смог реализовать ваше решение, и он работает почти отлично. У меня есть еще один вопрос. Числа на моем шкале очень малы с x10-4 в конце графика. Когда я применяю трюк и заменяю ярлыки, я теряю этот x10-4. Вы знаете, как реализовать свое решение, не теряя его? Еще раз большое спасибо за вашу помощь :) – Masher

+0

@Masher Мое первое предложение было бы уменьшить значение 'distance_to_outliers' до 3 * sigma (при предположении гауссовских данных) или' 2 * expected_maximum_value'. Иначе вам нужно будет делать более трюки с тиками. –

+0

Я попробую именно так, спасибо за вашу помощь :) – Masher