我有一个庞大的数据库,我需要与条件语句运行不同的回归。 因此,我认为选项来做到这一点:1)在回归包含命令的数据子集(industrycodes == 12)和2),仿佛数据切割成值I不获得相同的结果时,家具== 12。 他们应该是相同的。 可能有人帮助我的代码,我觉得我有这个问题。 我把一个例子非常基本的解释。
ID roa employees industrycodes
1 0,5 10 12
2 0,3 20 11
3 0,8 15 12
4 0,2 12 12
5 0,7 13 11
6 0,4 8 12
所以首先我创建子数据库进行比较时(行业代码为12)
data2<-data1[data1$industrycodes==12,]
这里我运行回归:
1)为整个数据只服用industrycodes == 12 - 这里>我有6个观测
summary(lm(data1$roa~data1$employees, data=subset(data1,industrycodes==12)))
2)切割所述样品时industrycode == 12 - 这里>当然我有4个观测
summary(lm(data2$roa~data2$employees),data=data2)
什么任何想法可能是错误的? 谢谢!
问题是,第一,你指定一个数据集(一个叫子集(DATA1,industrycodes == 12)),但是运行另一个datset(数据1 - 原来一个)的流明。
一个额外的评论是,因为你使用的命令数据= ...在LM你不必指定与$变量,它可以作为一个在功能流明附着命令。
尝试这个:
DATA3 < - 子集(DATA1,industrycodes == 12)
摘要(LM(ROA〜员工,数据= DATA3))
希望它的工作原理
欢迎StackOverflow的,我正好具有这两种情况下相同的结果,我唯一的改变是更换逗号“由点”“ ”正确地指示小数,
.
roa
data1
ID roa employees industrycodes
1 1 0.5 10 12
2 2 0.3 20 11
3 3 0.8 15 12
4 4 0.2 12 12
5 5 0.7 13 11
6 6 0.4 8 12
summary(lm(data1$roa~data1$employees, data=subset(data1,industrycodes==12)))
summary(lm(data1$roa~data1$employees, data=data2))
第一种情况的结果:
Call:
lm(formula = data1$roa ~ data1$employees, data = subset(data1,
industrycodes == 12))
Residuals:
1 2 3 4 5 6
0.01667 -0.18333 0.31667 -0.28333 0.21667 -0.08333
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.833e-01 3.742e-01 1.292 0.266
data1$employees -5.918e-18 2.761e-02 0.000 1.000
Residual standard error: 0.259 on 4 degrees of freedom
Multiple R-squared: 8.039e-32, Adjusted R-squared: -0.25
F-statistic: 3.215e-31 on 1 and 4 DF, p-value: 1
data2 <- data1[data1$industrycodes==12,]
第二种情况的结果:
summary(lm(data1$roa~data1$employees, data=data2))
Call:
lm(formula = data1$roa ~ data1$employees, data = data2)
Residuals:
1 2 3 4 5 6
0.01667 -0.18333 0.31667 -0.28333 0.21667 -0.08333
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.833e-01 3.742e-01 1.292 0.266
data1$employees -5.918e-18 2.761e-02 0.000 1.000
Residual standard error: 0.259 on 4 degrees of freedom
Multiple R-squared: 8.039e-32, Adjusted R-squared: -0.25
F-statistic: 3.215e-31 on 1 and 4 DF, p-value: 1
如果你想在所有条件下循环,你可以添加新列。 例如,如果你有两个条件:
data1$cond1 <- data1$industrycodes==12
data1$cond2 <- data1$industrycodes<=12
然后,您可以使用循环:
for( i in 5:6) {
print(summary(lm(data1$roa~data1$employees, data=subset(data1,data1[,i]))))
}