Как провести тестирование каждой переменной и изменить ее?
Я хочу проверить значение выброса каждой переменной в R и изменить значение выброса переменной на конкретное значение.
Многие люди написали в stackru, чтобы порекомендовать outlierTest
функция в пакете автомобиля.
Однако функция outlierTest извлекает результат конкретной строки, а не переменной.
Я хочу, чтобы переменная имела выброс и изменила это значение на конкретное значение. Какие функции и код я должен использовать?
+ Вот мой код данных. Это открытый исходный код. Таким образом, вы можете загрузить эти данные в следующем коде.
credit<-read.csv("http://freakonometrics.free.fr/german_credit.csv", header=TRUE)
F=c(1,2,4,5,7,8,9,10,11,12,13,15,16,17,18,19,20,21)
for(i in F) credit[,i]=as.factor(credit[,i])
2 ответа
У вас есть несколько вариантов для обнаружения и изменения выбросов. Пожалуйста, проверьте этот действительно полезный пост:
https://www.r-bloggers.com/outlier-detection-and-treatment-with-r/
Найти отклонение и заменить его значением 99-го процентиля
Data_Outlier <- read.csv(file.choose()) # Your dataset
percentile.table = data.frame(NULL)
for(i in 2:ncol(Data_Outlier))
{
if (is.numeric(Data_Outlier[,i]))
{
percentile_value <- quantile(Data_Outlier[,i],c(0.99),na.rm=TRUE)
Variable = names(Data_Outlier)[i]
Percentile.99 = percentile_value
table = cbind(Variable, Percentile.99)
percentile.table = rbind(percentile.table,table)
}
}
print(percentile.table,row.names=FALSE)
for(i in 2:ncol(Data_Outlier))
{
Percentile.99 = quantile(Data_Outlier[,i],c(0.99),na.rm=TRUE)
Data_Outlier[,i][Data_Outlier[,i]>Percentile.99] = Percentile.99
}