Удалите 1 изменение в ковариации (covratio
), идентифицирует наблюдения, которые влияют при подгонке регрессии. Влиятельное наблюдение является тем, где его исключение из силы модели значительно изменяет функцию регрессии. Значения covratio, больше, чем 1 + 3*p/n или меньший, чем 1 – 3*p/n указывают на влиятельные точки, где p является количеством коэффициентов регрессии, и n является количеством наблюдений.
covratio статистическая величина является отношением детерминанта содействующей ковариационной матрицы с наблюдением i, удаленный к детерминанту ковариационной матрицы для полной модели:
CovRatio
является n-by-1 вектор в таблице Diagnostics
подходящего объекта LinearModel
. Каждый элемент является отношением обобщенного отклонения предполагаемых коэффициентов, когда соответствующий элемент удален к обобщенному отклонению коэффициентов с помощью всех данных.
После получения подобранной модели, скажем, mdl
, с помощью fitlm
или stepwiselm
, вы можете:
Отобразите CovRatio
путем индексации в свойство с помощью записи через точку
mdl.Diagnostics.CovRatio
Постройте удаление 1 изменения в использовании ковариации
plotDiagnostics(mdl,'CovRatio')
plotDiagnostics
класса LinearModel
.
Этот пример показывает, как использовать статистику CovRatio
, чтобы определить влиятельные точки в данных. Загрузите выборочные данные и задайте переменные отклика и переменные прогноза.
load hospital
y = hospital.BloodPressure(:,1);
X = double(hospital(:,2:5));
Соответствуйте модели линейной регрессии.
mdl = fitlm(X,y);
Постройте статистику CovRatio
.
plotDiagnostics(mdl,'CovRatio')
В данном примере пороговые пределы равняются 1 + 3*5/100 = 1.15 и 1 - 3*5/100 = 0.85. Существует несколько точек вне пределов, которые могут быть влиятельными точками.
Найдите наблюдения, которые являются вне пределов.
find((mdl.Diagnostics.CovRatio)>1.15|(mdl.Diagnostics.CovRatio)<0.85)
ans = 5×1
2
14
84
93
96
Знак удаления 1 масштабированного различия в содействующей оценке (Dfbetas) для коэффициента j и наблюдение, на которое указывает i, вызывает ли то наблюдение увеличение или уменьшение в оценке коэффициента регрессии. Абсолютное значение Dfbetas указывает на значение различия относительно предполагаемого стандартного отклонения коэффициента регрессии. Значение Dfbetas, больше, чем 3/sqrt (n) в абсолютном значении, указывает, что наблюдение имеет большое влияние на соответствующий коэффициент.
Дфбеты для коэффициента j и наблюдение i являются отношением различия в оценке коэффициента j с помощью всех наблюдений и того, полученного путем удаления наблюдения i и стандартная погрешность содействующей оценки, полученной путем удаления наблюдения i. Дфбеты для коэффициента j и наблюдение i
где b, j является оценкой для коэффициента j, b j (i), является оценкой для коэффициента j путем удаления наблюдения i, MSE (i) является среднеквадратической ошибкой подгонки регрессии путем удаления наблюдения i и h, ii является значением рычагов для наблюдения i. Dfbetas
является n-by-p матрица в таблице Diagnostics
подходящего объекта LinearModel
. Каждая ячейка Dfbetas
соответствует значению Dfbetas для соответствующего коэффициента, полученного путем удаления соответствующего наблюдения.
После получения подобранной модели, скажем, mdl
, с помощью fitlm
или stepwiselm
, можно получить значения Dfbetas как n-by-p матрица путем индексации в свойство с помощью записи через точку,
mdl.Diagnostics.Dfbetas
Этот пример показывает, как определить наблюдения, которые имеют большое влияние на коэффициенты с помощью Dfbetas
. Загрузите выборочные данные и задайте переменные отклика и независимые переменные.
load hospital
y = hospital.BloodPressure(:,1);
X = double(hospital(:,2:5));
Соответствуйте модели линейной регрессии.
mdl = fitlm(X,y);
Найдите значения Dfbetas
, которые высоки в абсолютном значении.
[row,col] = find(abs(mdl.Diagnostics.Dfbetas)>3/sqrt(100)); disp([row col])
2 1 28 1 84 1 93 1 2 2 13 3 84 3 2 4 84 4
Удаление 1 масштабированного изменения в подходящих значениях (Dffits) показывает влияние каждого наблюдения относительно подходящих значений ответа. Могут влиять значения Dffits с абсолютным значением, больше, чем 2*sqrt (p/n).
Dffits для наблюдения i
где sr, i является studentized невязкой и h ii, является значением рычагов подходящего объекта LinearModel
. Dffits
является n-by-1 вектор-столбец в таблице Diagnostics
подходящего объекта LinearModel
. Каждый элемент в Dffits
является изменением в подходящем значении, вызванном путем удаления соответствующего наблюдения и масштабирования стандартной погрешностью.
После получения подобранной модели, скажем, mdl
, с помощью fitlm
или stepwiselm
, вы можете:
Отобразите значения Dffits
путем индексации в свойство с помощью записи через точку
mdl.Diagnostics.Dffits
Постройте удаление 1 масштабированного изменения в подходящем использовании значений
plotDiagnostics(mdl,'Dffits')
plotDiagnostics
класса LinearModel
для деталей.
Этот пример показывает, как определить наблюдения, которые влияют на подходящие значения ответа с помощью значений Dffits
. Загрузите выборочные данные и задайте переменные отклика и независимые переменные.
load hospital
y = hospital.BloodPressure(:,1);
X = double(hospital(:,2:5));
Соответствуйте модели линейной регрессии.
mdl = fitlm(X,y);
Постройте значения Dffits.
plotDiagnostics(mdl,'Dffits')
Влиятельный пороговый предел для абсолютного значения Dffits в этом примере 2*sqrt (5/100) = 0.45. Снова, существуют некоторые наблюдения со значениями Dffits вне рекомендуемых пределов.
Найдите значения Dffits, которые являются большими в абсолютном значении.
find(abs(mdl.Diagnostics.Dffits)>2*sqrt(4/100))
ans = 10×1
2
13
28
44
58
70
71
84
93
95
S2_i
)Удаление 1 отклонения (S2_i
) показывает, как среднеквадратическая ошибка изменяется, когда наблюдение удалено из набора данных. Можно сравнить значения S2_i
со значением среднеквадратической ошибки.
S2_i
является набором остаточных оценок отклонения, полученных путем удаления каждого наблюдения в свою очередь. Значение S2_i
для наблюдения i
где y j является j th наблюдаемое значение ответа. S2_i
является n-by-1 вектор в таблице Diagnostics
подходящего объекта LinearModel
. Каждый элемент в S2_i
является среднеквадратической ошибкой регрессии, полученной путем удаления того наблюдения.
После получения подобранной модели, скажем, mdl
, с помощью fitlm
или stepwiselm
, вы можете:
Отобразите вектор S2_i
путем индексации в свойство с помощью записи через точку
mdl.Diagnostics.S2_i
Постройте удаление 1 использования значений отклонения
plotDiagnostics(mdl,'S2_i')
plotDiagnostics
класса LinearModel
.
Этот пример показывает, как вычислить и построить значения S2_i, чтобы исследовать изменение в среднеквадратической ошибке, когда наблюдение удалено из данных. Загрузите выборочные данные и задайте переменные отклика и независимые переменные.
load hospital
y = hospital.BloodPressure(:,1);
X = double(hospital(:,2:5));
Соответствуйте модели линейной регрессии.
mdl = fitlm(X,y);
Отобразите значение MSE для модели.
mdl.MSE
ans = 23.1140
Постройте значения S2_i.
plotDiagnostics(mdl,'S2_i')
Этот график дает возможность сравнивать значения S2_i со значением MSE 23,114, обозначенный горизонтальными пунктирными линиями. Вы видите, как удаление одного наблюдения изменяет ошибочное отклонение.
LinearModel
| fitlm
| plotDiagnostics
| plotResiduals
| stepwiselm