如何对R中的摘要数据进行逻辑回归?

时间:2018-09-30 04:01:37

标签: r logistic-regression

所以我有一些数据结构与以下类似:

         | Works  | DoesNotWork |
         ----------------------- 
Unmarried| 130    | 235         |
Married  | 10     | 95          |

我正在尝试使用逻辑回归从Work Status来预测Marriage Status,但是我认为我不懂R中的方法。例如,如果我的数据如下所示:

MarriageStatus  | WorkStatus| 
-----------------------------
Married         | No        |
Married         | No        |
Married         | Yes       |
Unmarried       | No        |
Unmarried       | Yes       |
Unmarried       | Yes       |

我了解我可以执行以下操作:

log_model <- glm(WorkStatus ~ MarriageStatus, data=MarriageDF, family=binomial(logit))

汇总数据时,我只是不知道该怎么做。我是否需要将数据扩展为非汇总形式并将Married/Unmarried编码为0/1,然后对Working/Not Working进行同样的操作,并将其编码为0/1

仅给出第一个摘要DF ,我将如何编写逻辑回归glm函数?像这样吗

log_summary_model <- glm(Works ~ DoesNotWork, data=summaryDF, family=binomial(logit))

但是当我拆分响应因变量时,这没有意义吗?

我不确定是否要使这个问题复杂化,非常感谢您的帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

这应该为您做。

library(dplyr)
library(tibble)

# Load data
MarriageDF <- tribble(
  ~'MarriageStatus',  ~'WorkStatus', 
   'Married',  'No',
   'Married',  'No',
   'Married',  'Yes',
   'Unmarried',  'No',
   'Unmarried',  'Yes',
   'Unmarried',  'Yes') %>% 
  mutate(., WorkStatus = as.factor(WorkStatus) %>% as.numeric(.) - 1) # convert to 0/1

log_model <- glm(WorkStatus ~ MarriageStatus, data = MarriageDF, family = 'binomial')
summary(log_model)

::编辑,因为我相信我阅读了以下问题的早期版本::

是的,您需要“扩展”数据或对其进行格式化,以使其整洁(每行一次观察)。我不相信有一种方法可以对第一个表中的数据进行逻辑回归。

答案 1 :(得分:1)

您需要将列联表扩展到一个数据框中,然后可以使用频率计数作为权重变量来计算logit模型:

.accepted_renderer

数据:

mod <- glm(works ~ marriage, df, family = binomial, weights = freq)
summary(mod) 

Call:
glm(formula = works ~ marriage, family = binomial, data = df, 
    weights = freq)

Deviance Residuals: 
      1        2        3        4  
 16.383    6.858  -14.386   -4.361  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -0.5921     0.1093  -5.416 6.08e-08 ***
marriage     -1.6592     0.3500  -4.741 2.12e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 572.51  on 3  degrees of freedom
Residual deviance: 541.40  on 2  degrees of freedom
AIC: 545.4

Number of Fisher Scoring iterations: 5