Pokoušel jsem se vypočítat STISKNĚTE statistika použití PRESS()
funkce z qpcR
balíček. Poprvé jsem se vytvořit regresní funkce z dat, která jsem dovážené:
> job_proficiency_lm_first_order_formula_best = job_proficiency ~ T_1 + T_3 + T_4
> job_proficiency_lm_first_order_best_subs = lm(data = Job_Proficiency, formula = job_proficiency_lm_first_order_formula_best)
> summary(job_proficiency_lm_first_order_best_subs)
Call:
lm(formula = job_proficiency_lm_first_order_formula_best, data = Job_Proficiency)
Residuals:
Min 1Q Median 3Q Max
-5.4579 -3.1563 -0.2057 1.8070 6.6083
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -124.20002 9.87406 -12.578 3.04e-11 ***
T_1 0.29633 0.04368 6.784 1.04e-06 ***
T_3 1.35697 0.15183 8.937 1.33e-08 ***
T_4 0.51742 0.13105 3.948 0.000735 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 4.072 on 21 degrees of freedom
Multiple R-squared: 0.9615, Adjusted R-squared: 0.956
F-statistic: 175 on 3 and 21 DF, p-value: 5.16e-15
Jak můžete vidět, že regresní funkce je vypočítaná na tažné zařízení.
Ale když jsem se pokusil vypočítat PRESS
statistiku jsem si následující:
> PRESS(object = job_proficiency_lm_first_order_best_subs)
.
Error in eval(predvars, data, env) : object 'T_1' not found
Otestovat, že PRESS()
funkce sama o sobě pracovala, jsem se pokusil získat STISKNĚTE statistika s vestavěným v sadě údajů z R
, zejména swiss
datová sada:
> test = lm(data = swiss, formula = Fertility ~ Agriculture + Examination)
> PRESS(test)
.........10.........20.........30.........40.......
$stat
[1] 4594.711
$residuals
[1] 5.86874937 -0.11299684 8.99475044 9.63703923 6.86207418 -4.99681787 15.67581939 21.66065932 7.37038439 11.95400827 15.75323917 0.44045951 -4.80167644
[14] 2.81771330 -0.11677715 2.18088788 0.62738886 -6.43338393 -2.03263398 0.06287026 2.99119927 -7.88458225 -7.23342328 -8.51283184 -1.12064764 1.82564228
[27] -10.11322228 -9.54214928 -4.12165698 -6.78996076 -8.18443581 -9.65615193 -3.18410523 -2.56286583 -0.78611489 -12.32904436 10.00836421 6.33398831 11.08423270
[40] 7.20518930 6.42985483 15.41461736 4.64693055 4.94386095 -18.45443801 -27.04073067 -23.95733041
$P.square
[1] 0.3598858
Jak lze vidět nebyl žádný problém. Tak to musí být něco, vyskytující se pod kapotou. Tak jsem tu s dotazem, co by mohlo být problém narážím?
Pro odkaz tady je můj importované datové sady není příliš velká, doufejme, že to neporušuje žádné pravidla:
> dput(Job_Proficiency)
structure(list(job_proficiency = c(88, 80, 96, 76, 80, 73, 58,
116, 104, 99, 64, 126, 94, 71, 111, 109, 100, 127, 99, 82, 67,
109, 78, 115, 83), T_1 = c(86, 62, 110, 101, 100, 78, 120, 105,
112, 120, 87, 133, 140, 84, 106, 109, 104, 150, 98, 120, 74,
96, 104, 94, 91), T_2 = c(110, 97, 107, 117, 101, 85, 77, 122,
119, 89, 81, 120, 121, 113, 102, 129, 83, 118, 125, 94, 121,
114, 73, 121, 129), T_3 = c(100, 99, 103, 93, 95, 95, 80, 116,
106, 105, 90, 113, 96, 98, 109, 102, 100, 107, 108, 95, 91, 114,
93, 115, 97), T_4 = c(87, 100, 103, 95, 88, 84, 74, 102, 105,
97, 88, 108, 89, 78, 109, 108, 102, 110, 95, 90, 85, 103, 80,
104, 83)), class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"
), row.names = c(NA, -25L), spec = structure(list(cols = list(
job_proficiency = structure(list(), class = c("collector_double",
"collector")), T_1 = structure(list(), class = c("collector_double",
"collector")), T_2 = structure(list(), class = c("collector_double",
"collector")), T_3 = structure(list(), class = c("collector_double",
"collector")), T_4 = structure(list(), class = c("collector_double",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), skip = 0), class = "col_spec"))
EDIT: Takže první chyba byla opravena díky @Otto, ale teď jsem dostal jinou chybu:
> job_proficiency_lm_first_order_best_subs = lm(data = Job_Proficiency, formula = job_proficiency ~ T_1 + T_3 + T_4)
> PRESS(job_proficiency_lm_first_order_best_subs)
.........10.........20.....
Error in PRESS.res^2 : non-numeric argument to binary operator
Všechno, co jsem udělal, bylo, vstoupit do mého vzorec do regresní model, ručně.