help interpreting adf and kpss results

I am new to time-series modeling and I need some help interpreting these adf and kpss results from r. I want to be able to verify that my series is stationary or not. Here are the outputs I am getting from the tests. Any help here would be great.

Augmented Dickey-Fuller Test

data: time_series_PM25
Dickey-Fuller = -11.545, Lag order = 16, p-value = 0.01
alternative hypothesis: stationary

KPSS Test for Level Stationarity

data: time_series_PM25
KPSS Level = 2.9811, Truncation lag parameter = 10, p-value = 0.01

The adf tests rejects the hypothesis that the series is nonstationary. The KPSS test rejects the hypothesis that the series is stationary.

That's probably not what you wanted to hear...

So what you're saying is that the adf test says it's stationary and the kpss says it's nonstationary?

Yep, I'm afraid so.

(And this line is padding because you can't post a very short reply.)

Would you be able to tell me if these changes I made change the results of the tests at all?
ADF:
Dickey-Fuller = -30.061, Lag order = 16, p-value = 0.01
alternative hypothesis: stationary
KPSS:
KPSS Level = 0.0015068, Truncation lag parameter = 10, p-value = 0.1

The key is the p-value. Are you familiar with that concept?

Yes. I understand the p value determines the results of the test. Is it supposed to be above 0.05 in order to reject the null hypothesis? That's where my confusion lies.

So the most common standard is if the p-value is below 0.05 you reject the null hypothesis. But there's nothing magic about 0.05. Your adf test "strongly" rejects nonstationarity and you KPSS test "weakly" rejects stationarity.

Mostly out of my own curiosity, what data are you using and how many observations do you have?

I'm using daily mean PM2.5 monitor data. It has 4,562 data points.

It's surprising that you're getting such contradictory results with a large amount of data. I wonder if there is anything different going on in how the models are specified. if you post the code you use, perhaps someone will spot something. (If it's easy, you might also post the data using dput().)