Barclays said copper was facing supply problems and a supply disruption that exceeded expectations could push copper prices up to $7,000 a tonne this year.
Barclays raised its annual copper price forecast to $6,230 per ton from $6,205 previously estimated.
Barclays believes the recovery in copper demand will be the main driver, driving copper prices to an average of $6,350 a tonne by 2020.
Barclays raised its iron ore price forecast for 2019 to $75 per ton, up from $69 previously.
Iron ore prices are expected to fall to $70 a tonne by 2020, dragged down by rising supply.