我很困惑如何计算AR,MA,ARMA和ARIMA中的ACF和PAC的q.例如,在R中,我们使用acf或pacf来获得最佳的p和q.
但是,根据我读过的信息,p是AR的顺序,q是MA的顺序.假设p = 2,则AR(2)应该是y_t = a y_t-1 + b y_t-2 + c.我们可以在滞后= 1,2,3 ....时计算acf函数(在R中),以找出哪个滞后带来最大的acf函数值.对于决定q,MA也会发生同样的事情.但是,这是否意味着已经建立了p和q?
我猜这是步骤.但我不确定我是否正确.所以,让我们说在R的函数acf和pacf中,这是真正的过程:1.对于p = 1,设置lag = 1,2,3,... max以查看哪个滞后具有最大的自相关值.2.对于p = 2,3,4 ......,做同样的事情来找到滞后.3.将这些值相互比较.假设当p = 2且滞后= 4时,最大的自相关值出现,当我们说AR的顺序时,即.p,是2?
云有人请给我一个例子,说明如何估计p和q?
我刚开始学习 Python。这是一个数据框:
a=pd.DataFrame({'A1':[0,1,2,3,2,1,6,0,1,1,7,10]})
Run Code Online (Sandbox Code Playgroud)
现在我认为这些数据遵循多项式分布。因此,12 个数字表示 12 个类别(类别 0、1、2...)的频率。例如,类别0的出现次数为0。因此,我希望在给定这些数据的情况下找到多项式的所有参数。最后,我们有多项式的最佳参数(或者我们可以说每个数字的最佳概率)。例如,
category: 0, 1, 2, 3, 4...
weights: 0.001, 0.1, 0.2, 0.12, 0.2...
Run Code Online (Sandbox Code Playgroud)
所以,我不需要测试数据来预测。这不是分类。作为一个新手,我什至不确定我是否应该使用 scipy.stats.multinomial 或 sklearn 模型,或者其他一些技术。那么,有人能给我一些帮助吗?
我正在尝试使用 R 的包 xgboost。但有一点让我感到困惑。在 xgboost 手册中,在 xgb.cv 函数下,它说:
原始样本被随机划分为 n 倍大小相等的子样本。
在nfold subsamples中,保留单个subsample作为测试模型的验证数据,剩余nfold-1个subsample作为训练数据。
然后将交叉验证过程重复 n 次,每个 n 倍子样本仅用作验证数据一次。
这是手册中的代码:
data(agaricus.train, package='xgboost')
dtrain <- xgb.DMatrix(agaricus.train$data, label = agaricus.train$label)
cv <- xgb.cv(data = dtrain, nrounds = 3, nthread = 2, nfold = 5, metrics =
list("rmse","auc"),
max_depth = 3, eta = 1, objective = "binary:logistic")
print(cv)
print(cv, verbose=TRUE)
Run Code Online (Sandbox Code Playgroud)
结果是:
##### xgb.cv 5-folds
call:
xgb.cv(data = dtrain, nrounds = 3, nfold = 5, metrics = list("rmse",
"auc"), nthread = 2, max_depth = 3, …Run Code Online (Sandbox Code Playgroud) 我有一个包括不同类型的数据:
a <- data.frame(x=c("a","b","b","c","c","c","d","d","e","f"),y=c(1,2,2,2,3,1,4,7,10,2),m=c("a","d","ab","ac","ac","vc","ed","ed","e","df"),n=c(2,1,5,3,3,2,8,10,10,1))
Run Code Online (Sandbox Code Playgroud)
实际上,数据比这更复杂,可能还包括日期。此外,这是一个无人监督的问题。所以这里没有“类标签”。所以我不能使用诸如方差分析之类的方法。那么,如何找到每两列之间的相关性?
PS 我在 psych 包中找到了一个叫做 mix.cor 的函数,但不明白如何使用它。
此外,相关性只是表示线性关系。如果我想知道每一列的重要性,我应该使用什么函数?
我正在研究pyspark。我想像这样更改列类型:
df1=df.select(df.Date.cast('double'),df.Time.cast('double'),
df.NetValue.cast('double'),df.Units.cast('double'))
Run Code Online (Sandbox Code Playgroud)
您可以看到 df 是一个数据框,我选择了 4 列并将它们全部更改为 double。由于使用 select,所有其他列都将被忽略。
但是,如果 df 有数百列,我只需要更改这 4 列。我需要保留所有列。那么,该怎么做呢?
我在Linux上为Python建立了一个虚拟环境:
我安装了一些库,它们看起来都很好。然后我尝试像这样安装 Jupyter lab:
......
我不擅长 Linux 的东西。所以我什至不确定 Jupyterlab 是否安装。
但我只是在虚拟环境中尝试Jupyter lab,然后我得到以下信息:
看起来lunux自动将Jupyter lab分配到这个路径。但因为系统只给了我这里很小的空间,所以Jupyterlab实际上没有安装。
那么,如何在虚拟环境中安装Jupyter lab呢?
我是 Linux 的初学者。
python ×3
r ×2
casting ×1
correlation ×1
linux ×1
mixed ×1
multinomial ×1
pyspark ×1
scikit-learn ×1
scipy ×1
select ×1
statistics ×1
time-series ×1
types ×1
xgboost ×1