我想生成一个适合某些条件的数据集,以模拟回归模型中某些统计事实的行为。
首先,我想要一个由单个因变量Y和三个自变量x1,x2,x3混合而成的数据集。我需要数据集大于40行(n> 40),并且需要x1,x2线性相关。
我一直在阅读R文档,以生成诸如rnorm
或sample
函数之类的随机数据,但是我并没有获得任何有用的结果。
我该如何解决?
我想生成一个适合某些条件的数据集,以模拟回归模型中某些统计事实的行为。
首先,我想要一个由单个因变量Y和三个自变量x1,x2,x3混合而成的数据集。我需要数据集大于40行(n> 40),并且需要x1,x2线性相关。
我一直在阅读R文档,以生成诸如rnorm
或sample
函数之类的随机数据,但是我并没有获得任何有用的结果。
我该如何解决?
您可以使用runif
来创建自己的
X1 <- runif(100,1,50) # 100 random numbers between 1 and 50.
X2 <- X1 * 5 - 10 # creating linearly dependent series
X3 <- runif(100,50)
Y <- runif(1,-50,50) + runif(1,-5,5) * X1 + runif(1,5) * X2 + runif(1,5) * X3 + runif(100,-10,10)
# To create dependency between Y and X variables,you should assign the coefficients.
# Above,runif(1,5) is standing for assigning random coefficients between -5 and 5.
# Finally runif(100,10) is for creating the error terms.
要检查依赖性,可以运行线性回归,
summary(lm(Y~X1 + X2 + X3))
给予
Call:
lm(formula = Y ~ X1 + X2 + X3)
Residuals:
Min 1Q Median 3Q Max
-9.7632 -4.2869 -0.4156 4.3876 10.3811
Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) -65.74362 1.69357 -38.82 <2e-16 ***
X1 22.70622 0.04238 535.80 <2e-16 ***
X2 NA NA NA NA
X3 -1.43227 0.04004 -35.77 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
由于X1和X2是线性相关的,因此R会删除其中一个变量X2。