这是我在StackOverflow中的第一个问题,所以我希望能够做到正确......
我正在尝试使用两个预测变量来拟合黄土模型,其中一个是局部加权的,而另一个是参数化的。一旦模型拟合,我想得到参数预测器上回归线的斜率,调节非参数预测器的某个值。当使用回归线I中的任何两个值计算该斜率时,应获得对应于斜率的常数值。但是,如果我用每两个连续值计算斜率,我得到的曲线类似于抛物线的大部分。这里有一些代码来展示这个问题:
## DATA
criterion <- c(
-1.8914741214789, -0.864604956700496, 2.43013372852099, -1.32227168040904,
0.861585875211724, -1.25506145955845, 1.1201893940246, -1.18560159611826,
1.24871681364416, -1.24362634687504, -2.22058652097061, -0.67920682239687,
-1.14096010679208, 0.228758533000768, -1.3607742780652, 0.473165865126464,
0.0438948075908679, -1.14355404117161, 2.60406860120487, 0.539583593348819,
-0.599388766026817, -1.14918693916554, -0.17334788506616, -0.836478866743926,
2.88908329995278, -0.401016464464891, -0.292311619619775, 1.12804091879547,
3.6733647991105, -3.31190363769332, -0.672558641084861, 0.498844902537884,
-0.037062115762172, -1.02017987978252, -0.854805324374525, 1.34168735130207,
-0.242996720017973, 1.14871933640721, -0.736312690622741, -2.51965992948912,
-3.16327863554555, -0.269020543067839, 0.552150179356176, 0.320523449469915,
1.14736382025547, 0.891590469554733, -0.717678520852477, 3.15631635301073,
-0.225648864790169, -1.35189421566795, -0.558073572773821, -1.33356547103824,
-2.01215450549957, 1.63719762873429, -2.0218275161466, 0.513289109719022,
-1.30263029019454, 1.85949704911488, -1.22544429584118, 0.336732253617053,
-2.45126282746359, -4.94155955259729, 0.743231639698684, 1.04320562270113,
3.99232225357353, -1.07752259470057, -0.353671379249384, -0.748973055922694,
0.467443998802691, 0.966013090920868, 1.32739645813748, 1.07159468103619,
-1.8542024758483, 0.360922743179635, -4.99642432601298, 0.596072047320551,
-1.48256500350222, -0.251689130094422, -0.104867519535428, -3.23675187957067,
1.15657910171856, -0.640772355492231, 2.21198640279181, -0.229386564567888,
-2.8014148535931, 0.325261825780768, 1.65431768179619, -0.701353356393564,
1.56301740126489, -2.91989037858617, 0.560634128846807, -3.40972988669857,
0.519955616184439, -0.673752119923202, -0.126511467211613, -1.49156456253545,
2.68041989003066, -3.18246878051744, -1.05338046600476, -0.122679130411665,
0.619202563903638, -2.80132012240656, -1.50106228060585, -1.78428153598023,
-0.17959372353835, -3.7657930817963, 1.74830598714522, 0.199267717912346,
-0.187088254090319, -0.431926901631399, -2.50168001668916, -0.715294537723936,
4.8050892573889, 3.48017935641437, -2.29413209640673, 1.88045620792631,
-0.125724128270772, -0.514660621563394, 1.28920199656138, -0.888250921411933,
-1.53336797414911, 0.566890809767711, 2.18492239723917, 1.45986142278563,
2.29475550546227, -2.91360806155925, -1.28474245565384, -1.15236199251384,
-2.68344935749574, -1.0406761060411, 0.236606541573282, -1.0577344636865
)
lw.predictor <- c(
3.97543828892376, 3.74367045733871, 2.8031293667213, 3.12721154621725,
3.57809163186571, 3.85490258924953, 3.04509486547235, 3.06527167000886,
3.42172751371031, 3.48342454710053, 3.03382754767655, 3.29840143930276,
3.42532870135535, 3.3466401061363, 4.19719410513314, 4.27624851591474,
3.90521253346176, 3.66434131328865, 3.78008480009251, 3.26961939052607,
3.37557706887951, 3.07887188021758, 3.20615845753053, 3.25681582455448,
3.07575583761175, 3.4678563115072, 3.63412290863538, 2.7341072520575,
3.04486992771651, 4.0244118093156, 2.75978954925269, 2.94469571886678,
3.64916954335701, 3.23529338509991, 3.09993371559714, 3.92201374051927,
2.63693470862178, 3.19438720086359, 4.10395732841177, 4.14695795420843,
3.37963279191973, 2.75059146814963, 3.05430305033533, 4.07380539679535,
3.41070032578776, 3.52175236580135, 3.9922870844146, 2.83689005875791,
3.59280102122038, 3.744585131656, 4.07464596327428, 2.94632345777042,
3.79563556141373, 2.92157773101387, 3.60631105869347, 3.90380916892684,
3.4349134104059, 2.86428168814471, 2.80459505537921, 3.52738795051305,
3.90100092529829, 3.95557522270349, 2.88144750533953, 3.4177217437656,
2.72281079587565, 3.44307922077723, 3.58191805968554, 2.85374063580388,
3.61825659978916, 3.35154840518957, 2.78055872970075, 3.31559205647068,
3.72845408487401, 3.45439961676827, 3.47673283886995, 3.38348122582045,
2.88524826215121, 3.37314129436951, 4.17608980116535, 2.78621853030773,
4.23989532049638, 2.65428059546312, 2.75954135557898, 3.90836826127649,
3.70911502202012, 3.9502037401938, 2.72934334016319, 3.56908337873796,
3.53107535330031, 4.10445798400541, 3.37029733251965, 2.77784779211612,
4.00205426701893, 3.390559011573, 3.75061638769833, 3.67591196400612,
4.00034245109432, 4.19507212536165, 2.64290209936905, 2.84965751366817,
2.93584367468566, 3.5792399897338, 3.87103752330681, 4.11112756588916,
3.69820393282565, 3.47909608792875, 3.021611653787, 3.38833615773409,
3.53688974115618, 3.86802841711593, 3.04014239032067, 3.83441517392514,
2.78055872970075, 2.95676609717858, 3.46963343371941, 2.69652236718191,
4.21169279083643, 3.59508797308864, 2.90229007358549, 3.74055889165213,
4.22533130742836, 3.10942006661772, 2.81532012340698, 3.39540382330109,
3.11580153059886, 2.73435775434875, 3.80464748245529, 3.63431137604942,
4.09744323888573, 2.77908036429911, 3.30047734198123, 3.7238586557053
)
par.predictor <- c(
94.3333333333333, 105.333333333333, 135.666666666667, 113.666666666667,
116.333333333333, 112.666666666667, 117.333333333333, 100.333333333333,
118, 118.333333333333, 119.666666666667, 109.666666666667, 116.333333333333,
107.666666666667, 110.666666666667, 97, 99.6666666666667, 108.666666666667,
118.333333333333, 119, 106.333333333333, 121.666666666667, 103,
132, 99, 121.666666666667, 99.6666666666667, 104.666666666667,
124.333333333333, 106.666666666667, 118.666666666667, 111, 125,
101.666666666667, 101, 103, 102, 108.333333333333, 119.333333333333,
131.333333333333, 105.666666666667, 118.666666666667, 124.333333333333,
111.333333333333, 108.333333333333, 126.666666666667, 111, 107.333333333333,
118.666666666667, 120.333333333333, 114, 117.666666666667, 118,
104.666666666667, 115.333333333333, 117.666666666667, 101.666666666667,
118, 103.333333333333, 120, 105, 106.666666666667, 104.333333333333,
112.333333333333, 109.333333333333, 103.333333333333, 114, 112,
122.333333333333, 115, 135.666666666667, 102.666666666667, 116,
115.333333333333, 118, 107, 104, 113.666666666667, 130, 128.333333333333,
110.333333333333, 127.666666666667, 129.333333333333, 107, 110.666666666667,
97.3333333333333, 120.333333333333, 90.6666666666667, 122.333333333333,
104, 93.6666666666667, 102.333333333333, 111.333333333333, 121.666666666667,
127.666666666667, 115, 103, 91.6666666666667, 150.666666666667,
127, 126.333333333333, 111.666666666667, 117.666666666667, 109,
103, 104, 103.666666666667, 109, 122.666666666667, 122, 116.333333333333,
117.333333333333, 102, 156, 105.666666666667, 106.333333333333,
124.333333333333, 105.333333333333, 121.333333333333, 92.6666666666667,
117.666666666667, 122.666666666667, 88.3333333333333, 119, 121.333333333333,
97, 107, 109.333333333333, 113.666666666667, 103.666666666667,
117, 112.666666666667
)
# Predictor variables are standardized prior to fitting the loess model
data <- data.frame(criterion = criterion, lw.predictor = scale(lw.predictor), par.predictor = scale(par.predictor))
## MODEL FIT
lwr.fit <- loess(
criterion ~ lw.predictor * par.predictor, data,
parametric = "par.predictor",
span = .7,
family = "gaussian", degree = 2, drop.square = "par.predictor",
normalize = FALSE
)
## PREDICTION ON GRID
# Statistics to standardize axes (based on the sample)
par.mean <- mean(par.predictor)
par.sd <- sd(par.predictor)
lw.mean <- mean(lw.predictor)
lw.sd <- sd(lw.predictor)
# Axes
pred.lw.axis <- (sqrt(seq(7, 18.25, by = 1/12)) - lw.mean) / lw.sd
pred.par.axis <- (89:156 - par.mean) / par.sd
# Grid generation
std.prediction.values <- expand.grid(
lw.predictor = pred.lw.axis,
par.predictor = pred.par.axis
)
# Prediction
lwr.prediction <- predict(lwr.fit, std.prediction.values, se = TRUE)
## GRAPHIC REPRESENTATION OF THE PARAMETRIC REGRESSION
# Slope computing
test.values <- lwr.prediction$fit[1, ]
slopes <- (test.values[-1] - test.values[-length(test.values)]) / (pred.par.axis[-1] - pred.par.axis[-length(pred.par.axis)])
plot(slopes, type = "l", ylab = "Slopes")
好吧,如果你运行这段代码,你会得到一条(近)抛物线的曲线。在我看来,这很奇怪;人们可能认为这是由于量化误差,但我怀疑这是因为它会以某种方式随机而且值要小得多。我可能错了,但我认为情节应该显示一个恒定的线。另一方面,我也试过改变黄土模型的参数,但问题似乎是持久的。我希望有人可以帮助我,我在论坛中搜索过这个主题,但没有发现任何类似的问题。
提前非常感谢你。