Удалите 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