interaction_effects_in_regression_analysis
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
interaction_effects_in_regression_analysis [2023/06/07 01:22] – [Ex. 2] hkimscil | interaction_effects_in_regression_analysis [2023/06/14 08:54] (current) – [Two continuous variables] hkimscil | ||
---|---|---|---|
Line 6: | Line 6: | ||
====== E.g. 1 One category and one continuous ====== | ====== E.g. 1 One category and one continuous ====== | ||
Data 만들기 | Data 만들기 | ||
+ | < | ||
+ | x< | ||
+ | f1< | ||
+ | modmat< | ||
+ | coeff< | ||
+ | y< | ||
+ | dat< | ||
+ | |||
+ | dat | ||
+ | |||
+ | mod <- lm(y~x*f1) | ||
+ | summary(mod) | ||
+ | |||
+ | library(ggplot2) | ||
+ | library(jtools) # in case not loading, install.packages(" | ||
+ | library(interactions) | ||
+ | |||
+ | interact_plot(mod, | ||
+ | |||
+ | </ | ||
+ | |||
< | < | ||
> f1< | > f1< | ||
Line 15: | Line 36: | ||
작물의 무게가 온도와 토양의 질소에 영향을 받을까? 라는 연구문제에서 추출된 데이터. 작물무게에 대한 질소함유량의 영향과 온도의 영향, 그리고 그 두 변인의 상호작용효과에 대해서 알고 싶다. | 작물의 무게가 온도와 토양의 질소에 영향을 받을까? 라는 연구문제에서 추출된 데이터. 작물무게에 대한 질소함유량의 영향과 온도의 영향, 그리고 그 두 변인의 상호작용효과에 대해서 알고 싶다. | ||
- | < | + | < |
y | y | ||
1 21.8693480 | 1 21.8693480 | ||
Line 23: | Line 44: | ||
5 | 5 | ||
6 20.9093423 | 6 20.9093423 | ||
- | 7 25.8828775 | + | </ |
- | 8 | + | |
- | 9 | + | |
- | 10 20.2008030 | + | |
- | 11 5.6307366 | + | |
- | 12 24.5176666 | + | |
- | 13 2.9836344 | + | |
- | 14 24.9027322 | + | |
- | 15 7.1347831 | + | |
- | 16 21.0629404 | + | |
- | 17 4.9330174 | + | |
- | 18 23.3587524 | + | |
- | 19 11.5338189 | + | |
- | 20 28.2193423 | + | |
- | 21 5.9288641 | + | |
- | 22 4.4854811 | + | |
- | 23 18.5213789 | + | |
- | 24 3.5410098 | + | |
- | 25 14.1031612 | + | |
- | 26 4.2389757 High 1.241753022 | + | |
- | 27 23.2650544 High 5.428188895 | + | |
- | 28 24.0330453 High 5.586834035 | + | |
- | 29 16.6518724 High 3.913568701 | + | |
- | 30 4.2317570 High 1.012214390 | + | |
- | 31 26.1115118 High 5.969692939 | + | |
- | 32 13.1004694 High 3.023571330 | + | |
- | 33 39.8678989 High 9.080975151 | + | |
- | 34 16.2227452 High 3.806260177 | + | |
- | 35 24.8683087 High 5.562874263 | + | |
- | 36 43.4090915 High 9.818060326 | + | |
- | 37 -0.2444546 High 0.007114746 | + | |
- | 38 11.1822149 High 2.640837491 | + | |
- | 39 43.5794651 High 9.933570819 | + | |
- | 40 25.3860623 High 5.960662568 | + | |
- | 41 26.5072704 High 6.139642103 | + | |
- | 42 30.6778013 High 6.968976315 | + | |
- | 43 27.4982726 High 6.315991175 | + | |
- | 44 16.3318687 High 3.883612270 | + | |
- | 45 37.8328875 High 8.564988615 | + | |
- | 46 12.6958950 High 2.722899497 | + | |
- | 47 32.9697332 High 7.371928061 | + | |
- | 48 39.6831930 High 9.026269785 | + | |
- | 49 41.7586348 High 9.542581048 | + | |
- | 50 15.9704872 High 3.644464843</ | + | |
< | < | ||
Line 401: | Line 379: | ||
- (위의 마지막 식에서) x1:x2 = x1*x2 : 질소량이 1씩 증가할 때 마다, 온도의 영향력은 1.5식 증가한다. 예를 들면 질소량이 0일 경우, 온도와 작물 간의 기울기는 약 2인데, 질소의 양이 1 증가하고 온도가 1 증가하면 기울기는 2 + 1.5 = 3.5가 된다. | - (위의 마지막 식에서) x1:x2 = x1*x2 : 질소량이 1씩 증가할 때 마다, 온도의 영향력은 1.5식 증가한다. 예를 들면 질소량이 0일 경우, 온도와 작물 간의 기울기는 약 2인데, 질소의 양이 1 증가하고 온도가 1 증가하면 기울기는 2 + 1.5 = 3.5가 된다. | ||
- <WRAP box>< | - <WRAP box>< | ||
- | x1=1,x2=1: 0.97 + *3.5 x1 + -1 x2 | + | # 0.97 = 1 로 보면 |
- | x1=2,x2=2: 0.97 + *5.0 x1 + -1 x2 | + | x2=1: 0.97 + *3.5 x1 + -1 (1=x2) |
- | x1=3,x2=3: 0.97 + *6.5 x1 + -1 x2 | + | 0 + 3.5 x1 |
- | x1=4,x2=4: 0.97 + *8.0 x1 + -1 x2 | + | x2=2: 0.97 + *5.0 x1 + -1 (2=x2) |
- | x1=5,x2=5: 0.97 + *9.5 x1 + -1 x2</ | + | -1 + 5.0 x1 |
+ | x2=3: 0.97 + *6.5 x1 + -1 (3=x2) | ||
+ | -2 + 6.5 x1 | ||
+ | x2=4: 0.97 + *8.0 x1 + -1 (4=x2) | ||
+ | -3 + 8.0 x1 | ||
+ | x2=5: 0.97 + *9.5 x1 + -1 (5=x2) | ||
+ | -4 + 9.5 x1 | ||
+ | </ | ||
< | < | ||
*(1.995115 + 1.499595*x2): | *(1.995115 + 1.499595*x2): | ||
Line 691: | Line 676: | ||
s.n.i <- summary(n.i) | s.n.i <- summary(n.i) | ||
- | s.n12i | + | s.n.12i |
# y hat ~ 1048 + -0.003917 x1 + -3.809 x2 + 0.000249 x1 x2 | # y hat ~ 1048 + -0.003917 x1 + -3.809 x2 + 0.000249 x1 x2 | ||
Line 699: | Line 684: | ||
e.mm1 <- mean(expense)-sd(expense) | e.mm1 <- mean(expense)-sd(expense) | ||
e.m0 <- mean(expense) | e.m0 <- mean(expense) | ||
- | e.mp1 <- mean(expxense)+sd(expense) | + | e.mp1 <- mean(expense)+sd(expense) |
e.mp2 <- mean(expense)+(2*sd(expense)) | e.mp2 <- mean(expense)+(2*sd(expense)) | ||
Line 729: | Line 714: | ||
</ | </ | ||
+ | < | ||
+ | > n.1 <- lm(csat~expense) | ||
+ | > n.2 <- lm(csat~percent) | ||
+ | > n.12 <- lm(csat~expense+percent) | ||
+ | > n.12i <- lm(csat~expense*percent) | ||
+ | > n.1i <- lm(csat~expense+expense: | ||
+ | > n.2i <- lm(csat~percent+expense: | ||
+ | > n.2i.temp <- lm(csat~percent+percent: | ||
+ | > n.i <- lm(csat~expense: | ||
+ | > | ||
+ | > s.n.1 <- summary(n.1) | ||
+ | > s.n.2 <- summary(n.2) | ||
+ | > s.n.12 <- summary(n.12) | ||
+ | > s.n.12i <- summary(n.12i) | ||
+ | > s.n.1i <- summary(n.1i) | ||
+ | > s.n.2i <- summary(n.2i) | ||
+ | > s.n.2i.temp <- summary(n.2i.temp) | ||
+ | > s.n.i <- summary(n.i) | ||
+ | > | ||
+ | > s.n.12i | ||
+ | |||
+ | Call: | ||
+ | lm(formula = csat ~ expense * percent) | ||
+ | |||
+ | Residuals: | ||
+ | | ||
+ | -65.36 -19.61 | ||
+ | |||
+ | Coefficients: | ||
+ | | ||
+ | (Intercept) | ||
+ | expense | ||
+ | percent | ||
+ | expense: | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | |||
+ | Residual standard error: 30.8 on 47 degrees of freedom | ||
+ | Multiple R-squared: | ||
+ | F-statistic: | ||
+ | |||
+ | > | ||
+ | > # y hat ~ 1048 + -0.003917 x1 + -3.809 x2 + 0.000249 x1 x2 | ||
+ | > # y hat ~ 1048 + -0.003917 x1 + (-3.809 + 0.000249 x1) x2 | ||
+ | > # x2를 (percent를) 중심으로 보기 | ||
+ | > | ||
+ | > e.mm1 <- mean(expense)-sd(expense) | ||
+ | > e.m0 <- mean(expense) | ||
+ | > e.mp1 <- mean(expense)+sd(expense) | ||
+ | > e.mp2 <- mean(expense)+(2*sd(expense)) | ||
+ | > | ||
+ | > # x1의 case가 4가지 (holding constants) | ||
+ | > k <- c(e.mm1, e.m0, e.mp1, e.mp2) | ||
+ | > ic <- 1048 + (-0.003917*k) | ||
+ | > slp <- -3.809 + (0.000249*k) | ||
+ | > ic | ||
+ | [1] 1033 1027 1022 1017 | ||
+ | > slp | ||
+ | [1] -2.854 -2.505 -2.156 -1.807 | ||
+ | > | ||
+ | > # y hat ~ 1032.979 - 2.85 x2 | ||
+ | > # y hat ~ 1027.491 - 2.51 x2 | ||
+ | > # y hat ~ 1022.002 - 2.16 x2 | ||
+ | > # y hat ~ 1016.514 - 1.81 x2 | ||
+ | > | ||
+ | > interact_plot(n.12i, | ||
+ | + pred = " | ||
+ | + modx = " | ||
+ | + | ||
+ | > # or | ||
+ | > mne <- min(expense) | ||
+ | > mxe <- max(expense) | ||
+ | > kk <- seq(mne, mxe, by = 2000) | ||
+ | > interact_plot(n.12i, | ||
+ | + pred = " | ||
+ | + modx = " | ||
+ | + | ||
+ | > | ||
+ | </ | ||
+ | |||
+ | 아래 그림에서처럼 대학지원 퍼센티지가 높아지면 성적이 떨어지는 경향을 보이는데, | ||
{{: | {{: | ||
+ | |||
+ | ===== 언제 interaction effect를 분석에 넣는가? ===== | ||
+ | interaction effects가 significant할 때에 넣는다 | ||
+ | significant하지 않을 때에는 additive model을 (+사인 모델) 사용한다. | ||
===== One categorical IV ===== | ===== One categorical IV ===== | ||
Line 838: | Line 908: | ||
[5] " | [5] " | ||
</ | </ | ||
- | + | 아래의 경우 interaction effect는 중요한 의미를 갖는다. additive model에서는 murder가 중요한 역할을 하지 않지만, interactive model에서는 Illiteracy와 결합하여 중요한 역할을 하는 것으로 해석될 수 있다. | |
- | < | + | < |
+ | fit <- lm(Income ~ Illiteracy + Murder, data = as.data.frame(state.x77)) | ||
+ | fiti <- lm(Income ~ Illiteracy * Murder, data = as.data.frame(state.x77)) | ||
+ | summary(fit) | ||
summary(fiti) | summary(fiti) | ||
+ | </ | ||
+ | < | ||
+ | > fit <- lm(Income ~ Illiteracy + Murder, data = as.data.frame(state.x77)) | ||
+ | > fiti <- lm(Income ~ Illiteracy * Murder, data = as.data.frame(state.x77)) | ||
+ | > summary(fit) | ||
+ | |||
+ | Call: | ||
+ | lm(formula = Income ~ Illiteracy + Murder, data = as.data.frame(state.x77)) | ||
+ | |||
+ | Residuals: | ||
+ | | ||
+ | -880.9 -397.3 | ||
+ | |||
+ | Coefficients: | ||
+ | Estimate Std. Error t value Pr(> | ||
+ | (Intercept) | ||
+ | Illiteracy | ||
+ | Murder | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | |||
+ | Residual standard error: 560 on 47 degrees of freedom | ||
+ | Multiple R-squared: | ||
+ | F-statistic: | ||
+ | |||
+ | > summary(fiti) | ||
+ | |||
Call: | Call: | ||
lm(formula = Income ~ Illiteracy * Murder, data = as.data.frame(state.x77)) | lm(formula = Income ~ Illiteracy * Murder, data = as.data.frame(state.x77)) | ||
Residuals: | Residuals: | ||
- | | + | |
- | -955.20 -325.99 10.66 299.96 1892.12 | + | -955.2 -326.0 10.7 300.0 1892.1 |
Coefficients: | Coefficients: | ||
Estimate Std. Error t value Pr(> | Estimate Std. Error t value Pr(> | ||
- | (Intercept) | + | (Intercept) |
- | Illiteracy | + | Illiteracy |
- | Murder | + | Murder |
- | Illiteracy: | + | Illiteracy: |
--- | --- | ||
Signif. codes: | Signif. codes: | ||
- | Residual standard error: 520.1 on 46 degrees of freedom | + | Residual standard error: 520 on 46 degrees of freedom |
- | Multiple R-squared: | + | Multiple R-squared: |
- | F-statistic: | + | F-statistic: |
> | > | ||
</ | </ | ||
- | |||
< | < | ||
Line 870: | Line 969: | ||
{{: | {{: | ||
- | < | ||
- | interact_plot(fitiris, | ||
- | {{: | + | ====== |
- | + | ||
- | ====== | + | |
- | Use Cars93 dataset. | + | |
- | + | ||
- | What is affecting city mileage? | + | |
- | 1. EngineSize | + | |
- | 2. EngineSize * Origin | + | |
- | 3. EngineSize + Length | + | |
- | 4. EngineSize * Length | + | |
- | + | ||
- | Print out the summaries of each lm + interaction graph. | + | |
- | Interprete what has been found. | + | |
- | + | ||
- | ====== Eg. 2 ====== | + | |
< | < | ||
# Load the data | # Load the data | ||
Line 908: | Line 991: | ||
</ | </ | ||
+ | ====== Ex. ====== | ||
+ | Use Cars93 dataset. | ||
+ | |||
+ | What is affecting city mileage? | ||
+ | 1. EngineSize | ||
+ | 2. EngineSize * Origin | ||
+ | 3. EngineSize + Length | ||
+ | 4. EngineSize * Length | ||
+ | |||
+ | Print out the summaries of each lm + interaction graph. | ||
+ | Interprete what has been found. | ||
+ | |||
+ | |||
====== Ex. 3 ====== | ====== Ex. 3 ====== | ||
< | < |
interaction_effects_in_regression_analysis.1686068575.txt.gz · Last modified: 2023/06/07 01:22 by hkimscil