用R Studio回答假设

时间:2017-12-21 17:09:15

标签: r regression

我有以下假设:如果月收入较高,那么工作满意度会增加。

变量:

$ JobSatisfaction: Ord.factor w/ 4 levels: 1 = low, 2 = medium, 3 = high, 4 = very high

$ MonthlyIncome  : int  5993 5130 2090 2909 3468 3068 2670 2693 9526 5237,...

有了这两个变量,我现在需要进行回归分析。因此我被建议使用虚拟编码。如果是这样,有人可以向我解释我需要采取的各个步骤,以便获得适当的结果。

2 个答案:

答案 0 :(得分:1)

这看起来更像是一个家庭作业问题,如果是这样的话,那么让我们为你做功课就是对你,你的同学,你未来的雇主和其他人的不利。

如果这不是一个家庭作业问题,那么你仍然可以从学习如何做到这一点并自己解释结果中受益,但我会提供一些指导,引导你朝着正确的方向前进。

首先,您确实需要确定您的问题是什么以及驱动它的背景信息。

如果您认为工作满意度会增加收入,或者想要使用满意度来预测收入,则使用虚拟变量进行回归是合适的,R中的lm函数将为您创建虚拟变量(注意RStudio是一个GUI对于R,RStudio不进行回归计算,而是将命令传递给R,R进行计算并将结果发送回RStudio进行显示)。您应该查阅一本关于回归的好教科书或课程,或咨询顾问,以确保您对回归模型中的假设感到满意并理解结果。

另一方面,如果您认为收入驱动/预测/确定工作满意度(这是您的第一行所暗示的),那么定期回归(尤其是虚拟变量)是不合适的。更合适的是比例赔率逻辑回归。有R的包可以实现这个(MASS和rms是其中2个),但这比线性回归更复杂,所以你真的应该咨询一个顾问,或者采取额外的类,以完全理解假设以及如何解释结果

答案 1 :(得分:0)

我同意Greg的回答,重要的是决定您的研究假设,并建立与测试假设所需数据相关的数据和分析技术。

也就是说,关于虚编码变量和lm()函数的问题,R将自动在lm()中为作为因子的独立变量创建虚编码变量。作为说明,我们将使用treemap包中包含的2014年国民收入总额数据集中的数据。

空假设:大陆的人均国民总收入并没有显着变化

替代假设:人均国民总收入因大陆而异显着

此分析的R代码:

library(treemap)
data(GNI2014)

# recode continent as a factor 
GNI2014$continent <- as.factor(GNI2014$continent)

# use lm() to regress gross national income on continent
theModel <- lm(GNI ~ continent, data=GNI2014)
summary(theModel)

...和输出:

> theModel <- lm(GNI ~ continent, data=GNI2014)
> summary(theModel)

Call:
lm(formula = GNI ~ continent, data = GNI2014)

Residuals:
   Min     1Q Median     3Q    Max 
-26991 -11189  -1809   3237  89284 

Coefficients:
                                 Estimate Std. Error t value Pr(>|t|)    

(Intercept)                          2184       2679   0.815 0.415985    

continentAsia                       13309       3808   3.494 0.000597 ***
continentEurope                     27368       3947   6.934 6.98e-11 ***
continentNorth America              14672       4640   3.162 0.001836 ** 
continentOceania                     9616       5803   1.657 0.099220 .  

continentSeven seas (open ocean)     7863      11045   0.712 0.477454    

continentSouth America               7012       5990   1.171 0.243297    

---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 18560 on 181 degrees of freedom
Multiple R-squared:  0.2166,    Adjusted R-squared:  0.1906 
F-statistic: 8.342 on 6 and 181 DF,  p-value: 5.456e-08

从回归输出中我们可以看出,亚洲,欧洲和北美的斜率是正的,并且在0.05的显着性水平上与0显着不同。请注意,由于没有直接列出,非洲大陆由截距计算。所有其他斜率都是相对于截距解释的。

由于8.342的F统计量在0.05水平上是显着的,我们拒绝零假设,即各大洲的人均国民总收入相同,支持跨大陆不相等的替代假设。

请注意,可以使用aov()函数完成相同的分析。

theModel <- aov(GNI ~ continent, data = GNI2014)
summary(theModel)
theModel$coefficients 

...和输出:

> summary(theModel)
             Df    Sum Sq   Mean Sq F value   Pr(>F)    
continent     6 1.724e+10 2.873e+09   8.342 5.46e-08 ***
Residuals   181 6.234e+10 3.444e+08                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> theModel$coefficients
                     (Intercept)                    continentAsia 
                        2183.958                        13308.595 
                 continentEurope           continentNorth America 
                       27367.505                        14671.875 
                continentOceania continentSeven seas (open ocean) 
                        9616.042                         7862.708 
          continentSouth America 
                        7011.875