全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
17454 7
2012-06-21
将观测值分组分别做回归,比如将全国分为东中西三个地区。
stata 里有相应的语句,在回归方程后边加上限制条件即可进行分组回归。
R中有没有类似的程序啊?有很多分组,不想把观测值按类别分别保存为data set,再分别回归。。。。

先谢谢大家了~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-6-22 00:25:23
用subset

dat <- data.frame(y = rnorm(30), x = rnorm(30), grp = sample(c("east", "center", "west"), 30, replace = T))
lm(y ~ x, data = dat, subset = (grp == "center"))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-6-29 22:58:18
qoiqpwqr 发表于 2012-6-22 00:25
用subset

dat
y = rnorm(30), x = rnorm(30)是什么意思?
如果在分东中西时还想只选取部分年份,又要怎么操作呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-6-30 00:11:33
earnestina 发表于 2012-6-29 22:58
y = rnorm(30), x = rnorm(30)是什么意思?
如果在分东中西时还想只选取部分年份,又要怎么操作呢?
y = rnorm(30), x = rnorm(30)就是随机产生数据,没什么意思,你就用你自己的数据好了。

如果还想选取年份,大概可以这样
lm(y ~ x, data = dat, subset = ((grp == "center") & (year == 2001)))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-4 11:08:36
qoiqpwqr 发表于 2012-6-30 00:11
y = rnorm(30), x = rnorm(30)就是随机产生数据,没什么意思,你就用你自己的数据好了。

如果还想选取 ...
分组那个还不是很懂,你看看这样行不行?
dat <- data.frame(y, x , grp =="east")
然后再做回归
y和x是因变量和自变量,grp是另一个变量,表示每个观测值的东中西地理位置。
如果要选取若干年份的话是不是在lm(y ~ x, data = dat, subset = ((grp == "center") & (year == 2001)))括号里后边继续加 &(year == 2002)&(year == 2003)&(year == 2004)啊?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-4 11:15:04
不可以dat <- data.frame(y, x , grp =="east")
你可以这样
dat <- data.frame(y = y[grp == "east"], x = x[grp == "east"])

后面那个问题你可以
lm(y ~ x, data = dat, subset = ((grp == "center") & (year %in% (2001:2004))))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群