Подгонка логистической регрессионной модели к данным о весе доказательств (WOE) с учетом ограничений на коэффициенты модели
[
подбирает логистическую регрессионую модель к данным о весе доказательств (WOE), удовлетворяющим равенствам, неравенствам или связанным ограничениям коэффициентов модели. sc
,mdl
] = fitConstrainedModel(sc
)fitConstrainedModel
сохраняет имена предикторов модели и соответствующие коэффициенты в обновленном creditscorecard
sc объекта
и возвращает GeneralizedLinearModel
mdl объекта
который содержит подобранную модель.
[
задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.sc
,mdl
]
= fitConstrainedModel(___,Name,Value
)
Чтобы вычислить счета для creditscorecard
объект с ограничениями на равенство, неравенство или ограничения коэффициентов логистической регрессионой модели, используйте fitConstrainedModel
. В отличие от fitmodel
, fitConstrainedModel
решает как задачу без ограничений, так и задачу с ограничениями. Текущий решатель, используемый для минимизации целевой функции для fitConstrainedModel
является fmincon
, из Optimization Toolbox™.
Этот пример имеет три основных раздела. Во-первых, fitConstrainedModel
используется для решения коэффициентов в модели без ограничений. Затем, fitConstrainedModel
демонстрирует, как использовать несколько типов ограничений. Наконец, fitConstrainedModel
использует bootstrapping для анализа значимости, чтобы определить, какие предикторы отклонить из модели.
Создайте creditscorecard
Данные объекта и интервала
load CreditCardData.mat sc = creditscorecard(data,'IDVar','CustID'); sc = autobinning(sc);
Модель без ограничений с использованием fitConstrainedModel
Решить для коэффициентов без ограничений используя fitConstrainedModel
с значениями по умолчанию для входных параметров. fitConstrainedModel
использует внутренний решатель оптимизации fmincon
из Optimization Toolbox™. Если вы не устанавливаете никаких ограничений, fmincon
рассматривает модель как задачу оптимизации без ограничений. Параметры по умолчанию для LowerBound
и UpperBound
являются -Inf
и +Inf
, соответственно. Для ограничений равенства и неравенства по умолчанию является пустым числовым массивом.
[sc1,mdl1] = fitConstrainedModel(sc); coeff1 = mdl1.Coefficients.Estimate; disp(mdl1.Coefficients);
Estimate _________ (Intercept) 0.70246 CustAge 0.6057 TmAtAddress 1.0381 ResStatus 1.3794 EmpStatus 0.89648 CustIncome 0.70179 TmWBank 1.1132 OtherCC 1.0598 AMBalance 1.0572 UtilRate -0.047597
В отличие от fitmodel
что дает p-значения, при использовании fitConstrainedModel
необходимо использовать bootstrapping, чтобы выяснить, какие предикторы отклоняются из модели, когда они удовлетворяют ограничениям. Это показано в разделе «Загрузка значения».
Использование fitmodel
Сравнение результатов и калибровка модели
fitmodel
подходит для логистической регрессионной модели к данным о весе доказательств (WOE), и нет никаких ограничений. Можно сравнить результаты из раздела «Без ограничений Модель с использованием fitConstrainedModel» с результатами fitmodel
чтобы убедиться, что модель хорошо калибрована.
Теперь решите задачу без ограничений, используя fitmodel
. Обратите внимание, что fitmodel
и fitConstrainedModel
использовать другие решатели. Пока fitConstrainedModel
использует fmincon
, fitmodel
использует stepwiseglm
по умолчанию. Чтобы включить все предикторы с самого начала, установите 'VariableSelection'
Аргумент пары "имя-значение" из fitmodel
на 'fullmodel'
.
[sc2,mdl2] = fitmodel(sc,'VariableSelection','fullmodel','Display','off'); coeff2 = mdl2.Coefficients.Estimate; disp(mdl2.Coefficients);
Estimate SE tStat pValue _________ ________ _________ __________ (Intercept) 0.70246 0.064039 10.969 5.3719e-28 CustAge 0.6057 0.24934 2.4292 0.015131 TmAtAddress 1.0381 0.94042 1.1039 0.26963 ResStatus 1.3794 0.6526 2.1137 0.034538 EmpStatus 0.89648 0.29339 3.0556 0.0022458 CustIncome 0.70179 0.21866 3.2095 0.0013295 TmWBank 1.1132 0.23346 4.7683 1.8579e-06 OtherCC 1.0598 0.53005 1.9994 0.045568 AMBalance 1.0572 0.36601 2.8884 0.0038718 UtilRate -0.047597 0.61133 -0.077858 0.93794
figure plot(coeff1,'*') hold on plot(coeff2,'s') xticklabels(mdl1.Coefficients.Properties.RowNames) ylabel('Model Coefficients') title('Unconstrained Model Coefficients') legend({'Calculated by fitConstrainedModel with defaults','Calculated by fimodel'},'Location','best') grid on
Как показывают и таблицы, и график, коэффициенты модели совпадают. Можно быть уверенным, что эта реализация fitConstrainedModel
хорошо калиброван.
Ограниченная модель
В подходе с ограничениями модели вы решаете для значений коэффициентов логистической модели, удовлетворяющей ограничениям. Поддерживаемые ограничения являются связанными, равенством или неравенством. Коэффициенты максимизируют определенную функцию правдоподобия по умолчанию для наблюдения , как:
где:
является неизвестным коэффициентом модели
- значения предиктора при наблюдении
- значение отклика; значение 1 представляет собой значение по умолчанию, а значение 0 представляет собой значение, отличное от значения по умолчанию
Эта формула предназначена для невзвешенных данных. Когда наблюдение i имеет вес , это означает, что есть Как много наблюдений i. Поэтому вероятность того, что дефолт происходит при наблюдении i, является продуктом вероятностей дефолта:
Точно так же вероятность ненападения для взвешенного наблюдения i равна:
Для взвешенных данных, если существует значение по умолчанию при заданном наблюдении i, чей вес является , это как если бы был отсчет этого наблюдения, и все они либо все по умолчанию, либо все не по умолчанию. может быть или не быть целым числом.
Поэтому для взвешенных данных функция правдоподобия по умолчанию для наблюдения i в первом уравнении становится
По предположению, все значения по умолчанию являются независимыми событиями, поэтому целевая функция является
или, в более удобных логарифмических терминах:
Применить ограничения к коэффициентам
После калибровки модели без ограничений, как описано в разделе «Модель без ограничений с использованием fitConstrainedModel», можно решить для коэффициентов модели, удовлетворяющих ограничениям. Можно выбрать нижнюю и верхнюю границы, такие что , кроме точки пересечения. Кроме того, поскольку возраст клиента и доход клиента несколько коррелируются, можно также использовать дополнительные ограничения на их коэффициенты, например, . Коэффициенты, соответствующие предикторам 'CustAge'
и 'CustIncome'
в этом примере и , соответственно.
K = length(sc.PredictorVars); lb = [-Inf;zeros(K,1)]; ub = [Inf;ones(K,1)]; AIneq = [0 -1 0 0 0 1 0 0 0 0;0 -1 0 0 0 -1 0 0 0 0]; bIneq = [0.05;0.05]; Options = optimoptions('fmincon','SpecifyObjectiveGradient',true,'Display','off'); [sc3,mdl] = fitConstrainedModel(sc,'AInequality',AIneq,'bInequality',bIneq,... 'LowerBound',lb,'UpperBound',ub,'Options',Options); figure plot(coeff1,'*','MarkerSize',8) hold on plot(mdl.Coefficients.Estimate,'.','MarkerSize',12) line(xlim,[0 0],'color','k','linestyle',':') line(xlim,[1 1],'color','k','linestyle',':') text(1.1,0.1,'Lower bound') text(1.1,1.1,'Upper bound') grid on xticklabels(mdl.Coefficients.Properties.RowNames) ylabel('Model Coefficients') title('Comparison Between Unconstrained and Constrained Solutions') legend({'Unconstrained','Constrained'},'Location','best')
Загрузка значения
Для задачи без ограничений стандартные формулы доступны для вычисления p-значений, которые вы используете, чтобы вычислить, какие коэффициенты значительны, а какие должны быть отклонены. Однако для ограниченной задачи стандартные формулы недоступны, и вывод формул для анализа значимости сложен. Практической альтернативой является выполнение анализа значимости посредством начальной загрузки.
В подходе bootstrapping при использовании fitConstrainedModel
, вы устанавливаете аргумент имя-значение 'Bootstrap'
на true
и выберите значение для аргумента имя-значение 'BootstrapIter'
. Загрузка означает, что выбирают выборки (с заменой) из исходных наблюдений. В каждой итерации fitConstrainedModel
решает ту же задачу с ограничениями, что и раздел «Ограниченная модель». fitConstrainedModel
получает несколько значений (решений) для каждого коэффициента и вы можете построить их как boxplot
или histogram
. Используя boxplot или гистограмму, можно изучить медианные значения, чтобы оценить, отдалены ли коэффициенты от нуля и насколько коэффициенты отклоняются от их средств.
lb = [-Inf;zeros(K,1)]; ub = [Inf;ones(K,1)]; AIneq = [0 -1 0 0 0 1 0 0 0 0;0 1 0 0 0 -1 0 0 0 0]; bIneq = [0.05;0.05]; c0 = zeros(K,1); NIter = 100; Options = optimoptions('fmincon','SpecifyObjectiveGradient',true,'Display','off'); rng('default') [sc,mdl] = fitConstrainedModel(sc,'AInequality',AIneq,'bInequality',bIneq,... 'LowerBound',lb,'UpperBound',ub,'Bootstrap',true,'BootstrapIter',NIter,'Options',Options); figure boxplot(mdl.Bootstrap.Matrix,mdl.Coefficients.Properties.RowNames) hold on line(xlim,[0 0],'color','k','linestyle',':') line(xlim,[1 1],'color','k','linestyle',':') title('Bootstrapping with N = 100 Iterations') ylabel('Model Coefficients')
Твердые красные линии в прямоугольном графике указывают, что средние значения и нижний и верхние края для и процентили. «Усы» - это минимальное и максимальное значения, не включая выбросы. Пунктирные линии представляют нижнее и верхнее ограничения на коэффициенты. В этом примере коэффициенты не могут быть отрицательными, по конструкции.
Чтобы помочь решить, какие предикторы сохранить в модели, оцените долю раз, когда каждый коэффициент равен нулю.
Tol = 1e-6; figure bar(100*sum(mdl.Bootstrap.Matrix<= Tol)/NIter) ylabel('% of Zeros') title('Percentage of Zeros Over Bootstrap Iterations') xticklabels(mdl.Coefficients.Properties.RowNames) grid on
Исходя из графика, можно отклонить 'UtilRate'
поскольку это самое большое число нулевых значений. Можно также принять решение об отклонении 'TmAtAddress'
поскольку он показывает пик, хотя и небольшой.
Установите соответствующие коэффициенты равными Нулями
Чтобы установить соответствующие коэффициенты равными нулю, установите их верхнюю границу равной нулю и снова решите модель, используя исходный набор данных.
ub(3) = 0; ub(end) = 0; [sc,mdl] = fitConstrainedModel(sc,'AInequality',AIneq,'bInequality',bIneq,'LowerBound',lb,'UpperBound',ub,'Options',Options); Ind = (abs(mdl.Coefficients.Estimate) <= Tol); ModelCoeff = mdl.Coefficients.Estimate(~Ind); ModelPreds = mdl.Coefficients.Properties.RowNames(~Ind)'; figure hold on plot(ModelCoeff,'.','MarkerSize',12) ylim([0.2 1.2]) ylabel('Model Coefficients') xticklabels(ModelPreds) title('Selected Model Coefficients After Bootstrapping') grid on
Установите ограниченные коэффициенты назад в creditscorecard
Теперь, когда вы решили для ограниченных коэффициентов, используйте setmodel
задать коэффициенты и предикторы модели. Затем можно вычислить (не масштабированные) точки.
ModelPreds = ModelPreds(2:end); sc = setmodel(sc,ModelPreds,ModelCoeff); p = displaypoints(sc); disp(p)
Predictors Bin Points ______________ _____________________ _________ {'CustAge' } {'[-Inf,33)' } -0.16725 {'CustAge' } {'[33,37)' } -0.14811 {'CustAge' } {'[37,40)' } -0.065607 {'CustAge' } {'[40,46)' } 0.044404 {'CustAge' } {'[46,48)' } 0.21761 {'CustAge' } {'[48,58)' } 0.23404 {'CustAge' } {'[58,Inf]' } 0.49029 {'CustAge' } {'<missing>' } NaN {'ResStatus' } {'Tenant' } 0.0044307 {'ResStatus' } {'Home Owner' } 0.11932 {'ResStatus' } {'Other' } 0.30048 {'ResStatus' } {'<missing>' } NaN {'EmpStatus' } {'Unknown' } -0.077028 {'EmpStatus' } {'Employed' } 0.31459 {'EmpStatus' } {'<missing>' } NaN {'CustIncome'} {'[-Inf,29000)' } -0.43795 {'CustIncome'} {'[29000,33000)' } -0.097814 {'CustIncome'} {'[33000,35000)' } 0.053667 {'CustIncome'} {'[35000,40000)' } 0.081921 {'CustIncome'} {'[40000,42000)' } 0.092364 {'CustIncome'} {'[42000,47000)' } 0.23932 {'CustIncome'} {'[47000,Inf]' } 0.42477 {'CustIncome'} {'<missing>' } NaN {'TmWBank' } {'[-Inf,12)' } -0.15547 {'TmWBank' } {'[12,23)' } -0.031077 {'TmWBank' } {'[23,45)' } -0.021091 {'TmWBank' } {'[45,71)' } 0.36703 {'TmWBank' } {'[71,Inf]' } 0.86888 {'TmWBank' } {'<missing>' } NaN {'OtherCC' } {'No' } -0.16832 {'OtherCC' } {'Yes' } 0.15336 {'OtherCC' } {'<missing>' } NaN {'AMBalance' } {'[-Inf,558.88)' } 0.34418 {'AMBalance' } {'[558.88,1254.28)' } -0.012745 {'AMBalance' } {'[1254.28,1597.44)'} -0.057879 {'AMBalance' } {'[1597.44,Inf]' } -0.19896 {'AMBalance' } {'<missing>' } NaN
Используя немасштабированные точки, можно следовать оставшейся части рабочего процесса моделирования карты показателей кредита, чтобы вычислить счета и вероятности дефолта и подтвердить модель.
sc
- Модель карты показателей кредитаcreditscorecard
объектМодель карты показателей кредита, заданная как creditscorecard
объект. Использование creditscorecard
для создания creditscorecard
объект.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
[sc,mdl] = fitConstrainedModel(sc,'LowerBound',2,'UpperBound',100)
'PredictorVars'
- Переменные предиктора для подбора кривой creditscorecard
объектcreditscorecard
объект (по умолчанию) | массив ячеек из векторов символовПеременные предиктора для подбора кривой creditscorecard
объект, заданный как разделенная разделенными запятой парами, состоящая из 'PredictorVars'
и массив ячеек из векторов символов. Если вы предоставляете переменные предиктора, то функция обновляет creditscorecard
свойство объекта PredictorsVars
. Порядок предикторов в исходном наборе данных принудительно, независимо от порядка, в котором 'PredictorVars'
предоставляется. Когда это не предусмотрено, предикторы использовали для создания creditscorecard
объект (при помощи creditscorecard
) используются.
Типы данных: cell
'LowerBound'
- Нижняя граница-Inf
(по умолчанию) | скалярный вектор |Нижняя граница, заданная как разделенная разделенными запятой парами, состоящая из 'LowerBound'
и скаляр или вектор действительных чисел длины N
+ 1
, где N
- количество коэффициентов модели в creditscorecard
объект.
Типы данных: double
'UpperBound'
- Верхняя границаInf
(по умолчанию) | скалярный вектор |Верхняя граница, заданная как разделенная разделенными запятой парами, состоящая из 'UpperBound'
и скаляр или вектор действительных чисел длины N
+ 1
, где N
- количество коэффициентов модели в creditscorecard
объект.
Типы данных: double
'AInequality'
- Матрица линейных ограничений неравенства[]
(по умолчанию) | матрицаМатрица линейных ограничений неравенства, заданная как разделенная разделенными запятой парами, состоящая из 'AInequality'
и настоящий M
-by- N
+ 1
матрица, где M
количество ограничений и N
- количество коэффициентов модели в creditscorecard
объект.
Типы данных: double
'bInequality'
- Вектор линейных ограничений неравенства[]
(по умолчанию) | векторВектор линейных ограничений неравенства, заданный как разделенная разделенными запятой парами, состоящая из 'bInequality'
и настоящий M
-by- 1
вектор, где M
количество ограничений.
Типы данных: double
'AEquality'
- Матрица линейных ограничений равенства[]
(по умолчанию) | матрицаМатрица линейных ограничений равенства, заданная как разделенная разделенными запятой парами, состоящая из 'AEquality'
и настоящий M
-by- N
+ 1
матрица, где M
количество ограничений и N
- количество коэффициентов модели в creditscorecard
объект.
Типы данных: double
'bEquality'
- Вектор линейных ограничений равенства[]
(по умолчанию) | векторВектор линейных ограничений равенства, заданный как разделенная разделенными запятой парами, состоящая из 'bEquality'
и настоящий M
-by- 1
вектор, где M
количество ограничений.
Типы данных: double
'Bootstrap'
- Индикатор того, что загрузка определяет точность решенияfalse
(по умолчанию) | логическим со значением true
или false
Индикатор того, что загрузка определяет точность решения, заданную как разделенная разделенными запятой парами, состоящая из 'Bootstrap'
и логический со значением true
или false
.
Типы данных: logical
'BootstrapIter'
- Количество итераций начальной загрузки100
(по умолчанию) | положительное целое числоКоличество итераций начальной загрузки, заданное как разделенная разделенными запятой парами, состоящая из 'BootstrapIter'
и положительное целое число.
Типы данных: double
'Options'
— optimoptions
объектoptimoptions('fmincon','SpecifiedObjectiveGradient',true,'Display','off')
(по умолчанию) | объектoptimoptions
объект, заданный как разделенная разделенными запятой парами, состоящая из 'Options'
и optimoptions
объект. Вы можете создать объект при помощи optimoptions
из Optimization Toolbox™.
Типы данных: object
sc
- Модель карты показателей кредитаcreditscorecard
объектМодель карты показателей кредита, возвращенная как обновленная creditscorecard
объект. The creditscorecard
объект содержит информацию о предикторах модели и коэффициентах, которые соответствуют данным WOE. Для получения дополнительной информации об использовании creditscorecard
объект, см. creditscorecard
.
mdl
- Подобранная логистическая модельGeneralizedLinearModel
объектПодобранная логистическая модель, переделанная как GeneralizedLinearModel
объект, содержащий подобранную модель. Для получения дополнительной информации о GeneralizedLinearModel
объект, см. GeneralizedLinearModel
.
Примечание
Если вы задаете необязательную WeightsVar
аргумент при создании creditscorecard
объект, затем mdl
использует взвешенные счетчики с stepwiseglm
и fitglm
.
The mdl
структура имеет следующие поля:
Coefficients
- таблица, в которой RowNames
свойство содержит имена коэффициентов модели и имеет один столбец, 'Estimate'
, содержащего решение.
Bootstrap
существует, когда 'Bootstrap'
установлено в true
, и имеет два поля:
CI
содержит 95% доверительный интервал для решения.
Matrix
а N
Итер-бай- N
матрица коэффициентов, где N
Итер - это количество итераций и N
загрузочных стропов - количество коэффициентов модели.
Solver
имеет три поля:
Options
дополнительная информация об алгоритме и решении.
ExitFlag
содержит целое число, которое кодирует причину остановки решателя. Для получения дополнительной информации см. fmincon
.
Output
является структурой с дополнительной информацией о процессе оптимизации.
Когда вы используете fitConstrainedModel
чтобы решить для коэффициентов модели, функция решает для того же количества параметров, что и заданные вами переменные предиктора, плюс один дополнительный коэффициент для точки пересечения.
Первый коэффициент соответствует точке пересечения. Если вы предоставляете переменные предиктора, используя 'PredictorVars'
необязательный входной параметр, затем fitConstrainedModel
обновляет creditscorecard
свойство объекта PredictorsVars
. Порядок предикторов в исходном наборе данных принудительно, независимо от порядка, в котором 'PredictorVars'
предоставляется. Когда это не предусмотрено, предикторы использовали для создания creditscorecard
объект (при помощи creditscorecard
) используются.
Модель с ограничениями сначала калибруется таким образом, что, когда она не ограничена, решение идентично, в пределах определенного допуска, решению, заданному как fitmodel
, с 'fullmodel'
выбор аргумента имя-значение 'VariableSelection'
.
В качестве упражнения можно протестировать калибровку, оставив все параметры имя-значение fitConstrainedModel
к их значениям по умолчанию. Решения идентичны в 10-6 к 10-5 допуск.
Если кредитная карта результатов data
содержит веса наблюдений, fitConstrainedModel
функция использует веса, чтобы калибровать коэффициенты модели.
Для карты показателей кредита data
без отсутствующих данных и без весов, функция правдоподобия для i наблюдений
где:
b = [b 1 b 2... b K] для неизвестных коэффициентов модели
<reservedrangesplaceholder8> <reservedrangesplaceholder7> = [<reservedrangesplaceholder6> <reservedrangesplaceholder5> 1 <reservedrangesplaceholder4> <reservedrangesplaceholder3> 2... <reservedrangesplaceholder2> <reservedrangesplaceholder1>] является значениями предсказателя при наблюдении i
y i является значением отклика 1
(значение по умолчанию) или значение 0
.
Когда i наблюдения имеют wi веса, это означает, что наблюдений wi. Из-за независимости дефолтов между наблюдениями вероятность того, что существует дефолт при i наблюдений, является продуктом вероятностей дефолта
Точно так же вероятность не-по умолчанию для взвешенных i наблюдения
Для взвешенных данных, если существует значение по умолчанию в заданное наблюдение i чей вес w i, это как если бы было wi значения по умолчанию этого наблюдения, и все они либо все по умолчанию, либо все не по умолчанию. w i может быть или не быть целым числом. Поэтому функция правдоподобия для i наблюдения становится
Аналогично, для данных с отсутствующими наблюдениями (NaN
, <undefined>
, или “Missing”
), модель калибруется путем сравнения случая без ограничений с результатами, полученными fitglm
. Где данные содержат отсутствующие наблюдения, входная матрица WOE имеет NaN
значения. The NaN
значения не представляют никакой проблемы для fitglm
(без ограничений), или fmincon
(ограниченный). Единственный краевой случай, если все наблюдения данного предиктора отсутствуют, в этом случае этот предиктор отбрасывается из модели.
Bootstrapping является методом для оценки точности решения, полученного после итерации целевой функции N
Время итер.
Когда 'Bootstrap'
установлено в true
, а fitConstrainedModel
функция выполняет выборку с заменой значений ГОРЕ и передается в целевую функцию. В конце итерационного процесса решения сохраняются в N
Итер-бай- N
+ 1
матрица, где N
- количество коэффициентов модели.
Интервал 95% доверия (CI) вернулся в структуру output mdl.Bootstrap
содержит значения коэффициентов в 25-м и 97,5-м процентилях.
Логистическая регрессионая модель используется в creditscorecard
объект.
Для модели вероятность быть «Плохой» задается ProbBad = exp(-s) / (1 + exp(-s))
.
[1] Anderson, R. The Credit Scoring Toolkit. Oxford University Press, 2007.
[2] Refaat, M. Кредитные карты оценки риска: Разработка и реализация с использованием SAS. lulu.com, 2011.
autobinning
| bindata
| bininfo
| creditscorecard
| displaypoints
| fitglm
| fitmodel
| fmincon
| formatpoints
| GeneralizedLinearModel
| modifybins
| modifypredictor
| plotbins
| predictorinfo
| probdefault
| score
| setmodel
| stepwiseglm
| validatemodel
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.