Как уменьшить категориальную переменную в регрессионной модели логистики c в R - PullRequest
0 голосов
/ 04 апреля 2020

Я создал формулу регрессии logisti c относительно миль на галлон для различных марок и моделей автомобилей. Одна переменная «происхождение» была целым числом: 1 = американская, 2 = немецкая, 3 = японская. Я преобразовал его в origin.factor <- factor (origin, label = c ("американский", "немецкий", "японский") </p>

head (origin.factor) [1] американский Американский Американский Американский Американский [6] Американские Уровни: Американский Немецкий Японский

Сначала было предложено преобразовать "происхождение" в фактор с использованием as.factor и relbel, но я не видел, как пройти label = c ("американский", "немецкий", "японский") с as.factor. Есть идеи?

Далее, исходная модель Logisti c со всеми переменными дала этот вывод (извините за столбцы) не выравниваются в этом посте, но последний столбец - это p-значения, выделенные жирным шрифтом для каждой переменной):

auto.mpg.logisti c <- glm (mpg.binary ~ cylinders + смещение + мощность + вес + ускорение + год + происхождение.фактор, семейство = "биномиальное") резюме (auto.mpg.logisti c) </p>

Вызов: glm (формула = mpg.binary ~ цилиндры + рабочий объем + мощность + масса + ускорение + год + происхождение.фактор, семейство = "бином")

Отклонения Отклонения: Мин. 1Q Медиана 3Q Макс.
-2,44937 -0,08809 0,00577 0,19315 3,03363

Коэффициенты: Estimate Std. Значение ошибки z Pr (> | z |)
(Перехват) -19.450793 5.956353 -3.266 0.00109 **

цилиндры -0.264169 0.439645 -0.601 0.54793
смещение 0,015568 0,013658 1,140 0,25434
лошадиная сила -0,043081 0,024621 -1,750 0,08017 .
масса -0,005762 0,001376 -4,187 2,83e-05 * **

ускорение 0,012939 0,142921 0,091 0,92786
год 0,495635 0,086155 5,753 8,78e-09 ***

origin.factorGerman 1.971277 0.785573 2.509 0.01210 *

origin.factorJapanese 1.102741 0.713768 1.545 0.12236

Signif. коды: 0 '' 0,001 '' 0,01 '' 0,05 '.' 0,1 '' 1

далее я приступил к удалению переменных, где значение p> 0,05 уровня значимости, чтобы получить следующий результат:

auto.mpg.logisti c <- glm (mpg.binary ~ лошадиная сила + вес + год + origin.factor, family = "binomial") сводка (auto.mpg.logisti c) </p>

Вызов: glm ( формула = mpg.binary ~ лошадиная сила + вес + год + происхождение.фактор, семейство = "биномиальное")

Отклонения Отклонения: Мин. 1Q Медиана 3Q Макс.
-2.2675 -0.0943 0.0080 0.2007 3.2653

Коэффициенты: Estimate Std. Значение ошибки z Pr (> | z |)
(Перехват) -18.240055 4.912407 -3.713 0.000205 ***

лошадиная сила -0.042209 0.016441 -2.567 0.010251 *

вес -0.004607 0.000734 - 6,276 3,47e-10 ***

год 0,457663 0,075997 6,022 1,72e-09 ***

origin.factorGerman 1,335225 0,529879 2,520 0,011740 *

origin.factorJapanese 0,628677 0,580123 1,084 0,278500

Signif. коды: 0 '' 0,001 '' 0,01 '' 0,05 '.' 0.1 '' 1

Теперь единственной переменной, которая все еще выше уровня значимости 0,05, является origin.factorJapanese

Так что вопрос в том, можно ли как-то удалить только origin.factorJapanese и оставить в Origin .factorGerman, так как это важно?

Или это подходящее действие для удаления origin.factor, которое исключит все аспекты этой категориальной переменной из моей модели logisti c (это похоже на мой единственный вариант ...)

Я новичок в R и в основном использую базовые функции R согласно нашим классным заданиям, поэтому, пожалуйста, учтите это в своих ответах. Спасибо,

Джон

1 Ответ

0 голосов
/ 04 апреля 2020

Это на самом деле больше статистики, чем R. У вас есть модель, которая имеет набор непрерывных объясняющих переменных (horsepower, weight, year) и один фактор origin.factor. Подходящая модель - модель параллельные линии . Таким образом, для каждого уровня из origin.factor вы устанавливаете гиперплоскость (но просто думайте об этом как о линии, если она помогает) с различным перехватом для каждой страны происхождения.

R использует Intercept, чтобы соответствовать базовому уровню вашего фактора, а оставшиеся уровни фактора - это действительно разница между базовым уровнем и уровнем. Поэтому в сводной таблице регрессии говорится, что немецкие машины отличаются от американских машин (American - это основа, потому что она идет первой в алфавитном порядке, так как R по умолчанию обрабатывает факторы), а японские машины - нет. Обратите внимание, что он ничего не говорит о разнице между немецкими и японскими автомобилями.

Итак, у вас есть некоторые свидетельства того, что существуют различия между уровнями факторов, но не всеми. Вы действительно не хотите пытаться соответствовать модели без японского уровня (ну, вы можете, но не по тем причинам, о которых вы думаете).

...