我想创建一个新的数据框,其中只包含两个独立的data.frame的公共行.例:
data.frame 1
1 id300
2 id2345
3 id5456
4 id33
5 id45
6 id54
Run Code Online (Sandbox Code Playgroud)
data.frame2
1 id832
2 id300
3 id1000
4 id45
5 id984
6 id5456
7 id888
Run Code Online (Sandbox Code Playgroud)
所以我希望我的输出是:
1 id300
2 id45
3 id5456
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
我和我的学生都加载了相同的数据集,安装了相同的包,并运行了相同的代码。当我运行“frq”时,我得到一个频率表,并且该变量被标记为“数字”。当我的学生运行相同的代码时,她得到"Error: Can't convert <haven_labelled> to character."
有什么想法我们可能会出错吗?
我目前正在构建一个回归模型,该模型有助于使用收入、温度等某些因素来解释销售情况。在检查回归后的残差图时,残差是异方差的。
为了解释异方差性,我在 R 中使用了vcovHC()
和coeftest()
,它可用于在异方差性假设下重新计算标准误差及其 p 值。但这些函数返回 NA 值,因此所有相应的 p 值也是 NA。导致此问题的原因可能是什么以及如何解决?其代码如下:
fit_p <- lm(formula = final_list_p, data = new_data_p)
s_p <- summary(fit_p)
Run Code Online (Sandbox Code Playgroud)
线性回归输出的汇总统计数据为:
Residuals:
Min 1Q Median 3Q Max
-244190 -60770 -5759 59730 311108
Coefficients:
Estimate
(Intercept)
Std. Error t value Pr(>|t|)
var1 -3.36E+05 1.77E+05 -1.893 0.059026 .
var2 -2.90E+04 4.96E+03 -5.86 8.97E-09 ***
var3 -1.75E+05 8.93E+04 -1.958 0.050834 .
var4 -4.62E+00 2.80E+00 -1.653 0.098975 .
var5 2.39E+01 7.85E+00 3.04 0.002503 **
var6 -6.32E+04 1.08E+05 -0.588 …
Run Code Online (Sandbox Code Playgroud) 如果包由CRAN测试,有一种简单的方法可以跳过包中某些测试的执行?背景是,我喜欢有很多测试,总而言之,它们很耗时(对CRAN不好).
我知道有,testthat::skip_on_cran()
但我不想使用包testthat
来避免另一个依赖.我正在寻找一种模仿的el-cheapo方式testthat::skip_on_cran
.
理想情况下,我希望在目录pkg/tests
中有一个调用测试文件的测试文件(testfiles),并且如果我们正在使用它们则会产生干扰:
if (!on_cran) {
## these tests are run only locally/when not on CRAN
# run test 1 (e.g. source a file with a test)
# run test 2
}
# run test 3 - always
Run Code Online (Sandbox Code Playgroud) 我有一个这样的数据框('数学')(有三种不同的方法,虽然只显示了一种) - 数据框
我正在尝试为 MathScore 创建一个多级增长模型,其中 VerbalScore 是一个独立的、时间不变的随机效应。
我相信 R 代码应该与此类似 -
random <- plm(MathScore ~ VerbalScore + Method, data=math, index=c("id","Semester"),
model="random")
Run Code Online (Sandbox Code Playgroud)
但是,运行此代码会导致以下错误:
plm.fit(object, data, model = "within", effect = effect) 中的错误:
空模型
我相信这是索引的问题,因为如果我使用以下代码将运行:
random <- plm(MathScore ~ VerbalScore + Method + Semester, data=math, index="id",
model="random")
Run Code Online (Sandbox Code Playgroud)
对于如何创建所描述的多级随机效应模型的任何建议,我将不胜感激。
我尝试学习如何将 GMM 方法与 R(Arellano-Bond 估计器)结合使用。所以我使用pgmm
包中的命令plm
。
我复制了此示例的代码:https ://www.rdocumentation.org/packages/plm/versions/1.6-5/topics/pgmm
有了这些数据:
Date country credit a b c d e f g h i j
2000-01-01 Germany 3840,304 0 0 0 0 0 0 1 .b 0 -1
2000-04-01 Germany 3891,104 0 0 0 0 0 0 0 .b 0 0
2000-07-01 Germany 3916,966 0 0 0 0 0 0 0 .b 0 0
2000-10-01 Germany 3984,611 0 0 0 0 0 0 0 .b 0 0
2001-01-01 Germany …
Run Code Online (Sandbox Code Playgroud) 我想听听人们如何在 Windows 上进行反向依赖检查。
当使用tools::check_packages_in_dir()
Windows 上的 CRAN 存储库策略 [1] 建议的“官方”但实验性功能时,会根据其来源检查反向依赖关系,即所有内容都将被编译。即使对于相对较少的依赖项/建议的包,这也可能需要很长时间。接下来,这不是很方便,因为我在此过程中遇到了很多丢失的包,因此测试出错,我需要安装丢失的包并重新开始......
我曾经使用devtools::revdep_check
which 很方便,因为它使用 Windows 二进制文件进行检查,所以没有时间花在编译上,而且它提供了一个很好的处理。然而,它与2.0版本,这一功能不应住里面决定devtools
了,但应被移动到专用包(revdepcheck
,被用于devtools
通过中介包use_this
),这是不提供CRAN但并不会在其发展资源库建设. 这种实际上已经不复存在的状态devtools
似乎已经持续了一年多(revdepcheck
最近才开发了一些新活动)。
(编辑:我还应该提到,devtools
在删除反向依赖项检查功能之前使用的版本似乎会产生任意错误,因此这似乎也不是一个选项。)
我没有发现任何其他似乎可行的方法。所以我想知道,如今如何在基于 Windows 的机器上适当有效地检查反向依赖关系?
我正在使用该plm
包运行固定效应回归。\nID 代码的顺序为何以及如何对回归产生影响?
我使用这些代码来运行回归,它们仅在 ID 代码Company
和Year
.
代码:
\n\nMV_Year <- plm (MVlog ~ LEV + Size + DY + RDlog\n , data=Values, model="within", index= c("Year","Company"))\n\n\nMV_Company <- plm (MVlog ~ LEV + Size + DY + RDlog,\n data=Values, model="within", index= c("Company", "Year"))\n
Run Code Online (Sandbox Code Playgroud)\n\n相应的输出:\nMV_Year:
\n\nOneway (individual) effect Within Model\n\nCall:\nplm(formula = MVlog ~ LEV + Size + DY + RDlog, data = Values, \n model = "within", index = c("Year", "Company"))\n\nUnbalanced Panel: n = …
Run Code Online (Sandbox Code Playgroud) 我正在从事时间序列分析,并且有 2021 年每个月 700 个单独区域的销售数据(我们将其称为 df_panel,因为我们的面板数据结构)。例如
区域 | 月 | 销售量 |
---|---|---|
1区 | 一月 | 1000 |
1区 | 二月 | 2000年 |
1区 | 集市 | 3000 |
2区 | 一月 | 1000 |
2区 | 二月 | 2000年 |
2区 | 集市 | 1400 |
3区 | 一月 | 1000 |
3区 | 二月 | 1200 |
3区 | 集市 | 1400 |
通常,在处理销售数据时,您可以使用 ADF 测试等方法来检查销售数据中的单位根。我知道如何在 Python 中对标准非面板数据结构执行此操作,例如使用数据帧 df 上 statsmodels 的 adfuller 函数:
adf_test_result = adfuller(df["Sales"])[1]
Run Code Online (Sandbox Code Playgroud)
我怎样才能对我的面板数据结构做类似的事情,因为它由 700 条单独的销售曲线(每个区域一条)组成。目标是使用面板数据回归(固定或随机效应)
一种近似方法是将我的面板数据销售曲线总结为一条销售曲线,并对其进行 ADF 测试:
adf_test_result = adfuller(df_panel.groupby("Month").sum()["Sales"])
Run Code Online (Sandbox Code Playgroud)
但我认为这会大大高估销售数据中单位根的概率。当对 700 个单独区域进行这样的汇总时,销售数据中的大量信息会丢失。
另一种近似可能是检查每个单独区域的单位根并以某种方式取平均值(?)
不太确定这里最好的是什么......
在 R 中,有一个函数包plm
实现purtest
了几个测试程序,这些测试程序已被提议用面板数据测试单位根假设,例如 Levin、Lin 和 Chu (2002) 的“levinlin”,Im、Pesaran 和 Shin 的“ips”( 2003),“madwu”代表 …
我正在使用该库估计 GMM 模型plm
。我有不同的时刻条件。
Z <- list(~YDWPP + ST_DEGREE, ~YDWPP + ST_DEGREE, ~YDWPP + ST_DEGREE,
~YDWPP + ST_DEGREE, ~YDWPP + ST_TRANSITIVITY, ~YDWPP + ST_STRUC_HOLE,
~YDWPP + ST_STRUC_HOLE, ~YDWPP + ST_STRUC_HOLE, ~YDWPP +
ST_STRUC_HOLE)
Z <- lapply(Z, as.formula)
lg.gmm <- list(c(4L, 8L), c(5L, 8L), c(6L, 8L), 7:8, 7:8, c(4L, 8L), c(5L,
8L), c(6L, 8L), 7:8)
Run Code Online (Sandbox Code Playgroud)
我正在为每组力矩限制运行一个循环Z
,这样
out.1 <- list()
for(i in seq_along(Z)){
plm.gmm <-
pgmm(
dynformula(as.formula(model), lg),
data = pdata,
effect = 'twoway',
model = 'twostep',
transformation = …
Run Code Online (Sandbox Code Playgroud) 我多次尝试使用 lm 和 plm 进行回归。我得到了不同的结果。
\n\n首先,我使用 lm 如下:
\n\nfixed.Region1 <- lm(CapNormChange ~ Policychanges + factor(Region), \n data=Panel)\n
Run Code Online (Sandbox Code Playgroud)\n\n此外,我按以下方式使用 plm:
\n\nfixed.Region2 <- plm(CapNormChange ~ Policychanges+ factor(Region), \n data=Panel, index=c("Region", "Year"), model="within", effect="individual")\n
Run Code Online (Sandbox Code Playgroud)\n\n我认为 plm 有问题,因为我在结果中没有看到拦截(见下文)。\n此外,我不完全确定是否+ factor (Region)
有必要,但是,如果它不存在,我就看不到虚拟变量的系数(和显着性)。
所以,我的问题是:
\n\n如果有人能给我提示,我将非常感激。
\n\nLM 的结果:
\n\nCall:\nlm(formula = CapNormChange ~ Policychanges + factor(Region), \n data = Panel)\n\nResiduals:\n Min 1Q Median 3Q Max \n-31.141 -4.856 -0.642 1.262 192.803 \n\nCoefficients:\n Estimate …
Run Code Online (Sandbox Code Playgroud) 我想控制包含一百多个级别的因子变量,而不将该控制的结果输出到汇总表。请注意,我还对复制 Stata 命令的速度感兴趣,而不仅仅是对输出进行表面更改。
在 Stata 中我可以像这样使用“absorb”:
use http://www.stata-press.com/data/r14/abdata.dta, clear
. xtreg n w k i.year, fe
Fixed-effects (within) regression Number of obs = 1,031
Group variable: id Number of groups = 140
R-sq: Obs per group:
within = 0.6277 min = 7
between = 0.8473 avg = 7.4
overall = 0.8346 max = 9
F(10,881) = 148.56
corr(u_i, Xb) = 0.5666 Prob > F = 0.0000
------------------------------------------------------------------------------
n | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
w | …
Run Code Online (Sandbox Code Playgroud) 正如标题所说。我加载后pglm
,lag
停止正常工作。
library(pglm)
c(1,2,3,4) %>% lag()
Run Code Online (Sandbox Code Playgroud)
该对象被转换为时间序列,并且不再与 tibbles 兼容。
即使卸载pglm
, 的依赖lag
仍然有效。
一个解决方案可能是实际上从不加载pglm
,但是如果我lag(x)
在公式中有一个
pglm:pglm(
family= poisson,
y ~ lag(x),
model = "within", index="id",
data = db
)
Run Code Online (Sandbox Code Playgroud)
该算法无法收敛到估计值。由于某些原因,甚至强迫发生这种情况stats::lag(x)
。有趣的是,相反,如果pglm
已加载,则y ~ lag(x)
可以正常工作y ~ stats:lag(x)
。
这是唯一有效的情况,呵呵!我唯一想到的另一件事是外部公式dplyr::lag
是冲突的罪魁祸首。
我不知道如何优化工作流程,您有建议吗?
r ×11
plm ×6
panel-data ×3
package ×2
benchmarking ×1
character ×1
cran ×1
devtools ×1
frequency ×1
gmm ×1
lm ×1
numeric ×1
p-value ×1
python ×1
r-haven ×1
regression ×1
statistics ×1