저는 몇 가지 기본 직감을 개발하기 위해 온도에 대한 경주 시간을 간단하게 회귀 분석하고 있습니다. 내 데이터 세트는 매우 크고 각 관찰은 해당 연도의 주어진 레이스에서 유닛의 레이스 완료 시간입니다.Stata가 다중 회선 성으로 인해 변수를 떨어 뜨리지 않았다고 생각합니다.
우선 저는 온도 상자에서 매우 간단한 레이스 시간을 보냈습니다. 임시 변수의
요약 : 시간 변수의
|
Variable | Obs Mean Std. Dev Min Max
------------+--------------------------------------------
avg_temp_scc| 8309434 54.3 9.4 0 89
요약 :
Variable | Obs Mean Std. Dev Min Max
------------+--------------------------------------------
chiptime | 8309434 267.5 59.6 122 1262
나는 온도 10 개도 쓰레기통을 그에 대해 시간을 회귀하기로 결정했다.
코드는 :
는egen temp_trial = cut(avg_temp_scc), at(0,10,20,30,40,50,60,70,80,90)
reg chiptime i.temp_trial
출력 올바르게
Source | SS df MS Number of obs = 8309434
---------+------------------------------ F( 8,8309425) =69509.83
Model | 1.8525e+09 8 231557659 Prob > F = 0.0000
Residual | 2.7681e+108309425 3331.29368 R-squared = 0.0627
-----+-------------------------------- Adj R-squared = 0.0627
Total | 2.9534e+108309433 3554.22521 Root MSE = 57.717
chiptime | Coef. Std. Err. t P>|t| [95% Conf. Interval]
----------+----------------------------------------------------------------
temp_trial |
10 | -26.63549 2.673903 -9.96 0.000 -31.87625 -21.39474
20 | 10.23883 1.796236 5.70 0.000 6.71827 13.75939
30 | -16.1049 1.678432 -9.60 0.000 -19.39457 -12.81523
40 | -13.97918 1.675669 -8.34 0.000 -17.26343 -10.69493
50 | -10.18371 1.675546 -6.08 0.000 -13.46772 -6.899695
60 | -.6865365 1.675901 -0.41 0.682 -3.971243 2.59817
70 | 44.42869 1.676883 26.49 0.000 41.14206 47.71532
80 | 23.63064 1.766566 13.38 0.000 20.16824 27.09305
_cons | 273.1366 1.675256 163.04 0.000 269.8531 276.42
그래서 STATA 온도이다 (이 경우에 0-10) 빈들 중 하나가 떨어진다.
이제 I 수동 빈들을 만들고 다시 회귀를 실행 : 가gen temp0 = 1 if temp_trial==0
replace temp0 = 0 if temp_trial!=0
gen temp1 = 1 if temp_trial == 10
replace temp1 = 0 if temp_trial != 10
gen temp2 = 1 if temp_trial==20
replace temp2 = 0 if temp_trial!=20
gen temp3 = 1 if temp_trial==30
replace temp3 = 0 if temp_trial!=30
gen temp4=1 if temp_trial==40
replace temp4=0 if temp_trial!=40
gen temp5=1 if temp_trial==50
replace temp5=0 if temp_trial!=50
gen temp6=1 if temp_trial==60
replace temp6=0 if temp_trial!=60
gen temp7=1 if temp_trial==70
replace temp7=0 if temp_trial!=70
gen temp8=1 if temp_trial==80
replace temp8=0 if temp_trial!=80
reg chiptime temp0 temp1 temp2 temp3 temp4 temp5 temp6 temp7 temp8
출력은 :
Source | SS df MS Number of obs = 8309434
---------+------------------------------ F( 9,8309424) =61786.51
Model | 1.8525e+09 9 205829030 Prob > F = 0.0000
Residual | 2.7681e+108309424 3331.29408 R-squared = 0.0627
--------+------------------------------ Adj R-squared = 0.0627
Total | 2.9534e+108309433 3554.22521 Root MSE = 57.717
--------------------------------------------------------------------------
chiptime | Coef. Std. Err. t P>|t| [95% Conf. Interval]
---------+----------------------------------------------------------------
temp0 | -54.13245 6050.204 -0.01 0.993 -11912.32 11804.05
temp1 | -80.76794 6050.204 -0.01 0.989 -11938.95 11777.42
temp2 | -43.89362 6050.203 -0.01 0.994 -11902.08 11814.29
temp3 | -70.23735 6050.203 -0.01 0.991 -11928.42 11787.94
temp4 | -68.11162 6050.203 -0.01 0.991 -11926.29 11790.07
temp5 | -64.31615 6050.203 -0.01 0.992 -11922.5 11793.87
temp6 | -54.81898 6050.203 -0.01 0.993 -11913 11803.36
temp7 | -9.703755 6050.203 -0.00 0.999 -11867.89 11848.48
temp8 | -30.5018 6050.203 -0.01 0.996 -11888.68 11827.68
_cons | 327.269 6050.203 0.05 0.957 -11530.91 12185.45
참고 빈들이 전체 데이터 세트의 소모적이며 STATA 상수를 포함한다 회귀 분석에서 어떤 쓰레기통도 떨어지지 않고 있습니다. 이것은 틀린 것이 아닌가? 상수가 회귀에 포함되었다는 것을 감안할 때, 하나의 쓰레기통을 떨어 뜨려서 "기본 경우"로 만들면 안됩니까? 나는 여기서 명백한 것을 놓치고있는 것처럼 느낀다.
편집 : 다음은 데이터의 드롭 보관함 링크이며 파일입니다. 여기에는 고려중인 두 변수 만 포함됩니다. 파일은 129MB입니다. 나는 또한 링크에서 내 출력의 사진을 가지고.
이 문은 [MVCE] (https://stackoverflow.com/help/mcve) –
에서 유익합니다. 확인해야 할 것은 'assert (temp0 + temp1 + ... + temp8) == 1'입니다. 참으로 당신의 쓰레기통은 철저합니다. –
@WilliamLisowski 나는 단언했다. 그리고 어떤 오류도 발생시키지 않았다. MVCE는 오류를 재현하여 게시물에 첨부하는 데이터 집합과 파일을 만들어야 함을 의미합니까? – user52932