Модель множественной линейной регрессии в R - PullRequest
1 голос
/ 08 марта 2020

Я пытаюсь создать модель множественной линейной регрессии с этими данными:

    bweight   gestwks            hyp sex    

1    2974 38.5200004577637       0 female          
2    3270 NA                     0 male            
3    2620 38.150001525878899     0 female          
4    3751 39.799999237060497     0 male            
5    3200 38.889999389648402     1 male           
6    3673 40.970001220703097     0 female          

Чтобы рассмотреть аргументы строкового типа "мужской" и "женский", я конвертирую их в целые числа 1 и 0, например:

male = 1*(sex == "male")

Итак, создаем линейную модель, где вес ребенка - это переменная результата:

lm2 = lm(bweight ~ gestwks + hyp + male)

Но тогда, когда я хотел бы увидеть параметры модель, я получаю это (не весь вывод включен здесь):

Call:
lm(formula = bweight ~ gestwks + 
    hyp + male)

Coefficients:
                              (Intercept)  gestwks26.950000762939499  
                                  864.000                                   -236.000  
gestwks27.329999923706101    gestwks27.9899997711182  
                                    7.363                                    146.469  
gestwks28.040000915527301   gestwks30.5200004577637  
                                  184.469                                    760.469  
gestwks30.649999618530298  gestwks30.709999084472699  
                                  900.000                                   -141.531

И я должен получить только одну пару параметров. Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 08 марта 2020

Перед проведением любого анализа всегда внимательно изучайте свои переменные. Обратите внимание на диапазоны и распределения для непрерывных переменных и частот для категориальных. Сделайте это после импорта данных.

В этом случае переменная gestwks на самом деле не является цифрой c. Если бы вы посмотрели на вывод str(my_data), где my_data - это имя вашего фрейма данных, то вы бы увидели потенциальную проблему с этой переменной. Вам, вероятно, нужно пересмотреть команду для импорта данных. Если это правильно, то вам нужно преобразовать переменную в число c, используя соответствующую команду. Прочитайте Предупреждение на странице справки as.numeric. *

Управление данными является ключевой частью вашего анализа.

Внимательно посмотрите на gestwks, чтобы найти странный вид ценности. table может помочь, если не слишком много записей, или посмотреть на первое и последнее несколько отсортированных значений.

* as.numeric (levels (f))[f] или as.numeric (as.character (f)) - рекомендуемая команда.

0 голосов
/ 08 марта 2020

gestwks является фактором, вам нужно конвертировать его с as.numeric, прежде чем регрессировать на него.

...